David, * David Schultz <d...@freebsd.org>, 20120101 03:54: > I'm out of town and don't remember the details of this, but is there a > reason we couldn't simply have an appropriate #ifdef that uses > __attribute((__noreturn__)) instead of [[noreturn]]? We have plenty > of ifdefs in the tree already to work around deficiencies in various > compilers. Saying "it's the compiler's fault and we're not going to > work around it" is a significant departure from historical precedent, > and it punishes the wrong people. Easier than arguing with the GNU > folks about fixing it, too...
Right now GCC 4.7 is still an unreleased piece of software. If GCC 4.7 was a released piece of software, I would of course agree that we should add the workaround. The problem isn't that GCC 4.7 doesn't support [[noreturn]]. The problem is that GCC only implements parts of C++11, yet it forces the compiler into C++11 mode while bootstrapping. Even if we add a workaround for this in sys/cdefs.h, we can likely never ever get rid of it. Because if someone wants to install GCC 4.7 on a FreeBSD 14.0 box in 2020 to build an old piece of software, he still needs the workaround. But there's nothing serious going on here. The issue is already discussed in GCC Bugzilla and there is a patch that fixes the build. Let's just wait to see what happens. -- Ed Schouten <e...@80386.nl> WWW: http://80386.nl/
pgpboXRFImVs0.pgp
Description: PGP signature