Rafael Espindola | 853c370 | 2012-12-18 03:54:29 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -emit-llvm -disable-red-zone -femit-coverage-data %s -o - | FileCheck %s |
Nick Lewycky | 83c546a | 2013-03-20 02:14:38 +0000 | [diff] [blame] | 2 | // RUN: %clang_cc1 -emit-llvm -disable-red-zone -femit-coverage-data -coverage-no-function-names-in-data %s -o - | FileCheck %s --check-prefix WITHOUTNAMES |
Rafael Espindola | 853c370 | 2012-12-18 03:54:29 +0000 | [diff] [blame] | 3 | |
| 4 | // <rdar://problem/12843084> |
| 5 | |
| 6 | int test1(int a) { |
| 7 | switch (a % 2) { |
| 8 | case 0: |
| 9 | ++a; |
| 10 | case 1: |
| 11 | a /= 2; |
| 12 | } |
| 13 | return a; |
| 14 | } |
| 15 | |
| 16 | // Check that the noredzone flag is set on the generated functions. |
| 17 | |
Bill Wendling | 3bba3ef | 2013-02-20 19:30:01 +0000 | [diff] [blame] | 18 | // CHECK: void @__llvm_gcov_indirect_counter_increment(i32* %{{.*}}, i64** %{{.*}}) unnamed_addr [[NRZ:#[0-9]+]] |
Nick Lewycky | 83c546a | 2013-03-20 02:14:38 +0000 | [diff] [blame] | 19 | |
| 20 | // Inside llvm_gcov_writeout, check that -coverage-no-function-names-in-data |
| 21 | // passes null as the function name. |
Bill Wendling | 3bba3ef | 2013-02-20 19:30:01 +0000 | [diff] [blame] | 22 | // CHECK: void @__llvm_gcov_writeout() unnamed_addr [[NRZ]] |
Nick Lewycky | 83c546a | 2013-03-20 02:14:38 +0000 | [diff] [blame] | 23 | // CHECK: call void @llvm_gcda_emit_function({{.*}}, i8* getelementptr {{.*}}, {{.*}}) |
| 24 | // WITHOUTNAMES: void @__llvm_gcov_writeout() unnamed_addr |
| 25 | // WITHOUTNAMES: call void @llvm_gcda_emit_function({{.*}}, i8* null, {{.*}}) |
| 26 | |
Bill Wendling | e4d6112 | 2013-03-18 23:11:54 +0000 | [diff] [blame] | 27 | // CHECK: void @__llvm_gcov_flush() unnamed_addr [[NRZ]] |
Bill Wendling | 3bba3ef | 2013-02-20 19:30:01 +0000 | [diff] [blame] | 28 | // CHECK: void @__llvm_gcov_init() unnamed_addr [[NRZ]] |
Bill Wendling | f7a9da0 | 2013-02-20 07:22:19 +0000 | [diff] [blame] | 29 | |
Bill Wendling | 3bba3ef | 2013-02-20 19:30:01 +0000 | [diff] [blame] | 30 | // CHECK: attributes [[NRZ]] = { {{.*}}noredzone{{.*}} } |