https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105054
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |11.3 Priority|P3 |P4 --- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed for the hang. It hangs in f95-lang.cc:poplevel which does 391 /* Clear out the meanings of the local variables of this level. */ 392 393 for (subblock_node = decl_chain; subblock_node; 394 subblock_node = DECL_CHAIN (subblock_node)) 395 if (DECL_NAME (subblock_node) != 0) 396 /* If the identifier was used or addressed via a local extern decl, 397 don't forget that fact. */ 398 if (DECL_EXTERNAL (subblock_node)) 399 { 400 if (TREE_USED (subblock_node)) 401 TREE_USED (DECL_NAME (subblock_node)) = 1; 402 if (TREE_ADDRESSABLE (subblock_node)) 403 TREE_ADDRESSABLE (DECL_ASSEMBLER_NAME (subblock_node)) = 1; 404 } and this loop never terminates. (gdb) p decl_chain $1 = <var_decl 0x7ffff6523d80 _F.DA1> (gdb) p decl_chain->common.chain $2 = <var_decl 0x7ffff6523c60 ._F.DA0> (gdb) p decl_chain->common.chain->common.chain $3 = <var_decl 0x7ffff6523cf0 _F.DA0> (gdb) p decl_chain->common.chain->common.chain->common.chain $4 = <var_decl 0x7ffff6523c60 ._F.DA0>