http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57678
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- I think this is due to once a undeclared decl has been found, its type becomes int which I think is just wrong. We should use error_mark_node and then handle the fall out from there. There have been a few bugs with errors like this which points to the same issue of treating undeclared decls as ints.