blob: 8f81c8f3a99009862da37865ff1679801c40218b [file] [log] [blame]
Daniel Dunbara5728872009-12-15 20:14:24 +00001// RUN: %clang_cc1 -triple i386-unknown-unknown -fvisibility default -emit-llvm -o %t %s
Daniel Dunbar4fcfde42009-11-08 01:45:36 +00002// 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
5// RUN: grep '@g_deferred = internal global' %t
6// RUN: grep 'declare void @f_ext()' %t
7// RUN: grep 'define internal void @f_deferred()' %t
8// RUN: grep 'define i32 @f_def()' %t
Daniel Dunbara5728872009-12-15 20:14:24 +00009// RUN: %clang_cc1 -triple i386-unknown-unknown -fvisibility protected -emit-llvm -o %t %s
Daniel Dunbar4fcfde42009-11-08 01:45:36 +000010// 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
13// RUN: grep '@g_deferred = internal global' %t
14// RUN: grep 'declare void @f_ext()' %t
15// RUN: grep 'define internal void @f_deferred()' %t
16// RUN: grep 'define protected i32 @f_def()' %t
Daniel Dunbara5728872009-12-15 20:14:24 +000017// RUN: %clang_cc1 -triple i386-unknown-unknown -fvisibility hidden -emit-llvm -o %t %s
Daniel Dunbar4fcfde42009-11-08 01:45:36 +000018// RUN: grep '@g_com = common hidden global i32 0' %t
19// RUN: grep '@g_def = hidden global i32 0' %t
20// RUN: grep '@g_ext = external global i32' %t
21// RUN: grep '@g_deferred = internal global' %t
22// RUN: grep 'declare void @f_ext()' %t
23// RUN: grep 'define internal void @f_deferred()' %t
24// RUN: grep 'define hidden i32 @f_def()' %t
Daniel Dunbar03abc9e2009-04-07 22:36:33 +000025
26int g_com;
27int g_def = 0;
28extern int g_ext;
Daniel Dunbar7e714cd2009-04-10 20:26:50 +000029static char g_deferred[] = "hello";
Daniel Dunbar03abc9e2009-04-07 22:36:33 +000030
31extern void f_ext(void);
32
Daniel Dunbar7e714cd2009-04-10 20:26:50 +000033static void f_deferred(void) {
34}
35
Daniel Dunbar03abc9e2009-04-07 22:36:33 +000036int f_def(void) {
37 f_ext();
Daniel Dunbar7e714cd2009-04-10 20:26:50 +000038 f_deferred();
39 return g_com + g_def + g_ext + g_deferred[0];
Daniel Dunbar03abc9e2009-04-07 22:36:33 +000040}