https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68656
Manuel López-Ibáñez <manu at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2015-12-02 CC| |manu at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #3 from Manuel López-Ibáñez <manu at gcc dot gnu.org> --- This is "documented" here: https://gcc.gnu.org/wiki/DiagnosticsGuidelines When the diagnostic does not refer to a particular source code location, it should use an explicit UNKNOWN_LOCATION rather than no location at all (since the latter uses input_location implicitly and who knows what that is pointing at). It is always better to pass input_location explicitly rather than implicitly. Unfortunately, there are still many many places in GCC that use warning/error instead of warning_at/error_at. (In reply to Richard Biener from comment #1) > Which version worked ok? I think these warnings should simply not output > any location (well, as we now have per-function optimization settings such > warning > may apply only for certain functions...) Is process_options called at all for per-function optimization settings? It doesn't seem to. There is a finish_options that actually takes a location_t argument and it is called for per-function optimization options.