Xinliang David Li | 3106d9a | 2016-01-28 18:25:53 +0000 | [diff] [blame] | 1 | // Check that the profiling counters and data we create have the linkage we expect |
Rong Xu | 9837ef5 | 2016-02-04 18:39:09 +0000 | [diff] [blame] | 2 | // RUN: %clang_cc1 -triple x86_64-apple-macosx10.9 -main-file-name c-linkage.c %s -o - -emit-llvm -fprofile-instrument=clang | FileCheck %s |
Duncan P. N. Exon Smith | 2fe531c | 2014-03-17 21:18:30 +0000 | [diff] [blame] | 3 | |
Xinliang David Li | 3106d9a | 2016-01-28 18:25:53 +0000 | [diff] [blame] | 4 | // CHECK: @__profc_foo = private global |
| 5 | // CHECK: @__profd_foo = private global |
| 6 | // CHECK: @__profc_foo_weak = weak hidden global |
| 7 | // CHECK: @__profd_foo_weak = weak hidden global |
| 8 | // CHECK: @__profc_main = private global |
| 9 | // CHECK: @__profd_main = private global |
| 10 | // CHECK: @__profc_c_linkage.c_foo_internal = private global |
| 11 | // CHECK: @__profd_c_linkage.c_foo_internal = private global |
Justin Bogner | 970ac60 | 2014-12-08 19:04:51 +0000 | [diff] [blame] | 12 | |
Duncan P. N. Exon Smith | 2fe531c | 2014-03-17 21:18:30 +0000 | [diff] [blame] | 13 | void foo(void) { } |
| 14 | |
Duncan P. N. Exon Smith | 2fe531c | 2014-03-17 21:18:30 +0000 | [diff] [blame] | 15 | void foo_weak(void) __attribute__((weak)); |
| 16 | void foo_weak(void) { if (0){} if (0){} if (0){} if (0){} } |
| 17 | |
Duncan P. N. Exon Smith | 2fe531c | 2014-03-17 21:18:30 +0000 | [diff] [blame] | 18 | static void foo_internal(void); |
| 19 | int main(void) { |
| 20 | foo(); |
| 21 | foo_internal(); |
| 22 | foo_weak(); |
| 23 | return 0; |
| 24 | } |
| 25 | |
Duncan P. N. Exon Smith | 2fe531c | 2014-03-17 21:18:30 +0000 | [diff] [blame] | 26 | static void foo_internal(void) { if (0){} if (0){} } |