https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109580
--- Comment #2 from David Malcolm <dmalcolm at gcc dot gnu.org> --- The warning is emitted on this statement: _23 = _3 | _5; within this basic block in the optimized code: <bb 3> [local count: 217325344]: nfd_26 = emacs_open_noquit ("/dev/null", 2, 0); _3 = nfd_26 < 0; _4 = dup2 (nfd_26, 0); _5 = _4 < 0; _23 = _3 | _5; _6 = dup2 (nfd_26, 1); [...snip...] where the statement has UNKNOWN_LOCATION for its source location. So there are several things going on here: (a) the statement has UNKNOWN_LOCATION, rather than a meaningful source location (b) pragmas don't affect statements at UNKNOWN_LOCATION; perhaps they should? (c) the analyzer has some logic to workaround stmt bad locations (stmt_finder); perhaps it could use it in this case