https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69261
--- Comment #4 from Jens Auer <jens.auer at cgi dot com> --- It produces the correct results if you change foo to not use constexpr: void foo() { auto const s1 = s( "bla" ); auto const s2 = s( "blu" ); string_constexpr<7> const s1s2 = concat(s1,s2); auto constexpr c = concat("bla", "blu"); std::cout << s1.data << std::endl << s2.data << std::endl << s1s2.data << std::endl << c << std::endl; } $ ./a.out bla blu blablu blablu