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))
     {

Reply via email to