For the dehydra plugin, we unfortunately have to delay processing certain types until after their completion (see http://hg.mozilla.org/rewriting-and-analysis/dehydra/file/1248fd227e7f/dehydra_plugin.c#l426).
We do this by saving the types in a vector and then processing them during PLUGIN_FINISH_UNIT. I've created a minimal plugin which, when used to compile sqlite3, demonstrates that a number of types have been mangled by this point. Could they have been GCed? Perhaps it's not safe to save types in this manner but it's strange that sqlite3.c is the only file in the mozilla code base that causes this problem. gcc version (4.5 branch tip): Using built-in specs. COLLECT_GCC=/home/ehren/gcc4.5/dist-4_5-branch/bin/gcc COLLECT_LTO_WRAPPER=/home/ehren/gcc4.5/dist-4_5-branch/libexec/gcc/x86_64-unknown-linux-gnu/4.5.1/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../gcc-4_5-branch/configure --enable-checking --disable-bootstrap CFLAGS='-g3 -O0' --enable-languages=c,c++ --enable-__cxa_atexit --disable-multilib --prefix=/home/ehren/gcc4.5/dist-4_5-branch/ : (reconfigured) ../gcc-4_5-branch/configure --enable-checking --disable-bootstrap CFLAGS='-g3 -O0' --enable-languages=c,c++ --enable-__cxa_atexit --disable-multilib --prefix=/home/ehren/gcc4.5/dist-4_5-branch/ Thread model: posix gcc version 4.5.1 20100713 (prerelease) (GCC) (I'll attach the plugin, sqlite3.i, and the plugin's output) -- Summary: structs saved (in a vector) during PLUGIN_FINISH_TYPE are mangled by the time of PLUGIN_FINISH_UNIT Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: plugins AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ehren dot m at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44968