https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109663
--- Comment #2 from Carlos Galvez <carlosgalvezp at gmail dot com> --- I could reduce it to a simpler self-contained example: struct Foo; Foo const& foo_maker(); struct Bar { explicit Bar(Foo const&); }; void baz() { Bar const& b{foo_maker()}; } Godbolt: https://godbolt.org/z/1q45Ebexz Here it's clear that we are initializing a reference from a temporary, but since it's a const reference, shouldn't it extend the lifetime of the temporary? Clang does not complain in this case (it does when the reference is non-const).