https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109411
--- Comment #2 from Alexandre Oliva <aoliva at gcc dot gnu.org> --- AFAICT there are mentions to test.h line numbers both with and without -gstatement-frontiers, and the mentions are the same. The problem is two-fold: - there aren't any stmt markers for the lines in the template instantiation from test.h. absent stmt markers, is_stmt remains at zero throughout the function, except for its entry on line 6 - GDB appears to disregard !is_stmt locs entirely when setting breakpoints I suppose getting markers for the instantiation would fix the problem, but I don't have any insight into why they're not generated.