[Bug lto/87574] [9 Regression] ICE in add_data_member_location_attribute at gcc/gcc/dwarf2out.c:19226 since r264943

2018-10-10 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87574

Martin Liška  changed:

   What|Removed |Added

 CC||ebotcazou at gcc dot gnu.org
   Target Milestone|--- |9.0

[Bug lto/87574] [9 Regression] ICE in add_data_member_location_attribute at gcc/gcc/dwarf2out.c:19226 since r264943

2018-10-10 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87574

--- Comment #1 from Martin Liška  ---
Created attachment 44821
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44821&action=edit
Different test-case

One different test-case:

$ g++ thread2.ii -O2 -g
...
during IPA pass: inline
thread.ii: In member function ‘virtual nsresult
mozilla::LazyIdleThread::_ZThn24_N7mozilla14LazyIdleThread17OnDispatchedEventEv()’:
thread.ii:211364:20: internal compiler error: in dwarf2out_abstract_function,
at dwarf2out.c:22468
211364 |   virtual nsresult OnDispatchedEvent(void) override; virtual nsresult
OnProcessNextEvent(nsIThreadInternal *thread, bool mayWait) override; virtual
nsresult AfterProcessNextEvent(nsIThreadInternal *thread, bool
eventWasProcessed) override;
   |^
0xe1ef5e dwarf2out_abstract_function
/home/marxin/Programming/gcc/gcc/dwarf2out.c:22468
0x14c38b8 tree_function_versioning(tree_node*, tree_node*,
vec*, bool, bitmap_head*, bool,
bitmap_head*, basic_block_def*)
/home/marxin/Programming/gcc/gcc/tree-inline.c:5804
0x21661df save_inline_function_body
/home/marxin/Programming/gcc/gcc/ipa-inline-transform.c:585
0x21663b0 inline_transform(cgraph_node*)
/home/marxin/Programming/gcc/gcc/ipa-inline-transform.c:644
0x127fc45 execute_one_ipa_transform_pass
/home/marxin/Programming/gcc/gcc/passes.c:2170
0x127fdcf execute_all_ipa_transforms()
/home/marxin/Programming/gcc/gcc/passes.c:2212
0xd68808 cgraph_node::expand()
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2181
0xd68e6c expand_all_functions
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2326
0xd699cf symbol_table::compile()
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2677
0xd69e08 symbol_table::finalize_compilation_unit()
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2855

[Bug lto/87574] [9 Regression] ICE in add_data_member_location_attribute at gcc/gcc/dwarf2out.c:19226 since r264943

2018-10-10 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87574

Eric Botcazou  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |ebotcazou at gcc dot 
gnu.org

[Bug lto/87574] [9 Regression] ICE in add_data_member_location_attribute at gcc/gcc/dwarf2out.c:19226 since r264943

2018-10-10 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87574

Eric Botcazou  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-10-10
 Ever confirmed|0   |1

--- Comment #2 from Eric Botcazou  ---
Egad.  Reducing the compile-only testcase...

[Bug lto/87574] [9 Regression] ICE in add_data_member_location_attribute at gcc/gcc/dwarf2out.c:19226 since r264943

2018-10-10 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87574

--- Comment #3 from David Binderman  ---
(In reply to Eric Botcazou from comment #2)
> Egad.  Reducing the compile-only testcase...

Not sure which one you mean, but I can duplicate the second
test case with this reduced C++ code:

class a {
public:
  virtual ~a();
};
class c {
public:
  enum j {};
  virtual j d() = 0;
};
class e : a, c {
  j d();
};
class f;
class g {
public:
  static g *h();
  f *i();
};
class f {
public:
  template  b *l(int);
};
c::j e::d() {}
void m() {
  for (int k;;)
g::h()->i()->l(k)->d();
}

Flags -g and -O2 required. Problem seems to start between revision
264889 and 264959.