------- Comment #1 from jakub at gcc dot gnu dot org 2008-10-23 12:40 ------- The regression has been introduced by PR32256, before that in_system_header flag wasn't saved/restored in push_cfun/pop_cfun. The issue seems to be that allocate_struct_function call in store_parm_decls doesn't seem to have a corresponding set_cfun (NULL); call, so when push_cfun during gimplification is called, it doesn't save in_system_header (as cfun is already non-NULL) and more importantly, pop_cfun at the end of gimplification pops to the same cfun, which means in_system_header remains 1 when leaving the gimplifier and is then used by subsequent parsing of bar function.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37902