https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67900
kargl at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kargl at gcc dot gnu.org --- Comment #2 from kargl at gcc dot gnu.org --- (In reply to Dominique d'Humieres from comment #1) > The Ice appeared between revisions r199034 (2013-05-17): > > pr67900.f90:4.33: > > function f_real(x) > 1 > pr67900.f90:9.36: > > function f_integer(x) > 2 > Error: Binding label 'x' at (1) collides with global entity 'x' at (2) > > and r199221 (2013-05-17, ICE). Likely one of the revisions r199118, r199119, > or r199120 (pr48858 and pr55465). I did not follow the convoluted arguments, > but the code may be invalid: see the audit trail of the two PRs. Good Luck! > > Backtrace > > * thread #1: tid = 0x44d1226, 0x00007fff90ac7bb0 > libsystem_platform.dylib`_platform_strcmp + 176, queue = > 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) > frame #0: 0x00007fff90ac7bb0 libsystem_platform.dylib`_platform_strcmp + > 176 > libsystem_platform.dylib`_platform_strcmp: > -> 0x7fff90ac7bb0 <+176>: movdqa (%rdi,%rcx), %xmm0 > 0x7fff90ac7bb5 <+181>: movdqu (%rsi,%rcx), %xmm1 > 0x7fff90ac7bba <+186>: pcmpeqb %xmm1, %xmm0 > 0x7fff90ac7bbe <+190>: pcmpeqb %xmm2, %xmm1 > (lldb) bt > * thread #1: tid = 0x44d1226, 0x00007fff90ac7bb0 > libsystem_platform.dylib`_platform_strcmp + 176, queue = > 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) > * frame #0: 0x00007fff90ac7bb0 libsystem_platform.dylib`_platform_strcmp + > 176 > frame #1: 0x0000000100094f17 f951`(sym=0x0000000141f09680)(gfc_symbol *) > + 599 at resolve.c:10783 > frame #2: 0x00000001000bedac > f951`::do_traverse_symtree(st=<unavailable>, st_func=<unavailable>, > sym_func=(f951`(null)(gfc_symbol *) at resolve.c:10735))(gfc_symtree *), > void (*)(gfc_symbol *)) + 236 at symbol.c:3703 > frame #3: 0x00000001000a7f54 f951`::resolve_types(ns=<unavailable>) + > 1028 at resolve.c:15336 > frame #4: 0x00000001000a3458 f951`gfc_resolve(ns=0x0000000142015400) + > 56 at resolve.c:15416 > frame #5: 0x00000001000a662f > f951`::resolve_symbol(sym=0x0000000141f09550) + 8479 at resolve.c:13362 > frame #6: 0x00000001000bedac > f951`::do_traverse_symtree(st=<unavailable>, st_func=<unavailable>, > sym_func=(f951`::resolve_symbol(gfc_symbol *) at > resolve.c:13482))(gfc_symtree *), void (*)(gfc_symbol *)) + 236 at > symbol.c:3703 > frame #7: 0x00000001000a7d15 f951`::resolve_types(ns=0x0000000144800000) > + 453 at resolve.c:15306 > frame #8: 0x00000001000a3458 f951`gfc_resolve(ns=0x0000000144800000) + > 56 at resolve.c:15416 > frame #9: 0x000000010008c03b f951`gfc_parse_file() [inlined] > resolve_all_program_units(gfc_global_ns_list=0x0000000144800000) + 71 at > parse.c:5485 > frame #10: 0x000000010008bff4 f951`gfc_parse_file() + 1044 > frame #11: 0x00000001000d19b6 f951`::gfc_be_parse_file() + 54 at > f95-lang.c:209 > frame #12: 0x000000010091e89a f951`::compile_file() + 58 at toplev.c:483 > frame #13: 0x0000000100cfddbc f951`toplev::main(int, char**) + 1151 at > toplev.c:1973 > frame #14: 0x0000000100cfd93d f951`toplev::main(this=<unavailable>, > argc=2, argv=0x00007fff5fbff350) + 717 > frame #15: 0x0000000100cff779 f951`main(argc=2, argv=0x00007fff5fbff350) > + 41 at main.c:39 Patch Index: resolve.c =================================================================== --- resolve.c (revision 228206) +++ resolve.c (working copy) @@ -10702,7 +10702,7 @@ gfc_verify_binding_labels (gfc_symbol *s sym->binding_label = NULL; } - else if (sym->attr.flavor == FL_VARIABLE + else if (sym->attr.flavor == FL_VARIABLE && module && (strcmp (module, gsym->mod_name) != 0 || strcmp (sym->name, gsym->sym_name) != 0)) {