public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/19141] New: #pragma misbehavior with -Werror
@ 2004-12-23 16:13 ted at burghart dot org
  2004-12-23 16:23 ` [Bug c++/19141] " pinskia at gcc dot gnu dot org
  0 siblings, 1 reply; 2+ messages in thread
From: ted at burghart dot org @ 2004-12-23 16:13 UTC (permalink / raw)
  To: gcc-bugs

Whether "#pragma once" is or is not deprecated is not the issue.  Rather, the 
problem is that GCC's behavior since it was deprecated is inappropriate for 
writing portable code and arguably violates the intent of the C (9899-1999 
6.10.6) and C++ (14882-1998 16.6) language specifications.

While the specs dictate that recognized pragma directives behave in an 
implementation-defined manner, they also dicatate that unrecognized pragma 
directives are ignored.  It seems that GCC's behavior regarding (deprecated) 
#pragma once falls in a grey area between the two, and it could be argued that 
the behavior should be that of an unrecognized pragma since the directive has 
no effect.

Unfortunately, the behavior of issuing a warning regarding #pragma once, with 
no means to turn it off, breaks code portability while offering no benefit.  If 
the -Werror switch is turned on (considered good practice by many) in concert 
with reasonable warning levels, legitimate portable code fails to compile 
because of this behavior.

Whatever your personal feelings toward #pragma once, it is arrogant (at best) 
to effectively preclude its presence in header files.  Many, many compilers 
recognize this pragma and (claim to) do something useful with it.  If GCC 
chooses not to use it, that's fine, but issuing a warning that can't be turned 
off over an ineffectual, deprecated pragma directive certainly appears to 
violate the spirit of the language specifications.

-- 
           Summary: #pragma misbehavior with -Werror
           Product: gcc
           Version: 3.2.3
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: ted at burghart dot org
                CC: gcc-bugs at gcc dot gnu dot org


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


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

* [Bug c++/19141] #pragma misbehavior with -Werror
  2004-12-23 16:13 [Bug c++/19141] New: #pragma misbehavior with -Werror ted at burghart dot org
@ 2004-12-23 16:23 ` pinskia at gcc dot gnu dot org
  0 siblings, 0 replies; 2+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-12-23 16:23 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-12-23 16:23 -------
Well it is undeprecated for 3.4.0 so in that way it is fixed so closing as such.

This will not be fixed in 3.3.x as it was a rewrite of libcpp (the preprocessor) handling of files which 
fixed it.  So i am just closing as fixed for 3.4.0.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|---                         |4.0.0


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


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

end of thread, other threads:[~2004-12-23 16:23 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-12-23 16:13 [Bug c++/19141] New: #pragma misbehavior with -Werror ted at burghart dot org
2004-12-23 16:23 ` [Bug c++/19141] " pinskia at gcc dot gnu dot 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).