diff options
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/Driver/cl-options.c | 10 | ||||
| -rw-r--r-- | clang/test/Driver/clang_f_opts.c | 5 | ||||
| -rw-r--r-- | clang/test/Driver/frame-pointer-elim.c | 79 | ||||
| -rw-r--r-- | clang/test/Driver/xcore-opts.c | 2 |
4 files changed, 58 insertions, 38 deletions
diff --git a/clang/test/Driver/cl-options.c b/clang/test/Driver/cl-options.c index 04aa08a5576..51a98e53509 100644 --- a/clang/test/Driver/cl-options.c +++ b/clang/test/Driver/cl-options.c @@ -161,28 +161,28 @@ // RUN: %clang_cl /Os --target=i686-pc-windows-msvc -### -- %s 2>&1 | FileCheck -check-prefix=Os %s // RUN: %clang_cl /Os --target=x86_64-pc-windows-msvc -### -- %s 2>&1 | FileCheck -check-prefix=Os %s // Os-NOT: -mdisable-fp-elim -// Os: -momit-leaf-frame-pointer +// Os-NOT: -momit-leaf-frame-pointer // Os: -Os // RUN: %clang_cl /Ot --target=i686-pc-windows-msvc -### -- %s 2>&1 | FileCheck -check-prefix=Ot %s // RUN: %clang_cl /Ot --target=x86_64-pc-windows-msvc -### -- %s 2>&1 | FileCheck -check-prefix=Ot %s // Ot-NOT: -mdisable-fp-elim -// Ot: -momit-leaf-frame-pointer +// Ot-NOT: -momit-leaf-frame-pointer // Ot: -O2 // RUN: %clang_cl /Ox --target=i686-pc-windows-msvc -### -- %s 2>&1 | FileCheck -check-prefix=Ox %s // RUN: %clang_cl /Ox --target=x86_64-pc-windows-msvc -### -- %s 2>&1 | FileCheck -check-prefix=Ox %s // Ox-NOT: -mdisable-fp-elim -// Ox: -momit-leaf-frame-pointer +// Ox-NOT: -momit-leaf-frame-pointer // Ox: -O2 // RUN: %clang_cl --target=i686-pc-win32 /O2sy- -### -- %s 2>&1 | FileCheck -check-prefix=PR24003 %s // PR24003: -mdisable-fp-elim -// PR24003: -momit-leaf-frame-pointer +// PR24003-NOT: -momit-leaf-frame-pointer // PR24003: -Os // RUN: %clang_cl --target=i686-pc-win32 -Werror /Oy- /O2 -### -- %s 2>&1 | FileCheck -check-prefix=Oy_2 %s -// Oy_2: -momit-leaf-frame-pointer +// Oy_2-NOT: -momit-leaf-frame-pointer // Oy_2: -O2 // RUN: %clang_cl --target=aarch64-pc-windows-msvc -Werror /Oy- /O2 -### -- %s 2>&1 | FileCheck -check-prefix=Oy_aarch64 %s diff --git a/clang/test/Driver/clang_f_opts.c b/clang/test/Driver/clang_f_opts.c index d3d80fdec41..17feaab26ab 100644 --- a/clang/test/Driver/clang_f_opts.c +++ b/clang/test/Driver/clang_f_opts.c @@ -548,11 +548,6 @@ // CHECK-NO-NULL-POINTER-CHECKS: "-fno-delete-null-pointer-checks" // CHECK-NULL-POINTER-CHECKS-NOT: "-fno-delete-null-pointer-checks" -// RUN: %clang -### -S -fomit-frame-pointer -pg %s 2>&1 | FileCheck -check-prefix=CHECK-NO-MIX-OMIT-FP-PG %s -// RUN: %clang -### -S -fomit-frame-pointer -fno-omit-frame-pointer -pg %s 2>&1 | FileCheck -check-prefix=CHECK-MIX-NO-OMIT-FP-PG %s -// CHECK-NO-MIX-OMIT-FP-PG: '-fomit-frame-pointer' not allowed with '-pg' -// CHECK-MIX-NO-OMIT-FP-PG-NOT: '-fomit-frame-pointer' not allowed with '-pg' - // RUN: %clang -### -S -target x86_64-unknown-linux -frecord-gcc-switches %s 2>&1 | FileCheck -check-prefix=CHECK-RECORD-GCC-SWITCHES %s // RUN: %clang -### -S -target x86_64-unknown-linux -fno-record-gcc-switches %s 2>&1 | FileCheck -check-prefix=CHECK-NO-RECORD-GCC-SWITCHES %s // RUN: %clang -### -S -target x86_64-unknown-linux -fno-record-gcc-switches -frecord-gcc-switches %s 2>&1 | FileCheck -check-prefix=CHECK-RECORD-GCC-SWITCHES %s diff --git a/clang/test/Driver/frame-pointer-elim.c b/clang/test/Driver/frame-pointer-elim.c index 6fcd3eb75ae..3e6df2aaf2e 100644 --- a/clang/test/Driver/frame-pointer-elim.c +++ b/clang/test/Driver/frame-pointer-elim.c @@ -1,48 +1,74 @@ -// For these next two tests when optimized we should omit the leaf frame -// pointer, for unoptimized we should have a leaf frame pointer. -// RUN: %clang -### -target i386-pc-linux-gnu -S -O1 %s 2>&1 | \ -// RUN: FileCheck --check-prefix=LINUX-OPT %s -// LINUX-OPT: "-momit-leaf-frame-pointer" +// KEEP-ALL: "-mdisable-fp-elim" +// KEEP-ALL-NOT: "-momit-leaf-frame-pointer" -// RUN: %clang -### -target i386-pc-linux-gnu -S %s 2>&1 | \ -// RUN: FileCheck --check-prefix=LINUX %s -// LINUX-NOT: "-momit-leaf-frame-pointer" +// KEEP-NON-LEAF: "-mdisable-fp-elim" +// KEEP-NON-LEAF: "-momit-leaf-frame-pointer" + +// KEEP-NONE-NOT: "-mdisable-fp-elim" +// KEEP-NONE-NOT: "-momit-leaf-frame-pointer" + +// On Linux x86, omit frame pointer when optimization is enabled. +// RUN: %clang -### -target i386-linux -S -fomit-frame-pointer %s 2>&1 | \ +// RUN: FileCheck --check-prefix=KEEP-NONE %s +// RUN: %clang -### -target i386-linux -S -O1 %s 2>&1 | \ +// RUN: FileCheck --check-prefix=KEEP-NONE %s + +// -fno-omit-frame-pointer or -pg disables frame pointer omission. +// RUN: %clang -### -target i386-linux -S %s 2>&1 | \ +// RUN: FileCheck --check-prefix=KEEP-ALL %s +// RUN: %clang -### -target i386-linux -S -O1 -fno-omit-frame-pointer %s 2>&1 | \ +// RUN: FileCheck --check-prefix=KEEP-ALL %s +// RUN: %clang -### -target i386-linux -S -O1 -pg %s 2>&1 | \ +// RUN: FileCheck --check-prefix=KEEP-ALL %s + +// -momit-leaf-frame-pointer omits leaf frame pointer. +// -fno-omit-frame-pointer loses out to -momit-leaf-frame-pointer. +// RUN: %clang -### -target i386 -S -momit-leaf-frame-pointer %s 2>&1 | \ +// RUN: FileCheck --check-prefix=KEEP-NON-LEAF %s +// RUN: %clang -### -target i386-linux -S -O1 -fno-omit-frame-pointer -momit-leaf-frame-pointer %s 2>&1 | \ +// RUN: FileCheck --check-prefix=KEEP-NON-LEAF %s +// RUN: %clang -### -target i386-linux -S -O1 -momit-leaf-frame-pointer %s 2>&1 | \ +// RUN: FileCheck --check-prefix=KEEP-NONE %s + +// Explicit or default -fomit-frame-pointer wins over -mno-omit-leaf-frame-pointer. +// RUN: %clang -### -target i386 -S %s -fomit-frame-pointer -mno-omit-leaf-frame-pointer 2>&1 | \ +// RUN: FileCheck --check-prefix=KEEP-NONE %s +// RUN: %clang -### -target i386-linux -S %s -O1 -mno-omit-leaf-frame-pointer 2>&1 | \ +// RUN: FileCheck --check-prefix=KEEP-NONE %s + +// -pg -fomit-frame-pointer => error. +// RUN: %clang -### -S -fomit-frame-pointer -pg %s 2>&1 | FileCheck -check-prefix=CHECK-NO-MIX-OMIT-FP-PG %s +// RUN: %clang -### -S -fomit-frame-pointer -fno-omit-frame-pointer -pg %s 2>&1 | FileCheck -check-prefix=CHECK-MIX-NO-OMIT-FP-PG %s +// CHECK-NO-MIX-OMIT-FP-PG: '-fomit-frame-pointer' not allowed with '-pg' +// CHECK-MIX-NO-OMIT-FP-PG-NOT: '-fomit-frame-pointer' not allowed with '-pg' // CloudABI follows the same rules as Linux. // RUN: %clang -### -target x86_64-unknown-cloudabi -S -O1 %s 2>&1 | \ -// RUN: FileCheck --check-prefix=CLOUDABI-OPT %s -// CLOUDABI-OPT: "-momit-leaf-frame-pointer" +// RUN: FileCheck --check-prefix=KEEP-NONE %s // RUN: %clang -### -target x86_64-unknown-cloudabi -S %s 2>&1 | \ -// RUN: FileCheck --check-prefix=CLOUDABI %s -// CLOUDABI-NOT: "-momit-leaf-frame-pointer" +// RUN: FileCheck --check-prefix=KEEP-ALL %s // NetBSD follows the same rules as Linux. // RUN: %clang -### -target x86_64-unknown-netbsd -S -O1 %s 2>&1 | \ -// RUN: FileCheck --check-prefix=NETBSD-OPT %s -// NETBSD-OPT: "-momit-leaf-frame-pointer" +// RUN: FileCheck --check-prefix=KEEP-NONE %s // RUN: %clang -### -target x86_64-unknown-netbsd -S %s 2>&1 | \ -// RUN: FileCheck --check-prefix=NETBSD %s -// NETBSD-NOT: "-momit-leaf-frame-pointer" +// RUN: FileCheck --check-prefix=KEEP-ALL %s // Darwin disables omitting the leaf frame pointer even under optimization // unless the command lines are given. // RUN: %clang -### -target i386-apple-darwin -S %s 2>&1 | \ -// RUN: FileCheck --check-prefix=DARWIN %s -// DARWIN: "-mdisable-fp-elim" +// RUN: FileCheck --check-prefix=KEEP-ALL %s // RUN: %clang -### -target i386-apple-darwin -S -O1 %s 2>&1 | \ -// RUN: FileCheck --check-prefix=DARWIN-OPT %s -// DARWIN-OPT-NOT: "-momit-leaf-frame-pointer" +// RUN: FileCheck --check-prefix=KEEP-ALL %s // RUN: %clang -### -target i386-darwin -S -fomit-frame-pointer %s 2>&1 | \ -// RUN: FileCheck --check-prefix=OMIT_ALL %s -// OMIT_ALL-NOT: "-mdisable-fp-elim" +// RUN: FileCheck --check-prefix=KEEP-NONE %s // RUN: %clang -### -target i386-darwin -S -momit-leaf-frame-pointer %s 2>&1 | \ -// RUN: FileCheck --check-prefix=OMIT_LEAF %s -// OMIT_LEAF: "-momit-leaf-frame-pointer" +// RUN: FileCheck --check-prefix=KEEP-NON-LEAF %s // RUN: %clang -### -target armv7s-apple-ios -fomit-frame-pointer %s 2>&1 | \ // RUN: FileCheck --check-prefix=WARN-OMIT-7S %s @@ -63,11 +89,10 @@ // WARN-OMIT-LEAF-7S: "-momit-leaf-frame-pointer" // On the PS4, we default to omitting the frame pointer on leaf functions -// (OMIT_LEAF check line is above) // RUN: %clang -### -target x86_64-scei-ps4 -S %s 2>&1 | \ -// RUN: FileCheck --check-prefix=OMIT_LEAF %s +// RUN: FileCheck --check-prefix=KEEP-NON-LEAF %s // RUN: %clang -### -target x86_64-scei-ps4 -S -O2 %s 2>&1 | \ -// RUN: FileCheck --check-prefix=OMIT_LEAF %s +// RUN: FileCheck --check-prefix=KEEP-NON-LEAF %s void f0() {} void f1() { f0(); } diff --git a/clang/test/Driver/xcore-opts.c b/clang/test/Driver/xcore-opts.c index 9300085724c..abbc88e1036 100644 --- a/clang/test/Driver/xcore-opts.c +++ b/clang/test/Driver/xcore-opts.c @@ -4,8 +4,8 @@ // RUN: %clang -target xcore %s -g0 -### -o %t.o 2>&1 | FileCheck -check-prefix CHECK-G0 %s // CHECK: "-nostdsysteminc" -// CHECK: "-momit-leaf-frame-pointer" // CHECK-NOT: "-mdisable-fp-elim" +// CHECK-NOT: "-momit-leaf-frame-pointer" // CHECK: "-fno-signed-char" // CHECK: "-fno-use-cxa-atexit" // CHECK-NOT: "-fcxx-exceptions" |

