This allows _GLIBCXX_HAS_BUILTIN (or _GLIBCXX_USE_BUILTIN_TRAIT) to be used as part of a larger logical expression.
libstdc++-v3/ChangeLog: * include/bits/c++config (_GLIBCXX_HAS_BUILTIN): Add parentheses. --- Tested x86_64-linux. Pushed to trunk. This isn't currently necessary on the release branches but it might be worth backporting anyway, in case we want to be able to use this macro as `_GLIBCXX_HAS_BUILTIN(foo) && bar` on the branches in future. libstdc++-v3/include/bits/c++config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libstdc++-v3/include/bits/c++config b/libstdc++-v3/include/bits/c++config index b0ca6579cfb..07f75ea6659 100644 --- a/libstdc++-v3/include/bits/c++config +++ b/libstdc++-v3/include/bits/c++config @@ -885,7 +885,7 @@ namespace __gnu_cxx #ifdef __has_builtin # ifdef __is_identifier // Intel and older Clang require !__is_identifier for some built-ins: -# define _GLIBCXX_HAS_BUILTIN(B) __has_builtin(B) || ! __is_identifier(B) +# define _GLIBCXX_HAS_BUILTIN(B) (__has_builtin(B) || ! __is_identifier(B)) # else # define _GLIBCXX_HAS_BUILTIN(B) __has_builtin(B) # endif -- 2.48.1