blob: 958eb618ee70d1cc34664e97f7f391f6a4b9f383 [file] [log] [blame]
Daniel Dunbar03abc9e2009-04-07 22:36:33 +00001// RUN: clang-cc -triple i386-unknown-unknown -fvisibility=default -emit-llvm -o %t %s &&
2// RUN: grep '@g_com = common global i32 0' %t &&
3// RUN: grep '@g_def = global i32 0' %t &&
4// RUN: grep '@g_ext = external global i32' %t &&
Daniel Dunbar7e714cd2009-04-10 20:26:50 +00005// RUN: grep '@g_deferred = internal global' %t &&
Daniel Dunbar03abc9e2009-04-07 22:36:33 +00006// RUN: grep 'declare void @f_ext()' %t &&
Daniel Dunbar7e714cd2009-04-10 20:26:50 +00007// RUN: grep 'define internal void @f_deferred()' %t &&
Daniel Dunbar03abc9e2009-04-07 22:36:33 +00008// RUN: grep 'define i32 @f_def()' %t &&
9// RUN: clang-cc -triple i386-unknown-unknown -fvisibility=protected -emit-llvm -o %t %s &&
10// RUN: grep '@g_com = common protected global i32 0' %t &&
11// RUN: grep '@g_def = protected global i32 0' %t &&
12// RUN: grep '@g_ext = external global i32' %t &&
Daniel Dunbar7e714cd2009-04-10 20:26:50 +000013// RUN: grep '@g_deferred = internal global' %t &&
Daniel Dunbar03abc9e2009-04-07 22:36:33 +000014// RUN: grep 'declare void @f_ext()' %t &&
Daniel Dunbar7e714cd2009-04-10 20:26:50 +000015// RUN: grep 'define internal void @f_deferred()' %t &&
Daniel Dunbar03abc9e2009-04-07 22:36:33 +000016// RUN: grep 'define protected i32 @f_def()' %t &&
17// RUN: clang-cc -triple i386-unknown-unknown -fvisibility=hidden -emit-llvm -o %t %s &&
Daniel Dunbar025f80d2009-07-25 11:27:37 +000018// RUN: grep '@g_com = common hidden global i32 0' %t &&
Daniel Dunbar03abc9e2009-04-07 22:36:33 +000019// RUN: grep '@g_def = hidden global i32 0' %t &&
20// RUN: grep '@g_ext = external global i32' %t &&
Daniel Dunbar7e714cd2009-04-10 20:26:50 +000021// RUN: grep '@g_deferred = internal global' %t &&
Daniel Dunbar03abc9e2009-04-07 22:36:33 +000022// RUN: grep 'declare void @f_ext()' %t &&
Daniel Dunbar7e714cd2009-04-10 20:26:50 +000023// RUN: grep 'define internal void @f_deferred()' %t &&
Daniel Dunbar03abc9e2009-04-07 22:36:33 +000024// RUN: grep 'define hidden i32 @f_def()' %t &&
25// RUN: true
26
27int g_com;
28int g_def = 0;
29extern int g_ext;
Daniel Dunbar7e714cd2009-04-10 20:26:50 +000030static char g_deferred[] = "hello";
Daniel Dunbar03abc9e2009-04-07 22:36:33 +000031
32extern void f_ext(void);
33
Daniel Dunbar7e714cd2009-04-10 20:26:50 +000034static void f_deferred(void) {
35}
36
Daniel Dunbar03abc9e2009-04-07 22:36:33 +000037int f_def(void) {
38 f_ext();
Daniel Dunbar7e714cd2009-04-10 20:26:50 +000039 f_deferred();
40 return g_com + g_def + g_ext + g_deferred[0];
Daniel Dunbar03abc9e2009-04-07 22:36:33 +000041}