diff options
author | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-26 00:14:35 +0000 |
---|---|---|
committer | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-26 00:14:35 +0000 |
commit | dcd0b95257cd4705eb470f579fbf6b5acf1ab3dc (patch) | |
tree | 5ceedbc1d97f940b48a33ac2d6e41e220ec24f8b /tools/clang | |
parent | 3cc61c1f4de0fbbdf1a95014a0750c9bd055fbb9 (diff) | |
download | chromium_src-dcd0b95257cd4705eb470f579fbf6b5acf1ab3dc.zip chromium_src-dcd0b95257cd4705eb470f579fbf6b5acf1ab3dc.tar.gz chromium_src-dcd0b95257cd4705eb470f579fbf6b5acf1ab3dc.tar.bz2 |
clang roll 198389:202554 revolutions
First try: https://codereview.chromium.org/195623002
Second try: https://codereview.chromium.org/211213004
Difference from "second try" is passing --enable-libedit=no to
configure, to not depend on libedit.3.dylib (which doesn't exist on
OS X 10.6), see diff from patch set 1 to 2.
The linux package wasn't rebuilt, so it's configured without that flag.
That shouldn't cause issues hopefully.
BUG=351479, 287029, 341352, 333968, 335325
R=hans@chromium.org
TBR=hans@chromium.org
Review URL: https://codereview.chromium.org/211733007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259411 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/clang')
-rw-r--r-- | tools/clang/blink_gc_plugin/Makefile | 2 | ||||
-rw-r--r-- | tools/clang/plugins/ChromeClassTester.cpp | 8 | ||||
-rwxr-xr-x | tools/clang/scripts/package.sh | 2 | ||||
-rwxr-xr-x | tools/clang/scripts/plugin_flags.sh | 4 | ||||
-rwxr-xr-x | tools/clang/scripts/update.sh | 708 |
5 files changed, 705 insertions, 19 deletions
diff --git a/tools/clang/blink_gc_plugin/Makefile b/tools/clang/blink_gc_plugin/Makefile index 85e422b..d6e7da9 100644 --- a/tools/clang/blink_gc_plugin/Makefile +++ b/tools/clang/blink_gc_plugin/Makefile @@ -9,7 +9,7 @@ CLANG_LEVEL := ../.. # This line is read by update.sh and other scripts in tools/clang/scripts -LIBRARYNAME = BlinkGCPlugin_2 +LIBRARYNAME = BlinkGCPlugin_3 LINK_LIBS_IN_SHARED = 0 SHARED_LIBRARY = 1 diff --git a/tools/clang/plugins/ChromeClassTester.cpp b/tools/clang/plugins/ChromeClassTester.cpp index 1fbd42a..5ce04e5 100644 --- a/tools/clang/plugins/ChromeClassTester.cpp +++ b/tools/clang/plugins/ChromeClassTester.cpp @@ -110,11 +110,11 @@ void ChromeClassTester::emitWarning(SourceLocation loc, std::string err; err = "[chromium-style] "; err += raw_error; - DiagnosticsEngine::Level level = + DiagnosticIDs::Level level = diagnostic().getWarningsAsErrors() ? - DiagnosticsEngine::Error : - DiagnosticsEngine::Warning; - unsigned id = diagnostic().getCustomDiagID(level, err); + DiagnosticIDs::Error : + DiagnosticIDs::Warning; + unsigned id = diagnostic().getDiagnosticIDs()->getCustomDiagID(level, err); DiagnosticBuilder builder = diagnostic().Report(full, id); } diff --git a/tools/clang/scripts/package.sh b/tools/clang/scripts/package.sh index 504ec2b..ba9d744 100755 --- a/tools/clang/scripts/package.sh +++ b/tools/clang/scripts/package.sh @@ -48,6 +48,7 @@ done THIS_DIR="$(dirname "${0}")" LLVM_DIR="${THIS_DIR}/../../../third_party/llvm" LLVM_BOOTSTRAP_DIR="${THIS_DIR}/../../../third_party/llvm-bootstrap" +LLVM_BOOTSTRAP_INSTALL_DIR="${LLVM_DIR}/../llvm-bootstrap-install" LLVM_BUILD_DIR="${THIS_DIR}/../../../third_party/llvm-build" LLVM_BIN_DIR="${LLVM_BUILD_DIR}/Release+Asserts/bin" LLVM_LIB_DIR="${LLVM_BUILD_DIR}/Release+Asserts/lib" @@ -68,6 +69,7 @@ set -exu # Do a clobber build. rm -rf "${LLVM_BOOTSTRAP_DIR}" +rm -rf "${LLVM_BOOTSTRAP_INSTALL_DIR}" rm -rf "${LLVM_BUILD_DIR}" extra_flags= if [[ -n "${gcc_toolchain}" ]]; then diff --git a/tools/clang/scripts/plugin_flags.sh b/tools/clang/scripts/plugin_flags.sh index 320fd16..ac941d7 100755 --- a/tools/clang/scripts/plugin_flags.sh +++ b/tools/clang/scripts/plugin_flags.sh @@ -17,6 +17,4 @@ else fi echo -Xclang -load -Xclang $CLANG_LIB_PATH/libFindBadConstructs.$LIBSUFFIX \ - -Xclang -add-plugin -Xclang find-bad-constructs \ - -Xclang -plugin-arg-find-bad-constructs \ - -Xclang check-url-directory + -Xclang -add-plugin -Xclang find-bad-constructs diff --git a/tools/clang/scripts/update.sh b/tools/clang/scripts/update.sh index 3a70e74..386e8cb 100755 --- a/tools/clang/scripts/update.sh +++ b/tools/clang/scripts/update.sh @@ -8,15 +8,17 @@ # Do NOT CHANGE this if you don't know what you're doing -- see # https://code.google.com/p/chromium/wiki/UpdatingClang # Reverting problematic clang rolls is safe, though. -CLANG_REVISION=198389 +CLANG_REVISION=202554 THIS_DIR="$(dirname "${0}")" LLVM_DIR="${THIS_DIR}/../../../third_party/llvm" LLVM_BUILD_DIR="${LLVM_DIR}/../llvm-build" LLVM_BOOTSTRAP_DIR="${LLVM_DIR}/../llvm-bootstrap" +LLVM_BOOTSTRAP_INSTALL_DIR="${LLVM_DIR}/../llvm-bootstrap-install" CLANG_DIR="${LLVM_DIR}/tools/clang" CLANG_TOOLS_EXTRA_DIR="${CLANG_DIR}/tools/extra" COMPILER_RT_DIR="${LLVM_DIR}/projects/compiler-rt" +LIBCXX_DIR="${LLVM_DIR}/projects/libcxx" ANDROID_NDK_DIR="${LLVM_DIR}/../android_tools/ndk" STAMP_FILE="${LLVM_BUILD_DIR}/cr_build_revision" @@ -259,6 +261,673 @@ echo Getting compiler-rt r"${CLANG_REVISION}" in "${COMPILER_RT_DIR}" svn co --force "${LLVM_REPO_URL}/compiler-rt/trunk@${CLANG_REVISION}" \ "${COMPILER_RT_DIR}" +# clang needs a libc++ checkout, else -stdlib=libc++ won't find includes +# (i.e. this is needed for bootstrap builds). +if [ "${OS}" = "Darwin" ]; then + echo Getting libc++ r"${CLANG_REVISION}" in "${LIBCXX_DIR}" + svn co --force "${LLVM_REPO_URL}/libcxx/trunk@${CLANG_REVISION}" \ + "${LIBCXX_DIR}" +fi + +# Apply patch for test failing with --disable-pthreads (llvm.org/PR11974) +cd "${CLANG_DIR}" +svn revert test/Index/crash-recovery-modules.m +cat << 'EOF' | +--- third_party/llvm/tools/clang/test/Index/crash-recovery-modules.m (revision 202554) ++++ third_party/llvm/tools/clang/test/Index/crash-recovery-modules.m (working copy) +@@ -12,6 +12,8 @@ + + // REQUIRES: crash-recovery + // REQUIRES: shell ++// XFAIL: * ++// (PR11974) + + @import Crash; +EOF +patch -p4 +cd - + +# Temporary patches to make build on android work. +# Merge LLVM r202793, r203601 +cd "${COMPILER_RT_DIR}" +svn revert lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc +svn revert make/platform/clang_linux.mk +cat << 'EOF' | +Index: compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc +=================================================================== +--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc (original) ++++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc Tue Mar 11 15:23:59 2014 +@@ -32,18 +32,10 @@ + // C++ demangling function, as required by Itanium C++ ABI. This is weak, + // because we do not require a C++ ABI library to be linked to a program + // using sanitizers; if it's not present, we'll just use the mangled name. +-// +-// On Android, this is not weak, because we are using shared runtime library +-// AND static libstdc++, and there is no good way to conditionally export +-// __cxa_demangle. By making this a non-weak symbol, we statically link +-// __cxa_demangle into ASan runtime library. + namespace __cxxabiv1 { +- extern "C" +-#if !SANITIZER_ANDROID +- SANITIZER_WEAK_ATTRIBUTE +-#endif +- char *__cxa_demangle(const char *mangled, char *buffer, size_t *length, +- int *status); ++ extern "C" SANITIZER_WEAK_ATTRIBUTE ++ char *__cxa_demangle(const char *mangled, char *buffer, ++ size_t *length, int *status); + } + + namespace __sanitizer { +@@ -55,7 +47,7 @@ static const char *DemangleCXXABI(const + // own demangler (libc++abi's implementation could be adapted so that + // it does not allocate). For now, we just call it anyway, and we leak + // the returned value. +- if (SANITIZER_ANDROID || &__cxxabiv1::__cxa_demangle) ++ if (__cxxabiv1::__cxa_demangle) + if (const char *demangled_name = + __cxxabiv1::__cxa_demangle(name, 0, 0, 0)) + return demangled_name; + +Index: compiler-rt/trunk/make/platform/clang_linux.mk +=================================================================== +--- compiler-rt/trunk/make/platform/clang_linux.mk (original) ++++ compiler-rt/trunk/make/platform/clang_linux.mk Tue Mar 4 01:17:38 2014 +@@ -110,9 +110,10 @@ ANDROID_COMMON_FLAGS := -target arm-linu + --sysroot=$(LLVM_ANDROID_TOOLCHAIN_DIR)/sysroot \ + -B$(LLVM_ANDROID_TOOLCHAIN_DIR) + CFLAGS.asan-arm-android := $(CFLAGS) -fPIC -fno-builtin \ +- $(ANDROID_COMMON_FLAGS) -fno-rtti ++ $(ANDROID_COMMON_FLAGS) -fno-rtti \ ++ -I$(ProjSrcRoot)/third_party/android/include + LDFLAGS.asan-arm-android := $(LDFLAGS) $(ANDROID_COMMON_FLAGS) -ldl -lm -llog \ +- -Wl,-soname=libclang_rt.asan-arm-android.so -Wl,-z,defs ++ -lstdc++ -Wl,-soname=libclang_rt.asan-arm-android.so -Wl,-z,defs + + # Use our stub SDK as the sysroot to support more portable building. For now we + # just do this for the core module, because the stub SDK doesn't have +EOF +patch -p2 +cd - + +# Merge LLVM r203635 +cd "${LLVM_DIR}" +svn revert lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp +svn revert test/CodeGen/ARM/debug-frame-large-stack.ll +svn revert test/CodeGen/ARM/debug-frame-vararg.ll +svn revert test/CodeGen/ARM/debug-frame.ll +cat << 'EOF' | +Index: lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp +=================================================================== +--- lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp ++++ lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp +@@ -54,4 +54,7 @@ + UseParensForSymbolVariant = true; + + UseIntegratedAssembler = true; ++ ++ // gas doesn't handle VFP register names in cfi directives. ++ DwarfRegNumForCFI = true; + } +Index: test/CodeGen/ARM/debug-frame-large-stack.ll +=================================================================== +--- test/CodeGen/ARM/debug-frame-large-stack.ll ++++ test/CodeGen/ARM/debug-frame-large-stack.ll +@@ -42,8 +42,8 @@ + ; CHECK-ARM: .cfi_startproc + ; CHECK-ARM: push {r4, r5} + ; CHECK-ARM: .cfi_def_cfa_offset 8 +-; CHECK-ARM: .cfi_offset r5, -4 +-; CHECK-ARM: .cfi_offset r4, -8 ++; CHECK-ARM: .cfi_offset 5, -4 ++; CHECK-ARM: .cfi_offset 4, -8 + ; CHECK-ARM: sub sp, sp, #72 + ; CHECK-ARM: sub sp, sp, #4096 + ; CHECK-ARM: .cfi_def_cfa_offset 4176 +@@ -54,7 +54,7 @@ + ; CHECK-ARM-FP_ELIM: push {r4, r5} + ; CHECK-ARM-FP_ELIM: .cfi_def_cfa_offset 8 + ; CHECK-ARM-FP_ELIM: .cfi_offset 54, -4 +-; CHECK-ARM-FP_ELIM: .cfi_offset r4, -8 ++; CHECK-ARM-FP_ELIM: .cfi_offset 4, -8 + ; CHECK-ARM-FP_ELIM: sub sp, sp, #72 + ; CHECK-ARM-FP_ELIM: sub sp, sp, #4096 + ; CHECK-ARM-FP_ELIM: .cfi_def_cfa_offset 4176 +@@ -73,11 +73,11 @@ + ; CHECK-ARM: .cfi_startproc + ; CHECK-ARM: push {r4, r5, r11} + ; CHECK-ARM: .cfi_def_cfa_offset 12 +-; CHECK-ARM: .cfi_offset r11, -4 +-; CHECK-ARM: .cfi_offset r5, -8 +-; CHECK-ARM: .cfi_offset r4, -12 ++; CHECK-ARM: .cfi_offset 11, -4 ++; CHECK-ARM: .cfi_offset 5, -8 ++; CHECK-ARM: .cfi_offset 4, -12 + ; CHECK-ARM: add r11, sp, #8 +-; CHECK-ARM: .cfi_def_cfa r11, 4 ++; CHECK-ARM: .cfi_def_cfa 11, 4 + ; CHECK-ARM: sub sp, sp, #20 + ; CHECK-ARM: sub sp, sp, #805306368 + ; CHECK-ARM: bic sp, sp, #15 +@@ -87,11 +87,11 @@ + ; CHECK-ARM-FP-ELIM: .cfi_startproc + ; CHECK-ARM-FP-ELIM: push {r4, r5, r11} + ; CHECK-ARM-FP-ELIM: .cfi_def_cfa_offset 12 +-; CHECK-ARM-FP-ELIM: .cfi_offset r11, -4 +-; CHECK-ARM-FP-ELIM: .cfi_offset r5, -8 +-; CHECK-ARM-FP-ELIM: .cfi_offset r4, -12 ++; CHECK-ARM-FP-ELIM: .cfi_offset 11, -4 ++; CHECK-ARM-FP-ELIM: .cfi_offset 5, -8 ++; CHECK-ARM-FP-ELIM: .cfi_offset 4, -12 + ; CHECK-ARM-FP-ELIM: add r11, sp, #8 +-; CHECK-ARM-FP-ELIM: .cfi_def_cfa r11, 4 ++; CHECK-ARM-FP-ELIM: .cfi_def_cfa 11, 4 + ; CHECK-ARM-FP-ELIM: sub sp, sp, #20 + ; CHECK-ARM-FP-ELIM: sub sp, sp, #805306368 + ; CHECK-ARM-FP-ELIM: bic sp, sp, #15 +Index: test/CodeGen/ARM/debug-frame-vararg.ll +=================================================================== +--- test/CodeGen/ARM/debug-frame-vararg.ll ++++ test/CodeGen/ARM/debug-frame-vararg.ll +@@ -66,8 +66,8 @@ + ; CHECK-FP: .cfi_def_cfa_offset 16 + ; CHECK-FP: push {r4, lr} + ; CHECK-FP: .cfi_def_cfa_offset 24 +-; CHECK-FP: .cfi_offset lr, -20 +-; CHECK-FP: .cfi_offset r4, -24 ++; CHECK-FP: .cfi_offset 14, -20 ++; CHECK-FP: .cfi_offset 4, -24 + ; CHECK-FP: sub sp, sp, #8 + ; CHECK-FP: .cfi_def_cfa_offset 32 + +@@ -77,22 +77,22 @@ + ; CHECK-FP-ELIM: .cfi_def_cfa_offset 16 + ; CHECK-FP-ELIM: push {r4, r11, lr} + ; CHECK-FP-ELIM: .cfi_def_cfa_offset 28 +-; CHECK-FP-ELIM: .cfi_offset lr, -20 +-; CHECK-FP-ELIM: .cfi_offset r11, -24 +-; CHECK-FP-ELIM: .cfi_offset r4, -28 ++; CHECK-FP-ELIM: .cfi_offset 14, -20 ++; CHECK-FP-ELIM: .cfi_offset 11, -24 ++; CHECK-FP-ELIM: .cfi_offset 4, -28 + ; CHECK-FP-ELIM: add r11, sp, #4 +-; CHECK-FP-ELIM: .cfi_def_cfa r11, 24 ++; CHECK-FP-ELIM: .cfi_def_cfa 11, 24 + + ; CHECK-THUMB-FP-LABEL: sum + ; CHECK-THUMB-FP: .cfi_startproc + ; CHECK-THUMB-FP: sub sp, #16 + ; CHECK-THUMB-FP: .cfi_def_cfa_offset 16 + ; CHECK-THUMB-FP: push {r4, r5, r7, lr} + ; CHECK-THUMB-FP: .cfi_def_cfa_offset 32 +-; CHECK-THUMB-FP: .cfi_offset lr, -20 +-; CHECK-THUMB-FP: .cfi_offset r7, -24 +-; CHECK-THUMB-FP: .cfi_offset r5, -28 +-; CHECK-THUMB-FP: .cfi_offset r4, -32 ++; CHECK-THUMB-FP: .cfi_offset 14, -20 ++; CHECK-THUMB-FP: .cfi_offset 7, -24 ++; CHECK-THUMB-FP: .cfi_offset 5, -28 ++; CHECK-THUMB-FP: .cfi_offset 4, -32 + ; CHECK-THUMB-FP: sub sp, #8 + ; CHECK-THUMB-FP: .cfi_def_cfa_offset 40 + +@@ -102,12 +102,12 @@ + ; CHECK-THUMB-FP-ELIM: .cfi_def_cfa_offset 16 + ; CHECK-THUMB-FP-ELIM: push {r4, r5, r7, lr} + ; CHECK-THUMB-FP-ELIM: .cfi_def_cfa_offset 32 +-; CHECK-THUMB-FP-ELIM: .cfi_offset lr, -20 +-; CHECK-THUMB-FP-ELIM: .cfi_offset r7, -24 +-; CHECK-THUMB-FP-ELIM: .cfi_offset r5, -28 +-; CHECK-THUMB-FP-ELIM: .cfi_offset r4, -32 ++; CHECK-THUMB-FP-ELIM: .cfi_offset 14, -20 ++; CHECK-THUMB-FP-ELIM: .cfi_offset 7, -24 ++; CHECK-THUMB-FP-ELIM: .cfi_offset 5, -28 ++; CHECK-THUMB-FP-ELIM: .cfi_offset 4, -32 + ; CHECK-THUMB-FP-ELIM: add r7, sp, #8 +-; CHECK-THUMB-FP-ELIM: .cfi_def_cfa r7, 24 ++; CHECK-THUMB-FP-ELIM: .cfi_def_cfa 7, 24 + + define i32 @sum(i32 %count, ...) { + entry: +Index: test/CodeGen/ARM/debug-frame.ll +=================================================================== +--- test/CodeGen/ARM/debug-frame.ll ++++ test/CodeGen/ARM/debug-frame.ll +@@ -163,131 +163,131 @@ + ; CHECK-FP: .cfi_startproc + ; CHECK-FP: push {r4, r5, r6, r7, r8, r9, r10, r11, lr} + ; CHECK-FP: .cfi_def_cfa_offset 36 +-; CHECK-FP: .cfi_offset lr, -4 +-; CHECK-FP: .cfi_offset r11, -8 +-; CHECK-FP: .cfi_offset r10, -12 +-; CHECK-FP: .cfi_offset r9, -16 +-; CHECK-FP: .cfi_offset r8, -20 +-; CHECK-FP: .cfi_offset r7, -24 +-; CHECK-FP: .cfi_offset r6, -28 +-; CHECK-FP: .cfi_offset r5, -32 +-; CHECK-FP: .cfi_offset r4, -36 ++; CHECK-FP: .cfi_offset 14, -4 ++; CHECK-FP: .cfi_offset 11, -8 ++; CHECK-FP: .cfi_offset 10, -12 ++; CHECK-FP: .cfi_offset 9, -16 ++; CHECK-FP: .cfi_offset 8, -20 ++; CHECK-FP: .cfi_offset 7, -24 ++; CHECK-FP: .cfi_offset 6, -28 ++; CHECK-FP: .cfi_offset 5, -32 ++; CHECK-FP: .cfi_offset 4, -36 + ; CHECK-FP: add r11, sp, #28 +-; CHECK-FP: .cfi_def_cfa r11, 8 ++; CHECK-FP: .cfi_def_cfa 11, 8 + ; CHECK-FP: sub sp, sp, #28 + ; CHECK-FP: .cfi_endproc + + ; CHECK-FP-ELIM-LABEL: _Z4testiiiiiddddd: + ; CHECK-FP-ELIM: .cfi_startproc + ; CHECK-FP-ELIM: push {r4, r5, r6, r7, r8, r9, r10, r11, lr} + ; CHECK-FP-ELIM: .cfi_def_cfa_offset 36 +-; CHECK-FP-ELIM: .cfi_offset lr, -4 +-; CHECK-FP-ELIM: .cfi_offset r11, -8 +-; CHECK-FP-ELIM: .cfi_offset r10, -12 +-; CHECK-FP-ELIM: .cfi_offset r9, -16 +-; CHECK-FP-ELIM: .cfi_offset r8, -20 +-; CHECK-FP-ELIM: .cfi_offset r7, -24 +-; CHECK-FP-ELIM: .cfi_offset r6, -28 +-; CHECK-FP-ELIM: .cfi_offset r5, -32 +-; CHECK-FP-ELIM: .cfi_offset r4, -36 ++; CHECK-FP-ELIM: .cfi_offset 14, -4 ++; CHECK-FP-ELIM: .cfi_offset 11, -8 ++; CHECK-FP-ELIM: .cfi_offset 10, -12 ++; CHECK-FP-ELIM: .cfi_offset 9, -16 ++; CHECK-FP-ELIM: .cfi_offset 8, -20 ++; CHECK-FP-ELIM: .cfi_offset 7, -24 ++; CHECK-FP-ELIM: .cfi_offset 6, -28 ++; CHECK-FP-ELIM: .cfi_offset 5, -32 ++; CHECK-FP-ELIM: .cfi_offset 4, -36 + ; CHECK-FP-ELIM: sub sp, sp, #28 + ; CHECK-FP-ELIM: .cfi_def_cfa_offset 64 + ; CHECK-FP-ELIM: .cfi_endproc + + ; CHECK-V7-FP-LABEL: _Z4testiiiiiddddd: + ; CHECK-V7-FP: .cfi_startproc + ; CHECK-V7-FP: push {r4, r11, lr} + ; CHECK-V7-FP: .cfi_def_cfa_offset 12 +-; CHECK-V7-FP: .cfi_offset lr, -4 +-; CHECK-V7-FP: .cfi_offset r11, -8 +-; CHECK-V7-FP: .cfi_offset r4, -12 ++; CHECK-V7-FP: .cfi_offset 14, -4 ++; CHECK-V7-FP: .cfi_offset 11, -8 ++; CHECK-V7-FP: .cfi_offset 4, -12 + ; CHECK-V7-FP: add r11, sp, #4 +-; CHECK-V7-FP: .cfi_def_cfa r11, 8 ++; CHECK-V7-FP: .cfi_def_cfa 11, 8 + ; CHECK-V7-FP: vpush {d8, d9, d10, d11, d12} +-; CHECK-V7-FP: .cfi_offset d12, -24 +-; CHECK-V7-FP: .cfi_offset d11, -32 +-; CHECK-V7-FP: .cfi_offset d10, -40 +-; CHECK-V7-FP: .cfi_offset d9, -48 +-; CHECK-V7-FP: .cfi_offset d8, -56 ++; CHECK-V7-FP: .cfi_offset 268, -24 ++; CHECK-V7-FP: .cfi_offset 267, -32 ++; CHECK-V7-FP: .cfi_offset 266, -40 ++; CHECK-V7-FP: .cfi_offset 265, -48 ++; CHECK-V7-FP: .cfi_offset 264, -56 + ; CHECK-V7-FP: sub sp, sp, #28 + ; CHECK-V7-FP: .cfi_endproc + + ; CHECK-V7-FP-ELIM-LABEL: _Z4testiiiiiddddd: + ; CHECK-V7-FP-ELIM: .cfi_startproc + ; CHECK-V7-FP-ELIM: push {r4, lr} + ; CHECK-V7-FP-ELIM: .cfi_def_cfa_offset 8 +-; CHECK-V7-FP-ELIM: .cfi_offset lr, -4 +-; CHECK-V7-FP-ELIM: .cfi_offset r4, -8 ++; CHECK-V7-FP-ELIM: .cfi_offset 14, -4 ++; CHECK-V7-FP-ELIM: .cfi_offset 4, -8 + ; CHECK-V7-FP-ELIM: vpush {d8, d9, d10, d11, d12} + ; CHECK-V7-FP-ELIM: .cfi_def_cfa_offset 48 +-; CHECK-V7-FP-ELIM: .cfi_offset d12, -16 +-; CHECK-V7-FP-ELIM: .cfi_offset d11, -24 +-; CHECK-V7-FP-ELIM: .cfi_offset d10, -32 +-; CHECK-V7-FP-ELIM: .cfi_offset d9, -40 +-; CHECK-V7-FP-ELIM: .cfi_offset d8, -48 ++; CHECK-V7-FP-ELIM: .cfi_offset 268, -16 ++; CHECK-V7-FP-ELIM: .cfi_offset 267, -24 ++; CHECK-V7-FP-ELIM: .cfi_offset 266, -32 ++; CHECK-V7-FP-ELIM: .cfi_offset 265, -40 ++; CHECK-V7-FP-ELIM: .cfi_offset 264, -48 + ; CHECK-V7-FP-ELIM: sub sp, sp, #24 + ; CHECK-V7-FP-ELIM: .cfi_def_cfa_offset 72 + ; CHECK-V7-FP-ELIM: .cfi_endproc + + ; CHECK-THUMB-FP-LABEL: _Z4testiiiiiddddd: + ; CHECK-THUMB-FP: .cfi_startproc + ; CHECK-THUMB-FP: push {r4, r5, r6, r7, lr} + ; CHECK-THUMB-FP: .cfi_def_cfa_offset 20 +-; CHECK-THUMB-FP: .cfi_offset lr, -4 +-; CHECK-THUMB-FP: .cfi_offset r7, -8 +-; CHECK-THUMB-FP: .cfi_offset r6, -12 +-; CHECK-THUMB-FP: .cfi_offset r5, -16 +-; CHECK-THUMB-FP: .cfi_offset r4, -20 ++; CHECK-THUMB-FP: .cfi_offset 14, -4 ++; CHECK-THUMB-FP: .cfi_offset 7, -8 ++; CHECK-THUMB-FP: .cfi_offset 6, -12 ++; CHECK-THUMB-FP: .cfi_offset 5, -16 ++; CHECK-THUMB-FP: .cfi_offset 4, -20 + ; CHECK-THUMB-FP: add r7, sp, #12 +-; CHECK-THUMB-FP: .cfi_def_cfa r7, 8 ++; CHECK-THUMB-FP: .cfi_def_cfa 7, 8 + ; CHECK-THUMB-FP: sub sp, #60 + ; CHECK-THUMB-FP: .cfi_endproc + + ; CHECK-THUMB-FP-ELIM-LABEL: _Z4testiiiiiddddd: + ; CHECK-THUMB-FP-ELIM: .cfi_startproc + ; CHECK-THUMB-FP-ELIM: push {r4, r5, r6, r7, lr} + ; CHECK-THUMB-FP-ELIM: .cfi_def_cfa_offset 20 +-; CHECK-THUMB-FP-ELIM: .cfi_offset lr, -4 +-; CHECK-THUMB-FP-ELIM: .cfi_offset r7, -8 +-; CHECK-THUMB-FP-ELIM: .cfi_offset r6, -12 +-; CHECK-THUMB-FP-ELIM: .cfi_offset r5, -16 +-; CHECK-THUMB-FP-ELIM: .cfi_offset r4, -20 ++; CHECK-THUMB-FP-ELIM: .cfi_offset 14, -4 ++; CHECK-THUMB-FP-ELIM: .cfi_offset 7, -8 ++; CHECK-THUMB-FP-ELIM: .cfi_offset 6, -12 ++; CHECK-THUMB-FP-ELIM: .cfi_offset 5, -16 ++; CHECK-THUMB-FP-ELIM: .cfi_offset 4, -20 + ; CHECK-THUMB-FP-ELIM: sub sp, #60 + ; CHECK-THUMB-FP-ELIM: .cfi_def_cfa_offset 80 + ; CHECK-THUMB-FP-ELIM: .cfi_endproc + + ; CHECK-THUMB-V7-FP-LABEL: _Z4testiiiiiddddd: + ; CHECK-THUMB-V7-FP: .cfi_startproc + ; CHECK-THUMB-V7-FP: push.w {r4, r7, r11, lr} + ; CHECK-THUMB-V7-FP: .cfi_def_cfa_offset 16 +-; CHECK-THUMB-V7-FP: .cfi_offset lr, -4 +-; CHECK-THUMB-V7-FP: .cfi_offset r11, -8 +-; CHECK-THUMB-V7-FP: .cfi_offset r7, -12 +-; CHECK-THUMB-V7-FP: .cfi_offset r4, -16 ++; CHECK-THUMB-V7-FP: .cfi_offset 14, -4 ++; CHECK-THUMB-V7-FP: .cfi_offset 11, -8 ++; CHECK-THUMB-V7-FP: .cfi_offset 7, -12 ++; CHECK-THUMB-V7-FP: .cfi_offset 4, -16 + ; CHECK-THUMB-V7-FP: add r7, sp, #4 +-; CHECK-THUMB-V7-FP: .cfi_def_cfa r7, 12 ++; CHECK-THUMB-V7-FP: .cfi_def_cfa 7, 12 + ; CHECK-THUMB-V7-FP: vpush {d8, d9, d10, d11, d12} +-; CHECK-THUMB-V7-FP: .cfi_offset d12, -24 +-; CHECK-THUMB-V7-FP: .cfi_offset d11, -32 +-; CHECK-THUMB-V7-FP: .cfi_offset d10, -40 +-; CHECK-THUMB-V7-FP: .cfi_offset d9, -48 +-; CHECK-THUMB-V7-FP: .cfi_offset d8, -56 ++; CHECK-THUMB-V7-FP: .cfi_offset 268, -24 ++; CHECK-THUMB-V7-FP: .cfi_offset 267, -32 ++; CHECK-THUMB-V7-FP: .cfi_offset 266, -40 ++; CHECK-THUMB-V7-FP: .cfi_offset 265, -48 ++; CHECK-THUMB-V7-FP: .cfi_offset 264, -56 + ; CHECK-THUMB-V7-FP: sub sp, #24 + ; CHECK-THUMB-V7-FP: .cfi_endproc + + ; CHECK-THUMB-V7-FP-ELIM-LABEL: _Z4testiiiiiddddd: + ; CHECK-THUMB-V7-FP-ELIM: .cfi_startproc + ; CHECK-THUMB-V7-FP-ELIM: push {r4, lr} + ; CHECK-THUMB-V7-FP-ELIM: .cfi_def_cfa_offset 8 +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset lr, -4 +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset r4, -8 ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 14, -4 ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 4, -8 + ; CHECK-THUMB-V7-FP-ELIM: vpush {d8, d9, d10, d11, d12} + ; CHECK-THUMB-V7-FP-ELIM: .cfi_def_cfa_offset 48 +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset d12, -16 +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset d11, -24 +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset d10, -32 +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset d9, -40 +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset d8, -48 ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 268, -16 ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 267, -24 ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 266, -32 ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 265, -40 ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 264, -48 + ; CHECK-THUMB-V7-FP-ELIM: sub sp, #24 + ; CHECK-THUMB-V7-FP-ELIM: .cfi_def_cfa_offset 72 + ; CHECK-THUMB-V7-FP-ELIM: .cfi_endproc +@@ -309,81 +309,81 @@ + ; CHECK-FP: .cfi_startproc + ; CHECK-FP: push {r11, lr} + ; CHECK-FP: .cfi_def_cfa_offset 8 +-; CHECK-FP: .cfi_offset lr, -4 +-; CHECK-FP: .cfi_offset r11, -8 ++; CHECK-FP: .cfi_offset 14, -4 ++; CHECK-FP: .cfi_offset 11, -8 + ; CHECK-FP: mov r11, sp +-; CHECK-FP: .cfi_def_cfa_register r11 ++; CHECK-FP: .cfi_def_cfa_register 11 + ; CHECK-FP: pop {r11, lr} + ; CHECK-FP: mov pc, lr + ; CHECK-FP: .cfi_endproc + + ; CHECK-FP-ELIM-LABEL: test2: + ; CHECK-FP-ELIM: .cfi_startproc + ; CHECK-FP-ELIM: push {r11, lr} + ; CHECK-FP-ELIM: .cfi_def_cfa_offset 8 +-; CHECK-FP-ELIM: .cfi_offset lr, -4 +-; CHECK-FP-ELIM: .cfi_offset r11, -8 ++; CHECK-FP-ELIM: .cfi_offset 14, -4 ++; CHECK-FP-ELIM: .cfi_offset 11, -8 + ; CHECK-FP-ELIM: pop {r11, lr} + ; CHECK-FP-ELIM: mov pc, lr + ; CHECK-FP-ELIM: .cfi_endproc + + ; CHECK-V7-FP-LABEL: test2: + ; CHECK-V7-FP: .cfi_startproc + ; CHECK-V7-FP: push {r11, lr} + ; CHECK-V7-FP: .cfi_def_cfa_offset 8 +-; CHECK-V7-FP: .cfi_offset lr, -4 +-; CHECK-V7-FP: .cfi_offset r11, -8 ++; CHECK-V7-FP: .cfi_offset 14, -4 ++; CHECK-V7-FP: .cfi_offset 11, -8 + ; CHECK-V7-FP: mov r11, sp +-; CHECK-V7-FP: .cfi_def_cfa_register r11 ++; CHECK-V7-FP: .cfi_def_cfa_register 11 + ; CHECK-V7-FP: pop {r11, pc} + ; CHECK-V7-FP: .cfi_endproc + + ; CHECK-V7-FP-ELIM-LABEL: test2: + ; CHECK-V7-FP-ELIM: .cfi_startproc + ; CHECK-V7-FP-ELIM: push {r11, lr} + ; CHECK-V7-FP-ELIM: .cfi_def_cfa_offset 8 +-; CHECK-V7-FP-ELIM: .cfi_offset lr, -4 +-; CHECK-V7-FP-ELIM: .cfi_offset r11, -8 ++; CHECK-V7-FP-ELIM: .cfi_offset 14, -4 ++; CHECK-V7-FP-ELIM: .cfi_offset 11, -8 + ; CHECK-V7-FP-ELIM: pop {r11, pc} + ; CHECK-V7-FP-ELIM: .cfi_endproc + + ; CHECK-THUMB-FP-LABEL: test2: + ; CHECK-THUMB-FP: .cfi_startproc + ; CHECK-THUMB-FP: push {r7, lr} + ; CHECK-THUMB-FP: .cfi_def_cfa_offset 8 +-; CHECK-THUMB-FP: .cfi_offset lr, -4 +-; CHECK-THUMB-FP: .cfi_offset r7, -8 ++; CHECK-THUMB-FP: .cfi_offset 14, -4 ++; CHECK-THUMB-FP: .cfi_offset 7, -8 + ; CHECK-THUMB-FP: add r7, sp, #0 +-; CHECK-THUMB-FP: .cfi_def_cfa_register r7 ++; CHECK-THUMB-FP: .cfi_def_cfa_register 7 + ; CHECK-THUMB-FP: pop {r7, pc} + ; CHECK-THUMB-FP: .cfi_endproc + + ; CHECK-THUMB-FP-ELIM-LABEL: test2: + ; CHECK-THUMB-FP-ELIM: .cfi_startproc + ; CHECK-THUMB-FP-ELIM: push {r7, lr} + ; CHECK-THUMB-FP-ELIM: .cfi_def_cfa_offset 8 +-; CHECK-THUMB-FP-ELIM: .cfi_offset lr, -4 +-; CHECK-THUMB-FP-ELIM: .cfi_offset r7, -8 ++; CHECK-THUMB-FP-ELIM: .cfi_offset 14, -4 ++; CHECK-THUMB-FP-ELIM: .cfi_offset 7, -8 + ; CHECK-THUMB-FP-ELIM: pop {r7, pc} + ; CHECK-THUMB-FP-ELIM: .cfi_endproc + + ; CHECK-THUMB-V7-FP-LABEL: test2: + ; CHECK-THUMB-V7-FP: .cfi_startproc + ; CHECK-THUMB-V7-FP: push {r7, lr} + ; CHECK-THUMB-V7-FP: .cfi_def_cfa_offset 8 +-; CHECK-THUMB-V7-FP: .cfi_offset lr, -4 +-; CHECK-THUMB-V7-FP: .cfi_offset r7, -8 ++; CHECK-THUMB-V7-FP: .cfi_offset 14, -4 ++; CHECK-THUMB-V7-FP: .cfi_offset 7, -8 + ; CHECK-THUMB-V7-FP: mov r7, sp +-; CHECK-THUMB-V7-FP: .cfi_def_cfa_register r7 ++; CHECK-THUMB-V7-FP: .cfi_def_cfa_register 7 + ; CHECK-THUMB-V7-FP: pop {r7, pc} + ; CHECK-THUMB-V7-FP: .cfi_endproc + + ; CHECK-THUMB-V7-FP-ELIM-LABEL: test2: + ; CHECK-THUMB-V7-FP-ELIM: .cfi_startproc + ; CHECK-THUMB-V7-FP-ELIM: push.w {r11, lr} + ; CHECK-THUMB-V7-FP-ELIM: .cfi_def_cfa_offset 8 +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset lr, -4 +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset r11, -8 ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 14, -4 ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 11, -8 + ; CHECK-THUMB-V7-FP-ELIM: pop.w {r11, pc} + ; CHECK-THUMB-V7-FP-ELIM: .cfi_endproc + +@@ -413,97 +413,97 @@ + ; CHECK-FP: .cfi_startproc + ; CHECK-FP: push {r4, r5, r11, lr} + ; CHECK-FP: .cfi_def_cfa_offset 16 +-; CHECK-FP: .cfi_offset lr, -4 +-; CHECK-FP: .cfi_offset r11, -8 +-; CHECK-FP: .cfi_offset r5, -12 +-; CHECK-FP: .cfi_offset r4, -16 ++; CHECK-FP: .cfi_offset 14, -4 ++; CHECK-FP: .cfi_offset 11, -8 ++; CHECK-FP: .cfi_offset 5, -12 ++; CHECK-FP: .cfi_offset 4, -16 + ; CHECK-FP: add r11, sp, #8 +-; CHECK-FP: .cfi_def_cfa r11, 8 ++; CHECK-FP: .cfi_def_cfa 11, 8 + ; CHECK-FP: pop {r4, r5, r11, lr} + ; CHECK-FP: mov pc, lr + ; CHECK-FP: .cfi_endproc + + ; CHECK-FP-ELIM-LABEL: test3: + ; CHECK-FP-ELIM: .cfi_startproc + ; CHECK-FP-ELIM: push {r4, r5, r11, lr} + ; CHECK-FP-ELIM: .cfi_def_cfa_offset 16 +-; CHECK-FP-ELIM: .cfi_offset lr, -4 +-; CHECK-FP-ELIM: .cfi_offset r11, -8 +-; CHECK-FP-ELIM: .cfi_offset r5, -12 +-; CHECK-FP-ELIM: .cfi_offset r4, -16 ++; CHECK-FP-ELIM: .cfi_offset 14, -4 ++; CHECK-FP-ELIM: .cfi_offset 11, -8 ++; CHECK-FP-ELIM: .cfi_offset 5, -12 ++; CHECK-FP-ELIM: .cfi_offset 4, -16 + ; CHECK-FP-ELIM: pop {r4, r5, r11, lr} + ; CHECK-FP-ELIM: mov pc, lr + ; CHECK-FP-ELIM: .cfi_endproc + + ; CHECK-V7-FP-LABEL: test3: + ; CHECK-V7-FP: .cfi_startproc + ; CHECK-V7-FP: push {r4, r5, r11, lr} + ; CHECK-V7-FP: .cfi_def_cfa_offset 16 +-; CHECK-V7-FP: .cfi_offset lr, -4 +-; CHECK-V7-FP: .cfi_offset r11, -8 +-; CHECK-V7-FP: .cfi_offset r5, -12 +-; CHECK-V7-FP: .cfi_offset r4, -16 ++; CHECK-V7-FP: .cfi_offset 14, -4 ++; CHECK-V7-FP: .cfi_offset 11, -8 ++; CHECK-V7-FP: .cfi_offset 5, -12 ++; CHECK-V7-FP: .cfi_offset 4, -16 + ; CHECK-V7-FP: add r11, sp, #8 +-; CHECK-V7-FP: .cfi_def_cfa r11, 8 ++; CHECK-V7-FP: .cfi_def_cfa 11, 8 + ; CHECK-V7-FP: pop {r4, r5, r11, pc} + ; CHECK-V7-FP: .cfi_endproc + + ; CHECK-V7-FP-ELIM-LABEL: test3: + ; CHECK-V7-FP-ELIM: .cfi_startproc + ; CHECK-V7-FP-ELIM: push {r4, r5, r11, lr} + ; CHECK-V7-FP-ELIM: .cfi_def_cfa_offset 16 +-; CHECK-V7-FP-ELIM: .cfi_offset lr, -4 +-; CHECK-V7-FP-ELIM: .cfi_offset r11, -8 +-; CHECK-V7-FP-ELIM: .cfi_offset r5, -12 +-; CHECK-V7-FP-ELIM: .cfi_offset r4, -16 ++; CHECK-V7-FP-ELIM: .cfi_offset 14, -4 ++; CHECK-V7-FP-ELIM: .cfi_offset 11, -8 ++; CHECK-V7-FP-ELIM: .cfi_offset 5, -12 ++; CHECK-V7-FP-ELIM: .cfi_offset 4, -16 + ; CHECK-V7-FP-ELIM: pop {r4, r5, r11, pc} + ; CHECK-V7-FP-ELIM: .cfi_endproc + + ; CHECK-THUMB-FP-LABEL: test3: + ; CHECK-THUMB-FP: .cfi_startproc + ; CHECK-THUMB-FP: push {r4, r5, r7, lr} + ; CHECK-THUMB-FP: .cfi_def_cfa_offset 16 +-; CHECK-THUMB-FP: .cfi_offset lr, -4 +-; CHECK-THUMB-FP: .cfi_offset r7, -8 +-; CHECK-THUMB-FP: .cfi_offset r5, -12 +-; CHECK-THUMB-FP: .cfi_offset r4, -16 ++; CHECK-THUMB-FP: .cfi_offset 14, -4 ++; CHECK-THUMB-FP: .cfi_offset 7, -8 ++; CHECK-THUMB-FP: .cfi_offset 5, -12 ++; CHECK-THUMB-FP: .cfi_offset 4, -16 + ; CHECK-THUMB-FP: add r7, sp, #8 +-; CHECK-THUMB-FP: .cfi_def_cfa r7, 8 ++; CHECK-THUMB-FP: .cfi_def_cfa 7, 8 + ; CHECK-THUMB-FP: pop {r4, r5, r7, pc} + ; CHECK-THUMB-FP: .cfi_endproc + + ; CHECK-THUMB-FP-ELIM-LABEL: test3: + ; CHECK-THUMB-FP-ELIM: .cfi_startproc + ; CHECK-THUMB-FP-ELIM: push {r4, r5, r7, lr} + ; CHECK-THUMB-FP-ELIM: .cfi_def_cfa_offset 16 +-; CHECK-THUMB-FP-ELIM: .cfi_offset lr, -4 +-; CHECK-THUMB-FP-ELIM: .cfi_offset r7, -8 +-; CHECK-THUMB-FP-ELIM: .cfi_offset r5, -12 +-; CHECK-THUMB-FP-ELIM: .cfi_offset r4, -16 ++; CHECK-THUMB-FP-ELIM: .cfi_offset 14, -4 ++; CHECK-THUMB-FP-ELIM: .cfi_offset 7, -8 ++; CHECK-THUMB-FP-ELIM: .cfi_offset 5, -12 ++; CHECK-THUMB-FP-ELIM: .cfi_offset 4, -16 + ; CHECK-THUMB-FP-ELIM: pop {r4, r5, r7, pc} + ; CHECK-THUMB-FP-ELIM: .cfi_endproc + + ; CHECK-THUMB-V7-FP-LABEL: test3: + ; CHECK-THUMB-V7-FP: .cfi_startproc + ; CHECK-THUMB-V7-FP: push {r4, r5, r7, lr} + ; CHECK-THUMB-V7-FP: .cfi_def_cfa_offset 16 +-; CHECK-THUMB-V7-FP: .cfi_offset lr, -4 +-; CHECK-THUMB-V7-FP: .cfi_offset r7, -8 +-; CHECK-THUMB-V7-FP: .cfi_offset r5, -12 +-; CHECK-THUMB-V7-FP: .cfi_offset r4, -16 ++; CHECK-THUMB-V7-FP: .cfi_offset 14, -4 ++; CHECK-THUMB-V7-FP: .cfi_offset 7, -8 ++; CHECK-THUMB-V7-FP: .cfi_offset 5, -12 ++; CHECK-THUMB-V7-FP: .cfi_offset 4, -16 + ; CHECK-THUMB-V7-FP: add r7, sp, #8 +-; CHECK-THUMB-V7-FP: .cfi_def_cfa r7, 8 ++; CHECK-THUMB-V7-FP: .cfi_def_cfa 7, 8 + ; CHECK-THUMB-V7-FP: pop {r4, r5, r7, pc} + ; CHECK-THUMB-V7-FP: .cfi_endproc + + ; CHECK-THUMB-V7-FP-ELIM-LABEL: test3: + ; CHECK-THUMB-V7-FP-ELIM: .cfi_startproc + ; CHECK-THUMB-V7-FP-ELIM: push.w {r4, r5, r11, lr} + ; CHECK-THUMB-V7-FP-ELIM: .cfi_def_cfa_offset 16 +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset lr, -4 +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset r11, -8 +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset r5, -12 +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset r4, -16 ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 14, -4 ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 11, -8 ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 5, -12 ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 4, -16 + ; CHECK-THUMB-V7-FP-ELIM: pop.w {r4, r5, r11, pc} + ; CHECK-THUMB-V7-FP-ELIM: .cfi_endproc + +EOF +patch -p0 +cd - + # Echo all commands. set -x @@ -277,9 +946,21 @@ fi export CFLAGS="" export CXXFLAGS="" +# LLVM uses C++11 starting in llvm 3.5. On Linux, this means libstdc++4.7+ is +# needed, on OS X it requires libc++. clang only automatically links to libc++ +# when targeting OS X 10.9+, so add stdlib=libc++ explicitly so clang can run on +# OS X versions as old as 10.7. +# TODO(thakis): Enable this once all bots are on 10.7, and remove the +# --disable-compiler-version-checks flags below, and change all +# MACOSX_DEPLOYMENT_TARGET values to 10.7. +if [ "${OS}" = "Darwin" ]; then + #CXXFLAGS="-stdlib=libc++" + CXXFLAGS="-std=gnu++98" +fi # Build bootstrap clang if requested. if [[ -n "${bootstrap}" ]]; then + ABS_INSTALL_DIR="${PWD}/${LLVM_BOOTSTRAP_INSTALL_DIR}" echo "Building bootstrap compiler" mkdir -p "${LLVM_BOOTSTRAP_DIR}" cd "${LLVM_BOOTSTRAP_DIR}" @@ -289,30 +970,33 @@ if [[ -n "${bootstrap}" ]]; then # compiler should be as similar to the final compiler as possible, so do # keep --disable-threads & co. ../llvm/configure \ + --disable-compiler-version-checks \ --enable-optimized \ --enable-targets=host-only \ + --enable-libedit=no \ --disable-threads \ --disable-pthreads \ --without-llvmgcc \ - --without-llvmgxx + --without-llvmgxx \ + --prefix="${ABS_INSTALL_DIR}" + fi + + MACOSX_DEPLOYMENT_TARGET=10.5 ${MAKE} -j"${NUM_JOBS}" + if [[ -n "${run_tests}" ]]; then + ${MAKE} check-all fi + MACOSX_DEPLOYMENT_TARGET=10.5 ${MAKE} install if [[ -n "${gcc_toolchain}" ]]; then # Copy that gcc's stdlibc++.so.6 to the build dir, so the bootstrap # compiler can start. - mkdir -p Release+Asserts/lib cp -v "$(${CXX} -print-file-name=libstdc++.so.6)" \ - "Release+Asserts/lib/" + "${ABS_INSTALL_DIR}/lib/" fi - - MACOSX_DEPLOYMENT_TARGET=10.5 ${MAKE} -j"${NUM_JOBS}" - if [[ -n "${run_tests}" ]]; then - ${MAKE} check-all - fi cd - - export CC="${PWD}/${LLVM_BOOTSTRAP_DIR}/Release+Asserts/bin/clang" - export CXX="${PWD}/${LLVM_BOOTSTRAP_DIR}/Release+Asserts/bin/clang++" + export CC="${ABS_INSTALL_DIR}/bin/clang" + export CXX="${ABS_INSTALL_DIR}/bin/clang++" if [[ -n "${gcc_toolchain}" ]]; then # Tell the bootstrap compiler to use a specific gcc prefix to search @@ -331,7 +1015,9 @@ mkdir -p "${LLVM_BUILD_DIR}" cd "${LLVM_BUILD_DIR}" if [[ ! -f ./config.status ]]; then ../llvm/configure \ + --disable-compiler-version-checks \ --enable-optimized \ + --enable-libedit=no \ --disable-threads \ --disable-pthreads \ --without-llvmgcc \ |