1 // RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | grep xglobWeak | grep weak | wc -l | grep 1
2 // RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | grep xextWeak | grep weak | wc -l | grep 1
3 // RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | grep xWeaknoinline | grep weak wc -l | grep 1
4 // RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | grep xWeakextnoinline | grep weak wc -l | grep 1
5 // RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | grep xglobnoWeak | grep -v internal | grep -v weak | grep -v linkonce | wc -l | grep 1
6 // RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | grep xstatnoWeak | grep internal | wc -l | grep 1
7 // RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep declare | grep xextnoWeak | grep -v internal | grep -v weak | grep -v linkonce | wc -l | grep 1
8 inline int xglobWeak(int) __attribute__((weak));
9 inline int xglobWeak (int i) {
12 inline int xextWeak(int) __attribute__((weak));
13 extern inline int xextWeak (int i) {
16 int xWeaknoinline(int) __attribute__((weak));
17 int xWeaknoinline(int i) {
20 int xWeakextnoinline(int) __attribute__((weak));
21 extern int xWeakextnoinline(int i) {
24 inline int xglobnoWeak (int i) {
27 static inline int xstatnoWeak (int i) {
30 extern inline int xextnoWeak (int i) {
34 return xglobnoWeak(y)+xstatnoWeak(y)+xextnoWeak(y)+
35 xglobWeak(y)+xextWeak(y)+
36 xWeakextnoinline(y)+xWeaknoinline(y);