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

--- Comment #11 from Ed Schouten <ed at 80386 dot nl> 2011-12-29 22:40:26 UTC 
---
But this has nothing to do with FreeBSD specifically. It will apply to
basically any operating system in the future.

Say, GCC 4.8 (late 2012?) will support [[noreturn]] properly and some OS vendor
decides to start using it by the year 2016 in its header files. That will still
prevent you from compiling GCC 4.7 then, in case some piece of software depends
on it. In the year 2016, OS vendors will simply expect they can do the
following without causing any negative side-effects.

#if defined(__STDC__) && __STDC_VERSION__ >= 201112L
_Noreturn
#if defined(__cplusplus) && __cplusplus >= 201103L
[[noreturn]]
#endif
void exit(int);

Simply because C++11 is the standard that introduced it.

I _really_ think you guys are doing a good job with C++11 and there's _nothing_
wrong with the compiler. The issue is that forcing the compiler to expose C++11
support during its own compilation phase is not conservative.

Reply via email to