@@ -481,7 +481,7 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
481
481
if (!LangOpts.GNUMode && !LangOpts.MSVCCompat )
482
482
Builder.defineMacro (" __STRICT_ANSI__" );
483
483
484
- if (LangOpts.CPlusPlus11 )
484
+ if (!LangOpts. MSVCCompat && LangOpts.CPlusPlus11 )
485
485
Builder.defineMacro (" __GXX_EXPERIMENTAL_CXX0X__" );
486
486
487
487
if (LangOpts.ObjC1 ) {
@@ -541,15 +541,15 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
541
541
542
542
if (!LangOpts.MSVCCompat && LangOpts.CXXExceptions )
543
543
Builder.defineMacro (" __EXCEPTIONS" );
544
- if (LangOpts.RTTI )
544
+ if (!LangOpts. MSVCCompat && LangOpts.RTTI )
545
545
Builder.defineMacro (" __GXX_RTTI" );
546
546
if (LangOpts.SjLjExceptions )
547
547
Builder.defineMacro (" __USING_SJLJ_EXCEPTIONS__" );
548
548
549
549
if (LangOpts.Deprecated )
550
550
Builder.defineMacro (" __DEPRECATED" );
551
551
552
- if (LangOpts.CPlusPlus ) {
552
+ if (!LangOpts. MSVCCompat && LangOpts.CPlusPlus ) {
553
553
Builder.defineMacro (" __GNUG__" , " 4" );
554
554
Builder.defineMacro (" __GXX_WEAK__" );
555
555
Builder.defineMacro (" __private_extern__" , " extern" );
@@ -746,36 +746,38 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
746
746
else
747
747
Builder.defineMacro (" __FINITE_MATH_ONLY__" , " 0" );
748
748
749
- if (LangOpts.GNUInline )
750
- Builder.defineMacro (" __GNUC_GNU_INLINE__" );
751
- else
752
- Builder.defineMacro (" __GNUC_STDC_INLINE__" );
749
+ if (!LangOpts.MSVCCompat ) {
750
+ if (LangOpts.GNUInline )
751
+ Builder.defineMacro (" __GNUC_GNU_INLINE__" );
752
+ else
753
+ Builder.defineMacro (" __GNUC_STDC_INLINE__" );
753
754
754
- // The value written by __atomic_test_and_set.
755
- // FIXME: This is target-dependent.
756
- Builder.defineMacro (" __GCC_ATOMIC_TEST_AND_SET_TRUEVAL" , " 1" );
755
+ // The value written by __atomic_test_and_set.
756
+ // FIXME: This is target-dependent.
757
+ Builder.defineMacro (" __GCC_ATOMIC_TEST_AND_SET_TRUEVAL" , " 1" );
757
758
758
- // Used by libstdc++ to implement ATOMIC_<foo>_LOCK_FREE.
759
- unsigned InlineWidthBits = TI.getMaxAtomicInlineWidth ();
759
+ // Used by libstdc++ to implement ATOMIC_<foo>_LOCK_FREE.
760
+ unsigned InlineWidthBits = TI.getMaxAtomicInlineWidth ();
760
761
#define DEFINE_LOCK_FREE_MACRO (TYPE, Type ) \
761
- Builder.defineMacro (" __GCC_ATOMIC_" #TYPE " _LOCK_FREE" , \
762
- getLockFreeValue (TI.get ##Type##Width (), \
763
- TI.get ##Type##Align (), \
764
- InlineWidthBits));
765
- DEFINE_LOCK_FREE_MACRO (BOOL, Bool);
766
- DEFINE_LOCK_FREE_MACRO (CHAR, Char);
767
- DEFINE_LOCK_FREE_MACRO (CHAR16_T, Char16);
768
- DEFINE_LOCK_FREE_MACRO (CHAR32_T, Char32);
769
- DEFINE_LOCK_FREE_MACRO (WCHAR_T, WChar);
770
- DEFINE_LOCK_FREE_MACRO (SHORT, Short);
771
- DEFINE_LOCK_FREE_MACRO (INT, Int);
772
- DEFINE_LOCK_FREE_MACRO (LONG, Long);
773
- DEFINE_LOCK_FREE_MACRO (LLONG, LongLong);
774
- Builder.defineMacro (" __GCC_ATOMIC_POINTER_LOCK_FREE" ,
775
- getLockFreeValue (TI.getPointerWidth (0 ),
776
- TI.getPointerAlign (0 ),
777
- InlineWidthBits));
762
+ Builder.defineMacro (" __GCC_ATOMIC_" #TYPE " _LOCK_FREE" , \
763
+ getLockFreeValue (TI.get ##Type##Width (), \
764
+ TI.get ##Type##Align (), \
765
+ InlineWidthBits));
766
+ DEFINE_LOCK_FREE_MACRO (BOOL, Bool);
767
+ DEFINE_LOCK_FREE_MACRO (CHAR, Char);
768
+ DEFINE_LOCK_FREE_MACRO (CHAR16_T, Char16);
769
+ DEFINE_LOCK_FREE_MACRO (CHAR32_T, Char32);
770
+ DEFINE_LOCK_FREE_MACRO (WCHAR_T, WChar);
771
+ DEFINE_LOCK_FREE_MACRO (SHORT, Short);
772
+ DEFINE_LOCK_FREE_MACRO (INT, Int);
773
+ DEFINE_LOCK_FREE_MACRO (LONG, Long);
774
+ DEFINE_LOCK_FREE_MACRO (LLONG, LongLong);
775
+ Builder.defineMacro (" __GCC_ATOMIC_POINTER_LOCK_FREE" ,
776
+ getLockFreeValue (TI.getPointerWidth (0 ),
777
+ TI.getPointerAlign (0 ),
778
+ InlineWidthBits));
778
779
#undef DEFINE_LOCK_FREE_MACRO
780
+ }
779
781
780
782
if (LangOpts.NoInlineDefine )
781
783
Builder.defineMacro (" __NO_INLINE__" );
0 commit comments