blob: 4631191b9496dec19d1c6d7025da57e541381653 [file] [log] [blame]
Dan Gohmanf17a25c2007-07-18 16:29:46 +00001// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | grep xglobWeak | \
Dan Gohman8c89a502007-08-15 13:36:28 +00002// RUN: grep weak | count 1
Dan Gohmanf17a25c2007-07-18 16:29:46 +00003// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | grep xextWeak | \
Dan Gohman8c89a502007-08-15 13:36:28 +00004// RUN: grep weak | count 1
Dan Gohmanf17a25c2007-07-18 16:29:46 +00005// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | \
Dan Gohman8c89a502007-08-15 13:36:28 +00006// RUN: grep xWeaknoinline | grep weak | count 1
Dan Gohmanf17a25c2007-07-18 16:29:46 +00007// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | \
Dan Gohman8c89a502007-08-15 13:36:28 +00008// RUN: grep xWeakextnoinline | grep weak | count 1
Dan Gohmanf17a25c2007-07-18 16:29:46 +00009// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | \
10// RUN: grep xglobnoWeak | grep -v internal | grep -v weak | \
Dan Gohman8c89a502007-08-15 13:36:28 +000011// RUN: grep -v linkonce | count 1
Dan Gohmanf17a25c2007-07-18 16:29:46 +000012// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | \
Dan Gohman8c89a502007-08-15 13:36:28 +000013// RUN: grep xstatnoWeak | grep internal | count 1
Duncan Sandsd72af682009-05-30 13:57:05 +000014// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | \
15// RUN: grep xextnoWeak | grep available_externally | count 1
Dan Gohmanf17a25c2007-07-18 16:29:46 +000016inline int xglobWeak(int) __attribute__((weak));
17inline int xglobWeak (int i) {
18 return i*2;
19}
20inline int xextWeak(int) __attribute__((weak));
21extern inline int xextWeak (int i) {
22 return i*4;
23}
24int xWeaknoinline(int) __attribute__((weak));
25int xWeaknoinline(int i) {
26 return i*8;
27}
28int xWeakextnoinline(int) __attribute__((weak));
29extern int xWeakextnoinline(int i) {
30 return i*16;
31}
32inline int xglobnoWeak (int i) {
33 return i*32;
34}
35static inline int xstatnoWeak (int i) {
36 return i*64;
37}
38extern inline int xextnoWeak (int i) {
39 return i*128;
40}
41int j(int y) {
42 return xglobnoWeak(y)+xstatnoWeak(y)+xextnoWeak(y)+
43 xglobWeak(y)+xextWeak(y)+
44 xWeakextnoinline(y)+xWeaknoinline(y);
45}