But it's quite unclear what they are currently doing.
Literally translating what you are describing:
template<char... FILE>
struct magic { };
magic<__FILE__> m;
This does not compile with gcc, and std::source_location fails to work for exactly the same reason. I don't see any additional problems with std::source_location that don't equally apply to __FILE__.