[Bug ipa/60659] [4.9 Regression] ICE in get_polymorphic_call_info, at ipa-devirt.c:1292

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

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #7 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
Fixed.


[Bug ipa/60659] [4.9 Regression] ICE in get_polymorphic_call_info, at ipa-devirt.c:1292

2014-04-02 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60659

--- Comment #6 from Jan Hubicka hubicka at gcc dot gnu.org ---
Author: hubicka
Date: Thu Apr  3 03:55:59 2014
New Revision: 209048

URL: http://gcc.gnu.org/viewcvs?rev=209048root=gccview=rev
Log:

PR ipa/60659
* ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type inconsistent
code and instead mark the context inconsistent.
(possible_polymorphic_call_targets): For inconsistent contexts
return empty complete list.
* testsuite/g++.dg/torture/pr60659.C: New testcase.

Added:
trunk/gcc/testsuite/g++.dg/torture/pr60659.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/ipa-devirt.c
trunk/gcc/testsuite/ChangeLog


[Bug ipa/60659] [4.9 Regression] ICE in get_polymorphic_call_info, at ipa-devirt.c:1292

2014-03-31 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60659

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1


[Bug ipa/60659] [4.9 Regression] ICE in get_polymorphic_call_info, at ipa-devirt.c:1292

2014-03-30 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60659

--- Comment #5 from Jan Hubicka hubicka at gcc dot gnu.org ---
Created attachment 32494
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32494action=edit
Patch I am testing

This is patch that makes us to redirect those type inconsistent calls to
builtin_unreachable.  It seems to match surprisingly often on firefox, so I
will try to also test libreoffice's unit tests before comiting.


[Bug ipa/60659] [4.9 Regression] ICE in get_polymorphic_call_info, at ipa-devirt.c:1292

2014-03-28 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60659

--- Comment #4 from Jan Hubicka hubicka at gcc dot gnu.org ---
OK, this is ICE on type inconsistent program (it looks up virtual function in
non-virtual type). I forgot gcc_unreacable on that code path from earlier
sanity checking.
I will arrange such inconsistent calls to be builtin_unreachable.


[Bug ipa/60659] [4.9 Regression] ICE in get_polymorphic_call_info, at ipa-devirt.c:1292

2014-03-26 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60659

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.9.0


[Bug ipa/60659] [4.9 Regression] ICE in get_polymorphic_call_info, at ipa-devirt.c:1292

2014-03-26 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60659

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org ---
Started with r205019.


[Bug ipa/60659] [4.9 Regression] ICE in get_polymorphic_call_info, at ipa-devirt.c:1292

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

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-03-25
 CC||hubicka at gcc dot gnu.org,
   ||trippels at gcc dot gnu.org
  Component|target  |ipa
 Ever confirmed|0   |1

--- Comment #1 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
Also happens on x86_64.

markus@x4 tmp % cat test.ii
template typename _InputIterator void __distance (_InputIterator);
template typename _InputIterator
void distance (_InputIterator, _InputIterator p2)
{
  __distance (p2);
}

namespace boost
{
template class Iterator struct A
{
  typedef typename Iterator::difference_type type;
};
template class T typename T::const_iterator end (T );
template class T typename T::const_iterator begin (T );
template class T struct D : Atypename T::const_iterator
{
};
template class T typename DT::type distance (const T p1)
{
  distance (boost::begin (p1), boost::end (p1));
  return 0;
}
template class IteratorT class B
{
public:
  typedef B type;
  typedef IteratorT const_iterator;
};
}

typedef int storage_t[];
struct F;
template template typename class struct G
{
  G (const G p1) { p1.m_fn1 ().m_fn1 (0); }
  const F m_fn1 () const
  {
const void *a;
a = data_m;
return *static_castconst F *(a);
  }
  storage_t *data_m;
};

struct F
{
  virtual F *m_fn1 (void *) const;
};
template typename struct H;
struct C : GH
{
  typedef int difference_type;
};
boost::BC AllTransVideos ();
int b = boost::distance (AllTransVideos ());


markus@x4 tmp % g++ -c -O2 test.ii
test.ii: In function ‘void distance(_InputIterator, _InputIterator) [with
_InputIterator = C]’:
test.ii:5:17: internal compiler error: in get_polymorphic_call_info, at
ipa-devirt.c:1292
   __distance (p2);
 ^
Please submit a full bug report,

[Bug ipa/60659] [4.9 Regression] ICE in get_polymorphic_call_info, at ipa-devirt.c:1292

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

Jan Hubicka hubicka at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #2 from Jan Hubicka hubicka at gcc dot gnu.org ---
Mine. And I was about to declare ipa-devirt to be officially 100% bug free :)