xref: /llvm-project/clang/test/CodeGen/PowerPC/toc-data-attribute.cpp (revision 0d501f38f348cf046d40c9baee12f0c5145b6d8c)
1 // RUN: %clang_cc1 %s -triple powerpc-ibm-aix-xcoff -mtocdata -emit-llvm -o - 2>&1 | FileCheck %s -check-prefixes=COMMON,ALLTOC
2 // RUN: %clang_cc1 %s -triple powerpc-ibm-aix-xcoff -mtocdata=n,_ZN11MyNamespace10myVariableE,_ZL1s,_ZZ4testvE7counter -emit-llvm -o - 2>&1 | FileCheck %s -check-prefixes=COMMON,TOCLIST
3 // RUN: %clang_cc1 %s -triple powerpc64-ibm-aix-xcoff -mtocdata -emit-llvm -o - 2>&1 | FileCheck %s -check-prefixes=COMMON,ALLTOC
4 // RUN: %clang_cc1 %s -triple powerpc64-ibm-aix-xcoff -mtocdata=n,_ZN11MyNamespace10myVariableE,_ZL1s,_ZZ4testvE7counter -emit-llvm -o - 2>&1 | FileCheck %s -check-prefixes=COMMON,TOCLIST
5 
6 extern int n;
7 static int s = 100;
8 
test()9 inline int test() {
10     static int counter = 0;
11     counter++;
12     return counter;
13 }
14 
a()15 int a () {
16     n = test();
17     return 0;
18 }
19 
20 namespace MyNamespace {
21     int myVariable = 10;
22 }
23 
b(int x)24 int b(int x) {
25     using namespace MyNamespace;
26     return x + myVariable;
27 }
28 
c(int x)29 int c(int x) {
30   s += x;
31   return s;
32 }
33 
34 // COMMON: @n = external global i32, align 4 #0
35 // COMMON: @_ZN11MyNamespace10myVariableE = global i32 10, align 4 #0
36 // COMMON-NOT: @_ZL1s = internal global i32 100, align 4 #0
37 // ALLTOC: @_ZZ4testvE7counter = linkonce_odr global i32 0, align 4 #0
38 // TOCLIST-NOT: @_ZZ4testvE7counter = linkonce_odr global i32 0, align 4 #0
39 // COMMON: attributes #0 = { "toc-data" }
40