[Bug ipa/59176] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed

2014-03-25 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59176

--- Comment #20 from Martin Jambor jamborm at gcc dot gnu.org ---
Author: jamborm
Date: Tue Mar 25 10:57:07 2014
New Revision: 208809

URL: http://gcc.gnu.org/viewcvs?rev=208809root=gccview=rev
Log:
2014-03-25  Martin Jambor  mjam...@suse.cz

PR ipa/59176
* lto-cgraph.c (lto_output_node): Stream body_removed flag.
(lto_output_varpool_node): Likewise.
(input_overwrite_node): Likewise.
(input_varpool_node): Likewise.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/lto-cgraph.c


[Bug ipa/59176] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed

2014-03-24 Thread dcb314 at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59176

--- Comment #15 from David Binderman dcb314 at hotmail dot com ---
Created attachment 32434
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32434action=edit
gzipped C++ source code


[Bug ipa/59176] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed

2014-03-24 Thread dcb314 at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59176

--- Comment #16 from David Binderman dcb314 at hotmail dot com ---
I am not sure this is fixed. Please see attached
source code which still fails.


[Bug ipa/59176] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed

2014-03-24 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59176

--- Comment #17 from Martin Jambor jamborm at gcc dot gnu.org ---
(In reply to David Binderman from comment #16)
 I am not sure this is fixed. Please see attached
 source code which still fails.

Although the ICE message is the same, this is most certainly a
different bug as it happens at a different time during the compilation
process.  I will look it at it some more tomorrow.


[Bug ipa/59176] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed

2014-03-24 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59176

--- Comment #18 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
markus@x4 tmp % cat test.ii
class ASN1Object
{
public:
  virtual ~ASN1Object ();
};
class A
{
  virtual unsigned m_fn1 () const;
};
class B
{
public:
  ASN1Object Element;
  virtual unsigned m_fn1 (bool) const;
};
template class BASE class C : public BASE
{
};

class D : ASN1Object, public B
{
};
class G : public D
{
  unsigned m_fn1 (bool) const {}
};
class F : A
{
public:
  F (A);
  unsigned m_fn1 () const
  {
int a;
a = m_fn2 ().m_fn1 (0);
return a;
  }
  const B m_fn2 () const { return m_groupParameters; }
  CG m_groupParameters;
};
template class D void BenchMarkKeyAgreement (int *, int *, int)
{
  A f;
  D d (f);
}

void BenchmarkAll2 () { BenchMarkKeyAgreementF(0, 0, 0); }


markus@x4 tmp % g++ -c -O3 test.ii
test.ii:46:60: error: edge points to wrong declaration:
 void BenchmarkAll2 () { BenchMarkKeyAgreementF(0, 0, 0); }
^
 function_decl 0x7fd4c010fa00 m_fn1.constprop
type function_type 0x7fd4c00d3348
type integer_type 0x7fd4bff4a738 unsigned int public unsigned SI
size integer_cst 0x7fd4bff4c440 constant 32
unit size integer_cst 0x7fd4bff4c460 constant 4
align 32 symtab 0 alias set -1 canonical type 0x7fd4bff4a738
precision 32 min integer_cst 0x7fd4bff4c480 0 max integer_cst 0x7fd4bff4c420
4294967295
pointer_to_this pointer_type 0x7fd4c0060150
QI
size integer_cst 0x7fd4bff4c280 constant 8
unit size integer_cst 0x7fd4bff4c2a0 constant 1
align 8 symtab 0 alias set -1 canonical type 0x7fd4c00d3348
arg-types tree_list 0x7fd4bff48b40 value void_type 0x7fd4bff5d000
void
readonly addressable used nothrow private static autoinline decl_5 QI
defer-output file test.ii line 25 col 12 align 16 context record_type
0x7fd4c00b7e70 G
 Instead of: function_decl 0x7fd4c00b8c00 _ZThn8_NK1G5m_fn1Eb
type method_type 0x7fd4c00ba150
type integer_type 0x7fd4bff4a738 unsigned int public unsigned SI
size integer_cst 0x7fd4bff4c440 constant 32
unit size integer_cst 0x7fd4bff4c460 constant 4
align 32 symtab 0 alias set -1 canonical type 0x7fd4bff4a738
precision 32 min integer_cst 0x7fd4bff4c480 0 max integer_cst 0x7fd4bff4c420
4294967295
pointer_to_this pointer_type 0x7fd4c0060150
QI
size integer_cst 0x7fd4bff4c280 constant 8
unit size integer_cst 0x7fd4bff4c2a0 constant 1
align 8 symtab 0 alias set -1 canonical type 0x7fd4c00ba150 method
basetype record_type 0x7fd4c00b7e70 G
arg-types tree_list 0x7fd4c00abca8 value pointer_type 0x7fd4c00ba1f8
chain tree_list 0x7fd4c00ab3c0 value boolean_type 0x7fd4bff4abd0
bool
chain tree_list 0x7fd4bff48b40 value void_type 0x7fd4bff5d000
void
pointer_to_this pointer_type 0x7fd4c00baa80
readonly addressable asm_written used public weak virtual decl_5 QI file
test.ii line 25 col 12 align 8 context record_type 0x7fd4c00b7e70 G
arguments parm_decl 0x7fd4c00bb380 this
type pointer_type 0x7fd4c00ba2a0 type record_type 0x7fd4c00ba0a8 G
readonly unsigned DI
size integer_cst 0x7fd4bff4c0c0 constant 64
unit size integer_cst 0x7fd4bff4c0e0 constant 8
align 64 symtab 0 alias set -1 canonical type 0x7fd4c00ba2a0
readonly unsigned DI file test.ii line 25 col 25 size integer_cst
0x7fd4bff4c0c0 64 unit size integer_cst 0x7fd4bff4c0e0 8
align 64 context function_decl 0x7fd4c00b8c00 _ZThn8_NK1G5m_fn1Eb
arg-type pointer_type 0x7fd4c00ba2a0
chain parm_decl 0x7fd4c00bb400 D.2326 type boolean_type
0x7fd4bff4abd0 bool
unsigned QI file test.ii line 25 col 19 size integer_cst
0x7fd4bff4c280 8 unit size integer_cst 0x7fd4bff4c2a0 1
align 8 context function_decl 0x7fd4c00b8c00 _ZThn8_NK1G5m_fn1Eb
arg-type integer_type 0x7fd4bff4a690 int
full-name virtual unsigned int G::_ZThn8_NK1G5m_fn1Eb(bool) const
   
_ZNK1F5m_fn1Ev/3 (virtual unsigned int F::m_fn1() const) @0x7fd4c00c4290
  Type: function definition analyzed
  Visibility: externally_visible public weak comdat comdat_group:_ZNK1F5m_fn1Ev
one_only virtual
  Address is taken.
  References: 
  Referring: _ZTV1F/31 (addr)
  Availability: available
  First run: 0
  Function flags: body
  Called by: 
  Calls: _ZNK1G5m_fn1Eb.constprop.1/73 (1.00 per call) (can throw external) 
test.ii:46:60: internal compiler error: verify_cgraph_node failed


[Bug ipa/59176] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed

2014-03-24 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59176

--- Comment #19 from Tobias Burnus burnus at gcc dot gnu.org ---
(In reply to Martin Jambor from comment #17)
 Although the ICE message is the same, this is most certainly a
 different bug as it happens at a different time during the compilation
 process.  I will look it at it some more tomorrow.

I have filled PR60640 for this - with a reduced test case.


[Bug ipa/59176] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed

2014-03-21 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59176

--- Comment #13 from Martin Jambor jamborm at gcc dot gnu.org ---
Author: jamborm
Date: Fri Mar 21 12:59:35 2014
New Revision: 208748

URL: http://gcc.gnu.org/viewcvs?rev=208748root=gccview=rev
Log:
2014-03-21  Martin Jambor  mjam...@suse.cz

PR ipa/59176
* cgraph.h (symtab_node): New flag body_removed.
* ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
when removing bodies.
* symtab.c (dump_symtab_base): Dump body_removed flag.
* cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
had their bodies removed.

testsuite/
* g++.dg/torture/pr59176.C: New test.


Added:
trunk/gcc/testsuite/g++.dg/ipa/pr59176.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cgraph.c
trunk/gcc/cgraph.h
trunk/gcc/ipa.c
trunk/gcc/symtab.c
trunk/gcc/testsuite/ChangeLog


[Bug ipa/59176] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed

2014-03-21 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59176

Martin Jambor jamborm at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #14 from Martin Jambor jamborm at gcc dot gnu.org ---
Fixed.


[Bug ipa/59176] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed

2014-03-20 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59176

Martin Jambor jamborm at gcc dot gnu.org changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-p
   ||atches/2014-03/msg01075.htm
   ||l
  Component|middle-end  |ipa

--- Comment #12 from Martin Jambor jamborm at gcc dot gnu.org ---
(In reply to Jan Hubicka from comment #10)
 I will check how to silence the verifier.

I've just proposed a way of doing that on the mailing list:
http://gcc.gnu.org/ml/gcc-patches/2014-03/msg01075.html