Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/torture/pr45393.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// { dg-do compile } 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)); } }