This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/48326] Target attribute leaks from function pointers
- From: "michael at talamasca dot ocis.net" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sat, 30 Mar 2013 00:26:53 +0000
- Subject: [Bug target/48326] Target attribute leaks from function pointers
- Auto-submitted: auto-generated
- References: <bug-48326-4 at http dot gcc dot gnu dot org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48326
--- Comment #2 from michael at talamasca dot ocis.net <michael at talamasca dot ocis.net> 2013-03-30 00:26:53 UTC ---
The bug itself seems to have been silently fixed in 4.7.2 or earlier, maybe.
My testcase no longer causes cmov to be emitted, although this could be an
accidental side effect of other changes.
However, there is a related bug that is definitely still present. I noticed
the first bug because GCC itself is also an example of code that triggers it.
This means that modern versions of GCC may fail to bootstrap themselves from
older GCCs that have the original bug.
Fixing this second bug is fairly simple, changing the ifdef that controls SSE
use in libcpp/lex.c to require GCC_VERSION >= 4008 instead of 4005. (The exact
value is not certain, but it must at least be 4007 since 4.6.0 is known to have
the bug.)
It would be a good idea to fix this in 4.7.3. As the last version compilable
from C alone, it will be a likely intermediate stop for anyone trying to
bootstrap up from an ancient GCC installation.