So I get the above ICE (gen_subprogram_die at dwarf2out.c:10913) with debian's 3.4.4 shapshot (20050314). I'm currently building CVS top of branch to double check. It also happens with an older 20041116 build I have here.
Created attachment 8841 [details] Here is the .i file
Created attachment 8842 [details] And the half-generated .s file in case it's useful too
Oh, and sorry if I got the triplets wrong, I can never remember what are the "proper" ones ...
Ok, this is with a CVS checkout of today, without the debian patches (that changes the line number a bit). I now get: ../elf/tst-execstack-mod.c:24: internal compiler error: in gen_subprogram_die, at dwarf2out.c:10887 The program is simple: /* Test module for making nonexecutable stacks executable on load of a DSO that requires executable stacks. */ #include <stdbool.h> #include <stdio.h> #include <stdlib.h> void callme (void (*callback) (void)); /* This is a function that makes use of executable stack by using a local function trampoline. */ void tryme (void) { bool ok = false; void callback (void) { ok = true; } callme (&callback); if (ok) printf ("DSO called ok (local %p, trampoline %p)\n", &ok, &callback); else abort (); } void callme (void (*callback) (void)) { (*callback) (); }
Hrm... smells a bit like 16676 ... It really needs to be fixed asap, it prevents building glibc in it's current state.
Same goes for iconvconfig.c:1244 in glibc too, so at least now 2 occurences of this bug preventing build of glibc. This one is a nested function too, so I suppose that is the real issue.
*** This bug has been marked as a duplicate of 16676 ***