Skip to content

Commit b5264f2

Browse files
authored
CXX-3296 fix build if GCC/GNU/Clang/MSVC macro defined (#1409)
* guard Clang/GCC/GNU/MSVC macros
1 parent d688b3e commit b5264f2

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
@@ -145,6 +145,10 @@ if(ENABLE_MACRO_GUARD_TESTS)
145145
BSONCXX_PRIVATE_WARNINGS_DISABLE_IMPL_FOR_MSVC
146146
BSONCXX_PRIVATE_WARNINGS_POP
147147
BSONCXX_PRIVATE_WARNINGS_PUSH
148+
Clang
149+
GCC
150+
GNU
151+
MSVC
148152

149153
# bsoncxx/v1/detail/prelude.hpp
150154
BSONCXX_PRIVATE_V1_INSIDE_MACRO_GUARD_SCOPE

0 commit comments

Comments
 (0)