blob: f08a7dc13fd90f2ffb7c2a38a0abe86b22a826db [file] [log] [blame]
Daniel Dunbard7d5f022009-03-24 02:24:46 +00001// RUN: clang-cc -arch i386 -emit-llvm -o %t %s &&
Daniel Dunbareda9a5e2009-02-21 00:24:10 +00002
3// RUN: grep '@g0_ext = extern_weak global i32' %t &&
4extern int g0_ext __attribute__((weak));
5// RUN: grep 'declare extern_weak i32 @g1_ext()' %t &&
6extern int __attribute__((weak)) g1_ext (void);
7
8// RUN: grep '@g0_common = weak global i32' %t &&
9int g0_common __attribute__((weak));
10
11// RUN: grep '@g0_def = weak global i32' %t &&
12int g0_def __attribute__((weak)) = 52;
13// RUN: grep 'define weak i32 @g1_def()' %t &&
14int __attribute__((weak)) g1_def (void) {}
15
16// Force _ext references
17void f0() {
18 int a = g0_ext;
19 int b = g1_ext();
20}
21
22// RUN: true