This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/52116] New: pragma GCC diagnostic only acts on some lines
- From: "b.r.longbons at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 03 Feb 2012 19:35:05 +0000
- Subject: [Bug c/52116] New: pragma GCC diagnostic only acts on some lines
- Auto-submitted: auto-generated
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: unassigned@gcc.gnu.org
ReportedBy: b.r.longbons@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