http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52116

             Bug #: 52116
           Summary: pragma GCC diagnostic only acts on some lines
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: b.r.longb...@gmail.com


Created attachment 26567
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26567
two and a half testcases

The attachment has two cases, but I think it might be the same bug. The second
case is much easier to understand.

Case 1. Wrapping a warning location in _Pragma("GCC diagnostic ignored
\"-Wshadow\"") does not work (sometimes). This precludes error suppression
during macro expansion. Oddly, it suppresses as expected (mostly) if both are
on the same line. (Although it behaves oddly if one is "warning" and one is
"ignored")

Case 2:
If an error has multiple locations, such as "-Wshadow", it will still be
reported at the original location, if it is suppressed at the new location.

This leads to a confusing, isolated message:
error: shadowed declaration is here [-Werror=shadow]

Tested: Debian GCC 4.6.2-11, GCC trunk r183363

Reply via email to