------- Comment #4 from rguenth at gcc dot gnu dot org 2010-08-24 09:12 ------- Confirmed. Reduced testcase, ICEs at -O1:
class FloatPoint; class Path { public: ~Path(); void moveTo(const FloatPoint&); static void createEllipse(const FloatPoint& center, float rx, float ry); }; extern "C" { extern float cosf (float); extern float sinf (float); } const float piFloat = static_cast<float>(3.14159265358979323846); class FloatPoint { public: FloatPoint(float x, float y) : m_x(x), m_y(y) { } float x() const; float y() const; float m_x, m_y; }; void Path::createEllipse(const FloatPoint& center, float rx, float ry) { float cx = center.x(); float cy = center.y(); Path path; float x = cx; float y = cy; unsigned step = 0, num = 100; while (1) { float angle = static_cast<float>(step) / num * 2.0f * piFloat; x = cx + cosf(angle) * rx; y = cy + sinf(angle) * ry; step++; if (step == 1) path.moveTo(FloatPoint(x, y)); } } -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hubicka at gcc dot gnu dot | |org Status|UNCONFIRMED |NEW Component|c++ |middle-end Ever Confirmed|0 |1 Known to fail| |4.5.0 4.5.1 4.6.0 Known to work| |4.4.4 Last reconfirmed|0000-00-00 00:00:00 |2010-08-24 09:12:56 date| | Summary|Internal compiler error |[4.5/4.6 Regression] ICE in | |redirect_eh_edge_1, at tree- | |eh.c:2135 Target Milestone|--- |4.5.2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45393