Skip to content

Commit 4604c69

Browse files
committed
CXX-3296 fix build if GCC/GNU/Clang/MSVC macro defined (mongodb#1409)
* guard Clang/GCC/GNU/MSVC macros
1 parent d9a9850 commit 4604c69

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

src/bsoncxx/include/bsoncxx/v1/detail/postlude.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@
6464
#pragma pop_macro("BSONCXX_PRIVATE_WARNINGS_DISABLE")
6565
#pragma pop_macro("BSONCXX_PRIVATE_WARNINGS_POP")
6666
#pragma pop_macro("BSONCXX_PRIVATE_WARNINGS_PUSH")
67+
#pragma pop_macro("Clang")
68+
#pragma pop_macro("GCC")
69+
#pragma pop_macro("GNU")
70+
#pragma pop_macro("MSVC")
6771
#endif
6872

6973
#if !defined(BSONCXX_PRIVATE_V1_INSIDE_MACRO_GUARD_SCOPE)

src/bsoncxx/include/bsoncxx/v1/detail/prelude.hpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,14 @@
102102
#undef BSONCXX_PRIVATE_WARNINGS_PUSH
103103
#pragma push_macro("BSONCXX_PRIVATE_UNREACHABLE")
104104
#undef BSONCXX_PRIVATE_UNREACHABLE
105+
#pragma push_macro("Clang") // Guard since BSONCXX_PRIVATE_WARNINGS_DISABLE(Clang(...)) assumes Clang is not defined.
106+
#undef Clang
107+
#pragma push_macro("GCC") // Guard since BSONCXX_PRIVATE_WARNINGS_DISABLE(GCC(...)) assumes GCC is not defined.
108+
#undef GCC
109+
#pragma push_macro("GNU") // Guard since BSONCXX_PRIVATE_WARNINGS_DISABLE(GNU(...)) assumes GNU is not defined.
110+
#undef GNU
111+
#pragma push_macro("MSVC") // Guard since BSONCXX_PRIVATE_WARNINGS_DISABLE(MSVC(...)) assumes MSVC is not defined.
112+
#undef MSVC
105113
#endif
106114

107115
///

src/bsoncxx/test/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,10 @@ if(ENABLE_MACRO_GUARD_TESTS)
123123
BSONCXX_PRIVATE_WARNINGS_DISABLE_IMPL_FOR_MSVC
124124
BSONCXX_PRIVATE_WARNINGS_POP
125125
BSONCXX_PRIVATE_WARNINGS_PUSH
126+
Clang
127+
GCC
128+
GNU
129+
MSVC
126130

127131
# bsoncxx/v1/detail/prelude.hpp
128132
BSONCXX_PRIVATE_V1_INSIDE_MACRO_GUARD_SCOPE

0 commit comments

Comments
 (0)