https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102350
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- __builtin_source_location doesn't require -std=c++20, but indeed does require <source_location> or some compatible definition of std::source_location::__impl class, and as it doesn't have hardcoded layout of that structure but instead matches whatever the source header provides (looks up fields it needs in there and uses whatever types and layout they have), there is no way around that. Of course, without -std=c++20 the usefulness of it is limited because it relies on consteval that is only supported in C++20 or later.