1 // RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | grep xglobWeak | \
2 // RUN: grep weak | count 1
3 // RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | grep xextWeak | \
4 // RUN: grep weak | count 1
5 // RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | \
6 // RUN: grep xWeaknoinline | grep weak | count 1
7 // RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | \
8 // RUN: grep xWeakextnoinline | grep weak | count 1
9 // RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | \
10 // RUN: grep xglobnoWeak | grep -v internal | grep -v weak | \
11 // RUN: grep -v linkonce | count 1
12 // RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | \
13 // RUN: grep xstatnoWeak | grep internal | count 1
14 // RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | \
15 // RUN: grep xextnoWeak | grep available_externally | count 1
16 inline int xglobWeak(int) __attribute__((weak
));
17 inline int xglobWeak (int i
) {
20 inline int xextWeak(int) __attribute__((weak
));
21 extern inline int xextWeak (int i
) {
24 int xWeaknoinline(int) __attribute__((weak
));
25 int xWeaknoinline(int i
) {
28 int xWeakextnoinline(int) __attribute__((weak
));
29 extern int xWeakextnoinline(int i
) {
32 inline int xglobnoWeak (int i
) {
35 static inline int xstatnoWeak (int i
) {
38 extern inline int xextnoWeak (int i
) {
42 return xglobnoWeak(y
)+xstatnoWeak(y
)+xextnoWeak(y
)+
43 xglobWeak(y
)+xextWeak(y
)+
44 xWeakextnoinline(y
)+xWeaknoinline(y
);