13573b2c84372d9484296fa658f5276f6c09acb92Daniel Dunbar// RUN: %clang_cc1 -triple i386-pc-linux-gnu -emit-llvm -o %t %s 2a4996b889ffe46f13e7f81d14a31bc22342ed368Daniel Dunbar// RUN: grep "g.b = internal global i8. getelementptr" %t 32ecd9011b3bcb1a76c7a12f19a74443869e16664Devang Patel 4253e0a7a1192cea6d4e684a27e7d723915d07a4fOliver Huntstruct AStruct { 525cf760b54d3b88633827501013bc51a29b28abaMike Stump int i; 625cf760b54d3b88633827501013bc51a29b28abaMike Stump char *s; 725cf760b54d3b88633827501013bc51a29b28abaMike Stump double d; 8253e0a7a1192cea6d4e684a27e7d723915d07a4fOliver Hunt}; 9253e0a7a1192cea6d4e684a27e7d723915d07a4fOliver Hunt 102ecd9011b3bcb1a76c7a12f19a74443869e16664Devang Patelvoid f() { 112ecd9011b3bcb1a76c7a12f19a74443869e16664Devang Patel static int i = 42; 12253e0a7a1192cea6d4e684a27e7d723915d07a4fOliver Hunt static int is[] = { 1, 2, 3, 4 }; 13253e0a7a1192cea6d4e684a27e7d723915d07a4fOliver Hunt static char* str = "forty-two"; 14253e0a7a1192cea6d4e684a27e7d723915d07a4fOliver Hunt static char* strs[] = { "one", "two", "three", "four" }; 15253e0a7a1192cea6d4e684a27e7d723915d07a4fOliver Hunt static struct AStruct myStruct = { 1, "two", 3.0 }; 162ecd9011b3bcb1a76c7a12f19a74443869e16664Devang Patel} 17934fb023ee1feadb9e2225c46a8d816f921b8b12Lauro Ramos Venancio 18934fb023ee1feadb9e2225c46a8d816f921b8b12Lauro Ramos Venanciovoid g() { 19934fb023ee1feadb9e2225c46a8d816f921b8b12Lauro Ramos Venancio static char a[10]; 20934fb023ee1feadb9e2225c46a8d816f921b8b12Lauro Ramos Venancio static char *b = a; 21934fb023ee1feadb9e2225c46a8d816f921b8b12Lauro Ramos Venancio} 22a7fa2aa49c075fe5fc82f37fc4ff447be0a492bbAnders Carlsson 23a7fa2aa49c075fe5fc82f37fc4ff447be0a492bbAnders Carlssonstruct s { void *p; }; 24a7fa2aa49c075fe5fc82f37fc4ff447be0a492bbAnders Carlsson 25a7fa2aa49c075fe5fc82f37fc4ff447be0a492bbAnders Carlssonvoid foo(void) { 26a7fa2aa49c075fe5fc82f37fc4ff447be0a492bbAnders Carlsson static struct s var = {((void*)&((char*)0)[0])}; 27a7fa2aa49c075fe5fc82f37fc4ff447be0a492bbAnders Carlsson} 28f69d19e634d76a675a6efba85af57a6eebeea7d7Daniel Dunbar 29f69d19e634d76a675a6efba85af57a6eebeea7d7Daniel Dunbar// RUN: grep "f1.l0 = internal global i32 ptrtoint (i32 ()\* @f1 to i32)" %t 30f69d19e634d76a675a6efba85af57a6eebeea7d7Daniel Dunbarint f1(void) { static int l0 = (unsigned) f1; } 31f69d19e634d76a675a6efba85af57a6eebeea7d7Daniel Dunbar 32396b4afdad9cadf40d745f0be8156c2e80b8bc9dJohn McCall// PR7044 33396b4afdad9cadf40d745f0be8156c2e80b8bc9dJohn McCallchar *f2(char key) { 34396b4afdad9cadf40d745f0be8156c2e80b8bc9dJohn McCall switch (key) { 35396b4afdad9cadf40d745f0be8156c2e80b8bc9dJohn McCall static char _msg[40]; 36396b4afdad9cadf40d745f0be8156c2e80b8bc9dJohn McCall case '\014': 37396b4afdad9cadf40d745f0be8156c2e80b8bc9dJohn McCall return _msg; 38396b4afdad9cadf40d745f0be8156c2e80b8bc9dJohn McCall } 39396b4afdad9cadf40d745f0be8156c2e80b8bc9dJohn McCall 40396b4afdad9cadf40d745f0be8156c2e80b8bc9dJohn McCall return 0; 41396b4afdad9cadf40d745f0be8156c2e80b8bc9dJohn McCall} 42