diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2017-10-15 15:41:01 +0300 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2017-10-15 15:41:01 +0300 |
commit | 7a2b43796a4c38cf98fe05e8e4ec985318b2721b (patch) | |
tree | b0f5611276e10646b654f7d5ed12c6e6060353be /debian/patches/atomic_library_2.diff | |
download | llvm-toolchain-5.0-debian.tar.gz |
Imported llvm-toolchain-5.0 (1:5.0-4)debian/5.0-4debian
Diffstat (limited to 'debian/patches/atomic_library_2.diff')
-rw-r--r-- | debian/patches/atomic_library_2.diff | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/debian/patches/atomic_library_2.diff b/debian/patches/atomic_library_2.diff new file mode 100644 index 0000000..e388350 --- /dev/null +++ b/debian/patches/atomic_library_2.diff @@ -0,0 +1,43 @@ +--- + clang/lib/Basic/Targets.cpp | 20 +++++++++++++++++--- + clang/test/CodeGen/linux-arm-atomic.c | 1 + + 2 files changed, 18 insertions(+), 3 deletions(-) + +--- a/clang/lib/Basic/Targets.cpp ++++ b/clang/lib/Basic/Targets.cpp +@@ -4423,9 +4423,23 @@ protected: + if (T.getOS() != llvm::Triple::Linux) + return false; + StringRef ArchName = T.getArchName(); +- if (ArchName.startswith("armv6") || ArchName.startswith("armv7")) +- return true; +- return false; ++ if (T.getArch() == llvm::Triple::arm) { ++ if (!ArchName.startswith("armv")) ++ return false; ++ StringRef VersionStr = ArchName.substr(4); ++ unsigned Version; ++ if (VersionStr.getAsInteger(10, Version)) ++ return false; ++ return Version >= 6; ++ } ++ assert(T.getArch() == llvm::Triple::thumb); ++ if (!ArchName.startswith("thumbv")) ++ return false; ++ StringRef VersionStr = ArchName.substr(6); ++ unsigned Version; ++ if (VersionStr.getAsInteger(10, Version)) ++ return false; ++ return Version >= 7; + } + + public: +--- a/clang/test/CodeGen/linux-arm-atomic.c ++++ b/clang/test/CodeGen/linux-arm-atomic.c +@@ -1,5 +1,6 @@ + // RUN: %clang_cc1 %s -emit-llvm -o - -triple=armv7-unknown-linux | FileCheck %s + // RUN: %clang_cc1 %s -emit-llvm -o - -triple=armv6-unknown-linux | FileCheck %s ++// RUN: %clang_cc1 %s -emit-llvm -o - -triple=thumbv7-unknown-linux | FileCheck %s + + typedef int _Atomic_word; + _Atomic_word exchange_and_add(volatile _Atomic_word *__mem, int __val) { |