https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78989
--- Comment #3 from David Malcolm <dmalcolm at gcc dot gnu.org> --- Looking at the PRs you filed about the locations (PR78987 and PR78988), perhaps the best approach here is for the location of the warning to be either this: return (asan_poison_variables && ~~~~~~~~~~~~~~~~~~~~~~^~ # 6 "gimplify.cpp" 3 4 __null ~~~~~~ ); or this: return (asan_poison_variables && ~~~~~~~~~~~~~~~~~~~~~~~~ # 6 "gimplify.cpp" 3 4 __null ^~~~~~ ); i.e. for the location to be a range starting at the LHS start, finishing at the RHS finish, with the caret at either the && or the RHS... ...and then for in_system_header_at to only reject the warning if *all* of the range of the location is fully within a system header, rather than just partially within a header?