Lines Matching full:weak
3 // CHECK: @weakvar = weak global
5 // CHECK: @correct_linkage = weak global
10 // CHECK-DAG: @weakvar_alias = alias weak i32* @__weakvar_alias
11 // CHECK-DAG: @foo = alias weak void ()* @__foo
12 // CHECK-DAG: @foo2 = alias weak void ()* @__foo2
13 // CHECK-DAG: @stutter = alias weak void ()* @__stutter
14 // CHECK-DAG: @stutter2 = alias weak void ()* @__stutter2
15 // CHECK-DAG: @declfirst = alias weak void ()* @__declfirst
16 // CHECK-DAG: @declfirstattr = alias weak void ()* @__declfirstattr
17 // CHECK-DAG: @mix2 = alias weak void ()* @__mix2
18 // CHECK-DAG: @a1 = alias weak void ()* @__a1
19 // CHECK-DAG: @xxx = alias weak void ()* @__xxx
23 // CHECK-LABEL: define weak void @weakdef()
26 #pragma weak weakvar
29 #pragma weak weakdef
32 #pragma weak param // expected-warning {{weak identifier 'param' never declared}}
33 #pragma weak correct_linkage
38 #pragma weak weakvar_alias = __weakvar_alias
41 #pragma weak foo = __foo
47 #pragma weak foo2 = __foo2
53 #pragma weak unused // expected-warning {{weak identifier 'unused' never declared}}
54 #pragma weak unused_alias = __unused_alias // expected-warning {{weak identifier '__unused_alias' …
56 #pragma weak td // expected-warning {{weak identifier 'td' never declared}}
59 #pragma weak td2 = __td2 // expected-warning {{weak identifier '__td2' never declared}}
67 #pragma weak stutter = __stutter
68 #pragma weak stutter = __stutter
73 #pragma weak stutter2 = __stutter2
74 #pragma weak stutter2 = __stutter2
78 // test decl/pragma weak order
81 #pragma weak declfirst = __declfirst
86 #pragma weak declfirstattr = __declfirstattr
92 //// ensure that pragma weak/__attribute((weak)) play nice
95 #pragma weak mix
96 __attribute((weak)) void mix(void) { } in mix()
97 // CHECK-LABEL: define weak void @mix()
101 #pragma weak mix2 = __mix2
107 ////////////// test #pragma weak/__attribute combinations
109 // if the SAME ALIAS is already declared then it overrides #pragma weak
110 // resulting in a non-weak alias in this case
112 #pragma weak both = __both
122 #pragma weak both2 = __both2
126 ///////////// ensure that #pragma weak does not alter existing __attributes()
129 #pragma weak a1 = __a1
133 #pragma weak xxx = __xxx
137 ///////////// PR10878: Make sure we can call a weak alias
139 #pragma weak SHA384Pad = SHA512Pad
144 // PR14046: Parse #pragma weak in function-local context
147 #pragma weak PR14046e in PR14046f()
152 // Parse #pragma weak after a label or case statement
159 #pragma weak PR16705a in PR16705f()
162 #pragma weak PR16705b in PR16705f()
166 #pragma weak PR16705c in PR16705f()
179 // #pragma weak must appear before or within the same TopLevelDecl as it
183 #pragma weak yyy
184 // NOTE: weak doesn't apply, not before or in same TopLevelDec(!)