This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [C++ Patch] Fix for PR c++/19076 and PR c++/6628


| Douglas Gregor wrote:
| 
| > So AFAICT, this functionality was broken in 3.3.5 and is broken in
| > mainline CVS. This patch ends up introducing an error message on
| > "-pedantic". Perhaps everyone has already migrated to noreturn, so
| > nobody noticed that this extension no longer works?

I have no idea:  the fraction of GCC users that report bugs is, IMO, a
very tiny fraction of the whole community and some are slow to adopt
newer versions...

To clarify:  I find the extension very dubious.  

This is clearly an area where there is an interaction between extension
and a standard semantics.  However, if it is decided that we should
break it we ought to say so and document the breakage.

Paolo Carlini <pcarlini@suse.de> writes:

| In fact, I cannot find the extension document anywhere?!? When
| yesterday I saw Gaby's message wanted to learn more, but couldn't...

$GCC/gcc/doc/extend.texi:

   The attribute @code{noreturn} is not implemented in GCC versions 
   earlier than 2.5.  An alternative way to declare that a function does
   not return, which works in the current version and in some older
   versions, is as follows:

   @smallexample
   typedef void voidfn ();

   volatile voidfn fatal;
   @end smallexample

(I came to that surprise two weeks ago when working on the
front-end+middle-end to support alternative iteration abstraction). 

-- Gaby


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]