https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65405

            Bug ID: 65405
           Summary: improve locations of diagnostics in c-pragma.c
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Keywords: diagnostic
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: manu at gcc dot gnu.org

Created attachment 35021
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35021&action=edit
patch

#pragma GCC diagnostic
#pragma GCC diagnostic warn
#pragma GCC diagnostic warning
#pragma GCC diagnostic warning "-Wfoo"

Now:

test.c:1:9: warning: missing [error|warning|ignored] after ‘#pragma GCC
diagnostic’ [-Wpragmas]
 #pragma GCC diagnostic
         ^
test.c:2:9: warning: expected [error|warning|ignored|push|pop] after ‘#pragma
GCC diagnostic’ [-Wpragmas]
 #pragma GCC diagnostic warn
         ^
test.c:3:9: warning: missing option after ‘#pragma GCC diagnostic’ kind
[-Wpragmas]
 #pragma GCC diagnostic warning
         ^
test.c:4:9: warning: unknown option after ‘#pragma GCC diagnostic’ kind
[-Wpragmas]
 #pragma GCC diagnostic warning "-Wfoo"
         ^

After the patch:

test.c:1:23: warning: missing [error|warning|ignored] after ‘#pragma GCC
diagnostic’ [-Wpragmas]
 #pragma GCC diagnostic
                       ^
test.c:2:24: warning: expected [error|warning|ignored|push|pop] after ‘#pragma
GCC diagnostic’ [-Wpragmas]
 #pragma GCC diagnostic warn
                        ^
test.c:3:31: warning: missing option after ‘#pragma GCC diagnostic’ kind
[-Wpragmas]
 #pragma GCC diagnostic warning
                               ^
test.c:4:32: warning: unknown option after ‘#pragma GCC diagnostic’ kind
[-Wpragmas]
 #pragma GCC diagnostic warning "-Wfoo"
                                ^

And in general, the whole c-pragma.c needs to stop using input_location and
warning() and use explicit locations and warning_at().

Reply via email to