This was introduced by: 2005-06-29 Daniel Berlin <[EMAIL PROTECTED]> * tree-complex.c (complex_variable_components): Now a hashtable. (cvc_lookup): Ditto. (cvc_insert): Ditto. (create_components): Use referenced var iterator. Initialize hashtable. Use cvc_insert/lookup. (extract_components): Use cvc_insert/lookup. (update_complex_components): Ditto. (update_complex_components_on_edge): Ditto. * tree-dfa.c (referenced_vars): Now a hashtable. (dump_referenced_vars): Use iterator. (referenced_var_lookup): New function. (referenced_var_insert): Ditto. (add_referenced_var): Use referenced_var_insert. (mark_new_vars_to_rename): Use DECL_UID. * tree-flow-inline.h (first_htab_element): New function. (end_htab_p): Ditto. .....
I will try to get a C testcase. It is an interaction between SRA and referenced variables. Actually thinking about it we cannot get a C testcase as in Ada, we can have ADDR_EXPR of a constructor which means we can introduce a new referenced variable which we are trying to mark to rename. Here is the backtrace: #0 fancy_abort (file=0xc1bff0 "/Users/pinskia/src/cool/gcc/gcc/tree-dfa.c", line=540, function=0xd84750 "referenced_var_lookup") at /Users/pinskia/src/cool/gcc/gcc/diagnostic.c:590 #1 0x00a27540 in referenced_var_lookup (uid=44) at /Users/pinskia/src/cool/gcc/gcc/tree-dfa.c:540 #2 0x00ae5698 in generate_element_init (elt=0x4392d008, init=0x43673240, list_p=0xbffff41c) at / Users/pinskia/src/cool/gcc/gcc/tree-sra.c:1741 #3 0x00ae6b84 in scalarize_init (lhs_elt=0x4392d008, rhs=0x43673240, bsi=0xbffff598) at /Users/ pinskia/src/cool/gcc/gcc/tree-sra.c:1946 #4 0x00ae0ac0 in sra_walk_modify_expr (expr=0x446198a0, bsi=0xbffff598, fns=0xd88244) at / Users/pinskia/src/cool/gcc/gcc/tree-sra.c:850 #5 0x00ae11b4 in sra_walk_function (fns=0xd88244) at /Users/pinskia/src/cool/gcc/gcc/tree-sra.c: 922 #6 0x00ae70e8 in scalarize_function () at /Users/pinskia/src/cool/gcc/gcc/tree-sra.c:2107 #7 0x00ae7420 in tree_sra () at /Users/pinskia/src/cool/gcc/gcc/tree-sra.c:2166 #8 0x00603fe0 in execute_one_pass (pass=0xd3763c) at /Users/pinskia/src/cool/gcc/gcc/tree- optimize.c:714 #9 0x00604160 in execute_pass_list (pass=0xd3763c) at /Users/pinskia/src/cool/gcc/gcc/tree- optimize.c:751 #10 0x0060418c in execute_pass_list (pass=0xd28880) at /Users/pinskia/src/cool/gcc/gcc/tree- optimize.c:752 #11 0x00604884 in tree_rest_of_compilation (fndecl=0x43649480) at /Users/pinskia/src/cool/gcc/ gcc/tree-optimize.c:914 -- Summary: [4.1 Regression] ICE in referenced_var_lookup while compiling ali.adb Product: gcc Version: 4.1.0 Status: UNCONFIRMED Keywords: ice-on-valid-code, build Severity: normal Priority: P2 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pinskia at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org GCC target triplet: powerpc-darwin7.9.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22280