diff options
Diffstat (limited to 'test/Profile/c-unreachable-after-switch.c')
-rw-r--r-- | test/Profile/c-unreachable-after-switch.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/Profile/c-unreachable-after-switch.c b/test/Profile/c-unreachable-after-switch.c new file mode 100644 index 0000000..0770437 --- /dev/null +++ b/test/Profile/c-unreachable-after-switch.c @@ -0,0 +1,15 @@ +// RUN: %clang_cc1 -O3 -triple x86_64-apple-macosx10.10 -main-file-name c-unreachable-after-switch.c %s -o - -emit-llvm -fprofile-instr-generate | FileCheck %s + +// CHECK: @[[C:__llvm_profile_counters_foo]] = hidden global [3 x i64] zeroinitializer + +// CHECK-LABEL: @foo() +// CHECK: store {{.*}} @[[C]], i64 0, i64 0 +void foo() { + // CHECK: store {{.*}} @[[C]], i64 0, i64 2 + switch (0) { + default: + return; + } + // We shouldn't emit the unreachable counter. This used to crash in GlobalDCE. + // CHECK-NOT: store {{.*}} @[[SWC]], i64 0, i64 1} +} |