88 lines · cpp
1// RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s2 3// CHECK: @_ZZ4FUNCvEN4SSSSC1ERKf4// CHECK: @_ZZ4FUNCvEN4SSSSC2E_0RKf5// CHECK: @_ZZ4GORFfEN4SSSSC1ERKf6// CHECK: @_ZZ4GORFfEN4SSSSC2E_0RKf7 8void FUNC ()9{10 {11 float IVAR1 ;12 13 struct SSSS 14 {15 float bv;16 SSSS( const float& from): bv(from) { }17 };18 19 SSSS VAR1(IVAR1);20 }21 22 {23 float IVAR2 ;24 25 struct SSSS26 {27 SSSS( const float& from) {}28 };29 30 SSSS VAR2(IVAR2);31 }32}33 34void GORF (float IVAR1)35{36 {37 struct SSSS 38 {39 float bv;40 SSSS( const float& from): bv(from) { }41 };42 43 SSSS VAR1(IVAR1);44 }45 46 {47 float IVAR2 ;48 49 struct SSSS50 {51 SSSS( const float& from) {}52 };53 54 SSSS VAR2(IVAR2);55 }56}57 58// CHECK: @_ZZ12OmittingCodefEN4SSSSC1E_0RKf59inline void OmittingCode(float x) {60 if (0) {61 struct SSSS {62 float bv;63 SSSS(const float& from): bv(from) { }64 };65 66 SSSS VAR1(x);67 }68 69 struct SSSS {70 float bv;71 SSSS(const float& from): bv(from) { }72 };73 74 SSSS VAR2(x);75}76void CallOmittingCode() { OmittingCode(1); }77 78// CHECK: @_ZZ15LocalAnonStructvENUt0_1gEv79inline void LocalAnonStruct() {80 if (0) {81 struct { void f() {} } x;82 x.f();83 }84 struct { void g() {} } y;85 y.g();86}87void CallLocalAnonStruct() { LocalAnonStruct(); }88