xref: /llvm-project/clang/test/CodeGen/PowerPC/toc-data-attribute.cpp (revision 0d501f38f348cf046d40c9baee12f0c5145b6d8c)
1*0d501f38SFangrui Song // RUN: %clang_cc1 %s -triple powerpc-ibm-aix-xcoff -mtocdata -emit-llvm -o - 2>&1 | FileCheck %s -check-prefixes=COMMON,ALLTOC
2*0d501f38SFangrui Song // 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*0d501f38SFangrui Song // RUN: %clang_cc1 %s -triple powerpc64-ibm-aix-xcoff -mtocdata -emit-llvm -o - 2>&1 | FileCheck %s -check-prefixes=COMMON,ALLTOC
4*0d501f38SFangrui Song // 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
537b5eb0aSZaara Syeda 
637b5eb0aSZaara Syeda extern int n;
737b5eb0aSZaara Syeda static int s = 100;
837b5eb0aSZaara Syeda 
test()937b5eb0aSZaara Syeda inline int test() {
1037b5eb0aSZaara Syeda     static int counter = 0;
1137b5eb0aSZaara Syeda     counter++;
1237b5eb0aSZaara Syeda     return counter;
1337b5eb0aSZaara Syeda }
1437b5eb0aSZaara Syeda 
a()1537b5eb0aSZaara Syeda int a () {
1637b5eb0aSZaara Syeda     n = test();
1737b5eb0aSZaara Syeda     return 0;
1837b5eb0aSZaara Syeda }
1937b5eb0aSZaara Syeda 
2037b5eb0aSZaara Syeda namespace MyNamespace {
2137b5eb0aSZaara Syeda     int myVariable = 10;
2237b5eb0aSZaara Syeda }
2337b5eb0aSZaara Syeda 
b(int x)2437b5eb0aSZaara Syeda int b(int x) {
2537b5eb0aSZaara Syeda     using namespace MyNamespace;
2637b5eb0aSZaara Syeda     return x + myVariable;
2737b5eb0aSZaara Syeda }
2837b5eb0aSZaara Syeda 
c(int x)2937b5eb0aSZaara Syeda int c(int x) {
3037b5eb0aSZaara Syeda   s += x;
3137b5eb0aSZaara Syeda   return s;
3237b5eb0aSZaara Syeda }
3337b5eb0aSZaara Syeda 
3437b5eb0aSZaara Syeda // COMMON: @n = external global i32, align 4 #0
3537b5eb0aSZaara Syeda // COMMON: @_ZN11MyNamespace10myVariableE = global i32 10, align 4 #0
3637b5eb0aSZaara Syeda // COMMON-NOT: @_ZL1s = internal global i32 100, align 4 #0
3737b5eb0aSZaara Syeda // ALLTOC: @_ZZ4testvE7counter = linkonce_odr global i32 0, align 4 #0
3837b5eb0aSZaara Syeda // TOCLIST-NOT: @_ZZ4testvE7counter = linkonce_odr global i32 0, align 4 #0
3937b5eb0aSZaara Syeda // COMMON: attributes #0 = { "toc-data" }
40