Changeset View
Changeset View
Standalone View
Standalone View
clang/test/CodeGen/fentry.c
// RUN: %clang_cc1 -pg -mfentry -triple i386-unknown-unknown -emit-llvm -o - %s | FileCheck %s | // RUN: %clang_cc1 -pg -mfentry -triple i386-unknown-unknown -emit-llvm -o - %s | FileCheck %s | ||||
// RUN: %clang_cc1 -pg -mfentry -triple x86_64-unknown-linux-gnu -emit-llvm -o - %s | FileCheck %s | // RUN: %clang_cc1 -pg -mfentry -triple x86_64-unknown-linux-gnu -emit-llvm -o - %s | FileCheck %s | ||||
// RUN: %clang_cc1 -mfentry -triple i386-unknown-unknown -emit-llvm -o - %s | FileCheck -check-prefix=NOPG %s | // RUN: %clang_cc1 -mfentry -triple i386-unknown-unknown -emit-llvm -o - %s | FileCheck -check-prefix=NOPG %s | ||||
// RUN: %clang_cc1 -mfentry -triple x86_64-unknown-linux-gnu -emit-llvm -o - %s | FileCheck -check-prefix=NOPG %s | // RUN: %clang_cc1 -mfentry -triple x86_64-unknown-linux-gnu -emit-llvm -o - %s | FileCheck -check-prefix=NOPG %s | ||||
// RUN: %clang -pg -mfentry -O0 -emit-llvm -S -o - %s | FileCheck -check-prefix=FP --implicit-check-not='"frame-pointer"="none"' %s | |||||
MaskRay: `--implicit-check-not='"frame-pointer"="all"'` may be better | |||||
// RUN: %clang -pg -mfentry -O2 -fno-omit-frame-pointer -emit-llvm -S -o - %s | FileCheck -check-prefix=FP --implicit-check-not='"frame-pointer"="none"' %s | |||||
MaskRayUnsubmitted Not Done ReplyInline ActionsOh, %clang tests should be moved to test/Driver/mfentry.c MaskRay: Oh, `%clang` tests should be moved to `test/Driver/mfentry.c` | |||||
// RUN: %clang -pg -mfentry -O2 -emit-llvm -S -o - %s | FileCheck -check-prefix=NOFP --implicit-check-not='"frame-pointer"="all"' %s | |||||
int foo(void) { | int foo(void) { | ||||
return 0; | return 0; | ||||
} | } | ||||
int __attribute__((no_instrument_function)) no_instrument(void) { | int __attribute__((no_instrument_function)) no_instrument(void) { | ||||
return foo(); | return foo(); | ||||
} | } | ||||
//CHECK: attributes #0 = { {{.*}}"fentry-call"="true"{{.*}} } | //CHECK: attributes #0 = { {{.*}}"fentry-call"="true"{{.*}} } | ||||
//CHECK: attributes #1 = { {{.*}} } | //CHECK: attributes #1 = { {{.*}} } | ||||
//CHECK-NOT: attributes #1 = { {{.*}}"fentry-call"="true"{{.*}} } | //CHECK-NOT: attributes #1 = { {{.*}}"fentry-call"="true"{{.*}} } | ||||
//NOPG-NOT: attributes #0 = { {{.*}}"fentry-call"{{.*}} } | //NOPG-NOT: attributes #0 = { {{.*}}"fentry-call"{{.*}} } | ||||
//NOPG-NOT: attributes #1 = { {{.*}}"fentry-call"{{.*}} } | //NOPG-NOT: attributes #1 = { {{.*}}"fentry-call"{{.*}} } | ||||
//FP: "frame-pointer"="all" | |||||
//NOFP: "frame-pointer"="none" |
--implicit-check-not='"frame-pointer"="all"' may be better