1*c9bd88e6SHans Wennborg // RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s 2a529c255SFariborz Jahanian 3a529c255SFariborz Jahanian // CHECK: @_ZZ4FUNCvEN4SSSSC1ERKf 4a529c255SFariborz Jahanian // CHECK: @_ZZ4FUNCvEN4SSSSC2E_0RKf 59eba9dfbSFariborz Jahanian // CHECK: @_ZZ4GORFfEN4SSSSC1ERKf 69eba9dfbSFariborz Jahanian // CHECK: @_ZZ4GORFfEN4SSSSC2E_0RKf 7a529c255SFariborz Jahanian FUNC()8a529c255SFariborz Jahanianvoid FUNC () 9a529c255SFariborz Jahanian { 10a529c255SFariborz Jahanian { 11a529c255SFariborz Jahanian float IVAR1 ; 12a529c255SFariborz Jahanian 13a529c255SFariborz Jahanian struct SSSS 14a529c255SFariborz Jahanian { 15a529c255SFariborz Jahanian float bv; 16a529c255SFariborz Jahanian SSSS( const float& from): bv(from) { } 17a529c255SFariborz Jahanian }; 18a529c255SFariborz Jahanian 19a529c255SFariborz Jahanian SSSS VAR1(IVAR1); 20a529c255SFariborz Jahanian } 21a529c255SFariborz Jahanian 22a529c255SFariborz Jahanian { 23a529c255SFariborz Jahanian float IVAR2 ; 24a529c255SFariborz Jahanian 25a529c255SFariborz Jahanian struct SSSS 26a529c255SFariborz Jahanian { 27a529c255SFariborz Jahanian SSSS( const float& from) {} 28a529c255SFariborz Jahanian }; 29a529c255SFariborz Jahanian 30a529c255SFariborz Jahanian SSSS VAR2(IVAR2); 31a529c255SFariborz Jahanian } 32a529c255SFariborz Jahanian } 339eba9dfbSFariborz Jahanian GORF(float IVAR1)349eba9dfbSFariborz Jahanianvoid GORF (float IVAR1) 359eba9dfbSFariborz Jahanian { 369eba9dfbSFariborz Jahanian { 379eba9dfbSFariborz Jahanian struct SSSS 389eba9dfbSFariborz Jahanian { 399eba9dfbSFariborz Jahanian float bv; 409eba9dfbSFariborz Jahanian SSSS( const float& from): bv(from) { } 419eba9dfbSFariborz Jahanian }; 429eba9dfbSFariborz Jahanian 439eba9dfbSFariborz Jahanian SSSS VAR1(IVAR1); 449eba9dfbSFariborz Jahanian } 459eba9dfbSFariborz Jahanian 469eba9dfbSFariborz Jahanian { 479eba9dfbSFariborz Jahanian float IVAR2 ; 489eba9dfbSFariborz Jahanian 499eba9dfbSFariborz Jahanian struct SSSS 509eba9dfbSFariborz Jahanian { 519eba9dfbSFariborz Jahanian SSSS( const float& from) {} 529eba9dfbSFariborz Jahanian }; 539eba9dfbSFariborz Jahanian 549eba9dfbSFariborz Jahanian SSSS VAR2(IVAR2); 559eba9dfbSFariborz Jahanian } 569eba9dfbSFariborz Jahanian } 579eba9dfbSFariborz Jahanian 583b7d46c3SEli Friedman // CHECK: @_ZZ12OmittingCodefEN4SSSSC1E_0RKf OmittingCode(float x)593b7d46c3SEli Friedmaninline void OmittingCode(float x) { 603b7d46c3SEli Friedman if (0) { 613b7d46c3SEli Friedman struct SSSS { 623b7d46c3SEli Friedman float bv; 633b7d46c3SEli Friedman SSSS(const float& from): bv(from) { } 643b7d46c3SEli Friedman }; 653b7d46c3SEli Friedman 663b7d46c3SEli Friedman SSSS VAR1(x); 673b7d46c3SEli Friedman } 683b7d46c3SEli Friedman 693b7d46c3SEli Friedman struct SSSS { 703b7d46c3SEli Friedman float bv; 713b7d46c3SEli Friedman SSSS(const float& from): bv(from) { } 723b7d46c3SEli Friedman }; 733b7d46c3SEli Friedman 743b7d46c3SEli Friedman SSSS VAR2(x); 753b7d46c3SEli Friedman } CallOmittingCode()763b7d46c3SEli Friedmanvoid CallOmittingCode() { OmittingCode(1); } 773b7d46c3SEli Friedman 783b7d46c3SEli Friedman // CHECK: @_ZZ15LocalAnonStructvENUt0_1gEv LocalAnonStruct()793b7d46c3SEli Friedmaninline void LocalAnonStruct() { 803b7d46c3SEli Friedman if (0) { 813b7d46c3SEli Friedman struct { void f() {} } x; 823b7d46c3SEli Friedman x.f(); 833b7d46c3SEli Friedman } 843b7d46c3SEli Friedman struct { void g() {} } y; 853b7d46c3SEli Friedman y.g(); 863b7d46c3SEli Friedman } CallLocalAnonStruct()873b7d46c3SEli Friedmanvoid CallLocalAnonStruct() { LocalAnonStruct(); } 88