Skip to content

Commit 7bcb12a

Browse files
brad0zmodem
authored andcommitted
[Sparc] Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP macros on SPARCv9
(cherry picked from commit 5fe1713)
1 parent 1a14ce2 commit 7bcb12a

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

clang/lib/Basic/Targets/Sparc.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,11 @@ void SparcV9TargetInfo::getTargetDefines(const LangOptions &Opts,
240240
Builder.defineMacro("__sparc_v9__");
241241
Builder.defineMacro("__sparcv9__");
242242
}
243+
244+
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1");
245+
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
246+
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
247+
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
243248
}
244249

245250
void SparcV9TargetInfo::fillValidCPUList(

clang/test/Preprocessor/predefined-arch-macros.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3174,6 +3174,14 @@
31743174
// CHECK_SPARCV9: #define __sparcv9 1
31753175
// CHECK_SPARCV9: #define __sparcv9__ 1
31763176

3177+
// RUN: %clang -E -dM %s -o - 2>&1 \
3178+
// RUN: -target sparcv9-unknown-linux \
3179+
// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARCV9_GCC_ATOMICS
3180+
// CHECK_SPARCV9_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
3181+
// CHECK_SPARCV9_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
3182+
// CHECK_SPARCV9_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
3183+
// CHECK_SPARCV9_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
3184+
31773185
// Begin SystemZ/GCC/Linux tests ----------------
31783186

31793187
// RUN: %clang -march=arch8 -E -dM %s -o - 2>&1 \

0 commit comments

Comments
 (0)