/* Names to predefine in the preprocessor for this target machine. */
#define TARGET_SUB_OS_CPP_BUILTINS()
#define TARGET_OS_CPP_BUILTINS() \
- do { \
- builtin_define_std ("unix"); \
- builtin_define_std ("sun"); \
- builtin_define ("__svr4__"); \
- builtin_define ("__SVR4"); \
- builtin_assert ("system=unix"); \
- builtin_assert ("system=svr4"); \
- /* For C++ we need to add some additional macro \
- definitions required by the C++ standard \
- library. */ \
- if (c_dialect_cxx ()) \
+ do { \
+ builtin_define_std ("unix"); \
+ builtin_define_std ("sun"); \
+ builtin_define ("__svr4__"); \
+ builtin_define ("__SVR4"); \
+ builtin_assert ("system=unix"); \
+ builtin_assert ("system=svr4"); \
+ /* For C++ we need to add some additional macro \
+ definitions required by the C++ standard \
+ library. */ \
+ if (c_dialect_cxx ()) \
+ { \
+ switch (cxx_dialect) \
{ \
+ case cxx98: \
+ case cxx11: \
+ case cxx14: \
+ /* C++11 and C++14 are based on C99. \
+ libstdc++ makes use of C99 features \
+ even for C++98. */ \
builtin_define ("__STDC_VERSION__=199901L");\
- builtin_define ("_XOPEN_SOURCE=600"); \
- builtin_define ("_LARGEFILE_SOURCE=1"); \
- builtin_define ("_LARGEFILE64_SOURCE=1"); \
- builtin_define ("__EXTENSIONS__"); \
+ break; \
+ \
+ default: \
+ /* C++17 is based on C11. */ \
+ builtin_define ("__STDC_VERSION__=201112L");\
+ break; \
} \
- TARGET_SUB_OS_CPP_BUILTINS(); \
- } while (0)
+ builtin_define ("_XOPEN_SOURCE=600"); \
+ builtin_define ("_LARGEFILE_SOURCE=1"); \
+ builtin_define ("_LARGEFILE64_SOURCE=1"); \
+ builtin_define ("__EXTENSIONS__"); \
+ } \
+ TARGET_SUB_OS_CPP_BUILTINS(); \
+ } while (0)
#define SUBTARGET_OVERRIDE_OPTIONS \
do { \