I checked the defines with the system gcc on fedora 17. LGTM
On 3 April 2013 20:36, Michael Spencer <[email protected]> wrote: > Hi doug.gregor, > > This fixes std::thread with libstdc++. > > http://llvm-reviews.chandlerc.com/D621 > > Files: > lib/Basic/Targets.cpp > test/Preprocessor/predefined-macros.c > > Index: lib/Basic/Targets.cpp > =================================================================== > --- lib/Basic/Targets.cpp > +++ lib/Basic/Targets.cpp > @@ -2730,6 +2730,14 @@ > case NoMMX3DNow: > break; > } > + > + if (CPU >= CK_i486) { > + Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1"); > + Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2"); > + Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4"); > + } > + if (CPU >= CK_i586) > + Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8"); > } > > bool X86TargetInfo::hasFeature(StringRef Feature) const { > Index: test/Preprocessor/predefined-macros.c > =================================================================== > --- test/Preprocessor/predefined-macros.c > +++ test/Preprocessor/predefined-macros.c > @@ -26,3 +26,21 @@ > // RUN: %clang_cc1 %s -E -dM -o - \ > // RUN: | FileCheck %s --check-prefix=CHECK-FINITE-MATH-FLAG-UNDEFINED > // CHECK-FINITE-MATH-FLAG-UNDEFINED: #define __FINITE_MATH_ONLY__ 0 > +// > +// RUN: %clang_cc1 %s -E -dM -o - -triple i686 -target-cpu i386 \ > +// RUN: | FileCheck %s --check-prefix=CHECK-SYNC_CAS_I386 > +// CHECK-SYNC_CAS_I386-NOT: __GCC_HAVE_SYNC_COMPARE_AND_SWAP > +// > +// RUN: %clang_cc1 %s -E -dM -o - -triple i686 -target-cpu i486 \ > +// RUN: | FileCheck %s --check-prefix=CHECK-SYNC_CAS_I486 > +// CHECK-SYNC_CAS_I486: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 > +// CHECK-SYNC_CAS_I486: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 > +// CHECK-SYNC_CAS_I486: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 > +// CHECK-SYNC_CAS_I486-NOT: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 > +// > +// RUN: %clang_cc1 %s -E -dM -o - -triple i686 -target-cpu i586 \ > +// RUN: | FileCheck %s --check-prefix=CHECK-SYNC_CAS_I586 > +// CHECK-SYNC_CAS_I586: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 > +// CHECK-SYNC_CAS_I586: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 > +// CHECK-SYNC_CAS_I586: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 > +// CHECK-SYNC_CAS_I586: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
