https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66139
--- Comment #7 from Xi Ruoyao <ryxi at stu dot xidian.edu.cn> --- std::basic_string<...> is too large. Replace it with a dummy default constructable and copyable class Foo. Then get GIMPLE: _1 = &<retval>->a; _2 = std::vector<Foo>::at (&strings, 0); Foo::Foo (_1, _2); _3 = &<retval>->b; _4 = std::vector<Foo>::at (&strings, 2); Foo::Foo (_3, _4); return <retval>; No exception handling code here.