https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69543
--- Comment #2 from David Malcolm <dmalcolm at gcc dot gnu.org> --- (In reply to David Malcolm from comment #1) linemap_compare_locations does the right thing if passed a pair of ordinary locations, or if both locations are within the same macro expansion. It generates nonsensical results if one of the locations is in a macro map, which is what's happening here (the location of the _Pragma, after r232893)