public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/52116] New: pragma GCC diagnostic only acts on some lines
@ 2012-02-03 19:35 b.r.longbons at gmail dot com
  2012-02-04 11:10 ` [Bug c/52116] " manu at gcc dot gnu.org
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: b.r.longbons at gmail dot com @ 2012-02-03 19:35 UTC (permalink / raw)
  To: gcc-bugs

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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c/52116] pragma GCC diagnostic only acts on some lines
  2012-02-03 19:35 [Bug c/52116] New: pragma GCC diagnostic only acts on some lines b.r.longbons at gmail dot com
@ 2012-02-04 11:10 ` manu at gcc dot gnu.org
  2012-02-04 11:11 ` manu at gcc dot gnu.org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: manu at gcc dot gnu.org @ 2012-02-04 11:10 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from Manuel López-Ibáñez <manu at gcc dot gnu.org> 2012-02-04 11:09:44 UTC ---
Created attachment 26572
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26572
patch to fix (2)

I am not surprised. Location information in GCC is not very precise. Have you
tested with GCC 4.7?

For 1), someone would need to look more closely at the locations recorded by
each pragma, and compare them with the locations of the diagnostic.

Fixing 2) is easier. Just check the output of the first diagnostic and only
emit the second if the output was true. Also, change the second warning() to
inform(). An untested patch attached. Feel free to take it, test it and submit
it. http://gcc.gnu.org/contribute.html


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c/52116] pragma GCC diagnostic only acts on some lines
  2012-02-03 19:35 [Bug c/52116] New: pragma GCC diagnostic only acts on some lines b.r.longbons at gmail dot com
  2012-02-04 11:10 ` [Bug c/52116] " manu at gcc dot gnu.org
@ 2012-02-04 11:11 ` manu at gcc dot gnu.org
  2012-02-04 18:31 ` b.r.longbons at gmail dot com
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: manu at gcc dot gnu.org @ 2012-02-04 11:11 UTC (permalink / raw)
  To: gcc-bugs

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

Manuel López-Ibáñez <manu at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-02-04
                 CC|                            |manu at gcc dot gnu.org
     Ever Confirmed|0                           |1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c/52116] pragma GCC diagnostic only acts on some lines
  2012-02-03 19:35 [Bug c/52116] New: pragma GCC diagnostic only acts on some lines b.r.longbons at gmail dot com
  2012-02-04 11:10 ` [Bug c/52116] " manu at gcc dot gnu.org
  2012-02-04 11:11 ` manu at gcc dot gnu.org
@ 2012-02-04 18:31 ` b.r.longbons at gmail dot com
  2012-02-04 18:41 ` manu at gcc dot gnu.org
  2012-02-13 17:24 ` manu at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: b.r.longbons at gmail dot com @ 2012-02-04 18:31 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Ben Longbons <b.r.longbons at gmail dot com> 2012-02-04 18:30:46 UTC ---
ah, got home where I have a bunch of versions ...

GCC < 4.6 fail with error: #pragma GCC diagnostic not allowed inside functions

GCC 4.6.{0,1,2}, branch-4.6 r183147, and trunk r182496,r182728,r183173 also
fail as described in this report. (Note that I already mentioned Debian GCC
4.6.2-11, GCC trunk r183363)


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c/52116] pragma GCC diagnostic only acts on some lines
  2012-02-03 19:35 [Bug c/52116] New: pragma GCC diagnostic only acts on some lines b.r.longbons at gmail dot com
                   ` (2 preceding siblings ...)
  2012-02-04 18:31 ` b.r.longbons at gmail dot com
@ 2012-02-04 18:41 ` manu at gcc dot gnu.org
  2012-02-13 17:24 ` manu at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: manu at gcc dot gnu.org @ 2012-02-04 18:41 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Manuel López-Ibáñez <manu at gcc dot gnu.org> 2012-02-04 18:41:25 UTC ---
(In reply to comment #2)
> ah, got home where I have a bunch of versions ...

Since this is not a regression and GCC 4.7 is close to release, I don't think
this will be fixed before GCC 4.8. Nonetheless, you can get the patch approved
now for GCC 4.8, so it is committed as soon as the 4.8 branch is created.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c/52116] pragma GCC diagnostic only acts on some lines
  2012-02-03 19:35 [Bug c/52116] New: pragma GCC diagnostic only acts on some lines b.r.longbons at gmail dot com
                   ` (3 preceding siblings ...)
  2012-02-04 18:41 ` manu at gcc dot gnu.org
@ 2012-02-13 17:24 ` manu at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: manu at gcc dot gnu.org @ 2012-02-13 17:24 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from Manuel López-Ibáñez <manu at gcc dot gnu.org> 2012-02-13 17:24:31 UTC ---
Problem (2) is a duplicate of PR48062


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-02-13 17:24 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-03 19:35 [Bug c/52116] New: pragma GCC diagnostic only acts on some lines b.r.longbons at gmail dot com
2012-02-04 11:10 ` [Bug c/52116] " manu at gcc dot gnu.org
2012-02-04 11:11 ` manu at gcc dot gnu.org
2012-02-04 18:31 ` b.r.longbons at gmail dot com
2012-02-04 18:41 ` manu at gcc dot gnu.org
2012-02-13 17:24 ` manu at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).