http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48470
--- Comment #2 from Mikael Pettersson <mikpe at it dot uu.se> 2011-04-06 19:48:25 UTC --- Created attachment 23903 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23903 reduced test case The test case reduces to the following: void __attribute__((naked)) f(void) { int x = 0; g(&x); } It ICEs 4.4.5, 4.5.2, and 4.6.0, but not 4.3.5, 4.2.4, or 4.1.2. I suspect it isn't valid to make recursive calls or take the address of local variables in naked functions.