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

            Bug ID: 99315
           Summary: #pragma GCC warning does not concatenate string
                    literals
           Product: gcc
           Version: 10.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: preprocessor
          Assignee: unassigned at gcc dot gnu.org
          Reporter: fweimer at redhat dot com
  Target Milestone: ---

This:

#pragma GCC warning "foo" "bar"
#pragma GCC error "foo" "bar"

produces:

/tmp/t.c:1:21: warning: foo
    1 | #pragma GCC warning "foo" "bar"
      |                     ^~~~~
/tmp/t.c:2:19: error: foo
    2 | #pragma GCC error "foo" "bar"
      |                   ^~~~~

It is an oversight in the processing of the pragma arguments. Clang produces
this, which is closer to developer expectations:

/tmp/t.c:1:13: warning: foobar [-W#pragma-messages]
/tmp/t.c:2:13: error: foobar

(Another option would be to error out on multiple arguments to the pragma.)

This is not a regression, it's a bug that's always been present.

Reply via email to