blob: 50ac558fb0761b9edebbc2e1ba0e107b8c4bfebe [file] [log] [blame]
Xinliang David Li3106d9a2016-01-28 18:25:53 +00001// Check that the profiling counters and data we create have the linkage we expect
Rong Xu9837ef52016-02-04 18:39:09 +00002// 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 Smith2fe531c2014-03-17 21:18:30 +00003
Xinliang David Li3106d9a2016-01-28 18:25:53 +00004// 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 Bogner970ac602014-12-08 19:04:51 +000012
Duncan P. N. Exon Smith2fe531c2014-03-17 21:18:30 +000013void foo(void) { }
14
Duncan P. N. Exon Smith2fe531c2014-03-17 21:18:30 +000015void foo_weak(void) __attribute__((weak));
16void foo_weak(void) { if (0){} if (0){} if (0){} if (0){} }
17
Duncan P. N. Exon Smith2fe531c2014-03-17 21:18:30 +000018static void foo_internal(void);
19int main(void) {
20 foo();
21 foo_internal();
22 foo_weak();
23 return 0;
24}
25
Duncan P. N. Exon Smith2fe531c2014-03-17 21:18:30 +000026static void foo_internal(void) { if (0){} if (0){} }