https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102350
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Note, having the struct somewhere else isn't that useful unless you know exactly how its non-static data members are named and what they mean, so ideally a class with accessor methods, which is what std::source_location provides currently. At least during the development of __builtin_source_location, the exact naming conventions of the members was left to the library (whether it wants _M_ or __ prefixes of the member names), the final implementation uses the libstdc++ naming conventions, but I bet if e.g. libc++ implements <source_location> we could add support even for __ prefixes.