g++.dg/bprob* is failing currently with autofdo.
Running in gdb shows that there is a very deep recursion in get_index_by_decl until it
overflows the stack.
gcc/:
2017-12-11 Andi Kleen <ak@linux.intel.com>
PR gcov-profile/83355
* auto-profile.c (string_table::get_index_by_decl): Don't
recurse when abstract origin points to itself.
From-SVN: r255540
+2017-12-11 Andi Kleen <ak@linux.intel.com>
+
+ PR gcov-profile/83355
+ * auto-profile.c (string_table::get_index_by_decl): Don't
+ recurse when abstract origin points to itself.
+
2017-12-11 Bin Cheng <bin.cheng@arm.com>
PR tree-optimization/83320
ret = get_index (lang_hooks.dwarf_name (decl, 0));
if (ret != -1)
return ret;
- if (DECL_ABSTRACT_ORIGIN (decl))
+ if (DECL_ABSTRACT_ORIGIN (decl) && DECL_ABSTRACT_ORIGIN (decl) != decl)
return get_index_by_decl (DECL_ABSTRACT_ORIGIN (decl));
return -1;
case LTO_label_decl_ref:
case LTO_translation_unit_decl_ref:
case LTO_namelist_decl_ref:
+ if (!data_in->file_data->current_decl_state)
+ printf("tag %d\n", tag);
ix_u = streamer_read_uhwi (ib);
result = lto_file_decl_data_get_var_decl (data_in->file_data, ix_u);
break;