http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46678
--- Comment #9 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> 2010-11-27 23:06:17 UTC --- Looking at what these functions do, clearly we had a scope problem and do not want a new scope. For this case I am sure we do not want start_block. void gfc_start_block (stmtblock_t * block) { /* Start a new binding level. */ pushlevel (0); block->has_scope = 1; /* The block is empty. */ block->head = NULL_TREE; } /* Initialize a block without creating a new scope. */ void gfc_init_block (stmtblock_t * block) { block->head = NULL_TREE; block->has_scope = 0; }