1*67e74705SXin Li // RUN: %clang_cc1 %s -triple i386-unknown-unknown -emit-llvm -o - | FileCheck %s 2*67e74705SXin Li 3*67e74705SXin Li // CHECK: @var1 = external global i32 4*67e74705SXin Li // CHECK: @_ZN1N4var2E = external global i32 5*67e74705SXin Li // CHECK: @var5 = external global i32 6*67e74705SXin Li // CHECK: @_ZN1N4var3E = external global i32 7*67e74705SXin Li // CHECK: @_ZN1N4var4E = external global i32 8*67e74705SXin Li 9*67e74705SXin Li // CHECK: declare i32 @_Z5func1v() 10*67e74705SXin Li // CHECK: declare i32 @_ZN1N5func2Ev() 11*67e74705SXin Li // CHECK: declare i32 @func4() 12*67e74705SXin Li // CHECK: declare i32 @_ZN1N5func3Ev() 13*67e74705SXin Li f1()14*67e74705SXin Liint f1() { 15*67e74705SXin Li extern int var1, func1(); 16*67e74705SXin Li return var1 + func1(); 17*67e74705SXin Li } 18*67e74705SXin Li 19*67e74705SXin Li namespace N { 20*67e74705SXin Li f2()21*67e74705SXin Liint f2() { 22*67e74705SXin Li extern int var2, func2(); 23*67e74705SXin Li return var2 + func2(); 24*67e74705SXin Li } 25*67e74705SXin Li 26*67e74705SXin Li struct S { f3N::S27*67e74705SXin Li static int f3() { 28*67e74705SXin Li extern int var3, func3(); 29*67e74705SXin Li struct LC { int localfunc() { extern int var4; return var4; } }; 30*67e74705SXin Li LC localobj; 31*67e74705SXin Li return var3 + func3() + localobj.localfunc(); 32*67e74705SXin Li } 33*67e74705SXin Li }; 34*67e74705SXin Li anchorf3()35*67e74705SXin Liint anchorf3() { return S::f3(); } 36*67e74705SXin Li 37*67e74705SXin Li extern "C" { f4()38*67e74705SXin Liint f4() { 39*67e74705SXin Li extern int var5, func4(); 40*67e74705SXin Li return var5 + func4(); 41*67e74705SXin Li } 42*67e74705SXin Li } 43*67e74705SXin Li 44*67e74705SXin Li } 45*67e74705SXin Li 46