void FUNC () { { float IVAR1 ; struct SSSS { float bv; SSSS( const float& from): bv(from) { } }; SSSS VAR1(IVAR1); } { float IVAR2 ; struct SSSS { SSSS( const float& from) {} }; SSSS VAR2(IVAR2); } }
tree aarch64_fold_builtin (tree fndecl, int n_args ATTRIBUTE_UNUSED, tree *args, bool ignore ATTRIBUTE_UNUSED) { int fcode = DECL_FUNCTION_CODE (fndecl); tree type = TREE_TYPE (TREE_TYPE (fndecl)); switch (fcode) { BUILTIN_VALLDI (UNOP, abs, 2) return fold_build1 (ABS_EXPR, type, args[0]); break; VAR1 (UNOP, floatv2si, 2, v2sf) VAR1 (UNOP, floatv4si, 2, v4sf) VAR1 (UNOP, floatv2di, 2, v2df) return fold_build1 (FLOAT_EXPR, type, args[0]); default: break; } return NULL_TREE; }
// CHECK: @_ZZ12OmittingCodefEN4SSSSC1E_0RKf inline void OmittingCode(float x) { if (0) { struct SSSS { float bv; SSSS(const float& from): bv(from) { } }; SSSS VAR1(x); } struct SSSS { float bv; SSSS(const float& from): bv(from) { } }; SSSS VAR2(x); }
void GORF (float IVAR1) { { struct SSSS { float bv; SSSS( const float& from): bv(from) { } }; SSSS VAR1(IVAR1); } { float IVAR2 ; struct SSSS { SSSS( const float& from) {} }; SSSS VAR2(IVAR2); } }