From 222e2a7620e6520ffaf4fc4e69d79c18da31542e Mon Sep 17 00:00:00 2001 From: "Zancanaro; Carlo" Date: Mon, 24 Sep 2012 09:58:17 +1000 Subject: Add the clang library to the repo (with some of my changes, too). --- clang/test/CodeGen/staticinit.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 clang/test/CodeGen/staticinit.c (limited to 'clang/test/CodeGen/staticinit.c') diff --git a/clang/test/CodeGen/staticinit.c b/clang/test/CodeGen/staticinit.c new file mode 100644 index 0000000..8c5cdd0 --- /dev/null +++ b/clang/test/CodeGen/staticinit.c @@ -0,0 +1,41 @@ +// RUN: %clang_cc1 -triple i386-pc-linux-gnu -emit-llvm -o %t %s +// RUN: grep "g.b = internal global i8. getelementptr" %t + +struct AStruct { + int i; + char *s; + double d; +}; + +void f() { + static int i = 42; + static int is[] = { 1, 2, 3, 4 }; + static char* str = "forty-two"; + static char* strs[] = { "one", "two", "three", "four" }; + static struct AStruct myStruct = { 1, "two", 3.0 }; +} + +void g() { + static char a[10]; + static char *b = a; +} + +struct s { void *p; }; + +void foo(void) { + static struct s var = {((void*)&((char*)0)[0])}; +} + +// RUN: grep "f1.l0 = internal global i32 ptrtoint (i32 ()\* @f1 to i32)" %t +int f1(void) { static int l0 = (unsigned) f1; } + +// PR7044 +char *f2(char key) { + switch (key) { + static char _msg[40]; + case '\014': + return _msg; + } + + return 0; +} -- cgit v1.2.3