Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/torture/pr68852.C @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 84e7813d76e9 |
children |
line wrap: on
line source
/* { dg-do compile } */ struct A { double x, y, z, w; A() {} A(double, double p2, double p3, double) : y(p2), z(p3) {} void m_fn1(); }; struct B { double x, y; }; struct D : A { D() {} D(double p1, double p2, double p3, double p4) : A(p1, p2, p3, p4) {} }; class C { public: float _11, _12, _13, _14; float _21, _22, _23, _24; float _31, _32, _33, _34; float _41, _42, _43, _44; D m_fn2(B p1) { double z(p1.x + _43); return *this * D(p1.x, p1.y, z, 1); } int ProjectRectBounds_next; B __trans_tmp_3; int m_fn3(int) { B a, b; D c[1]; b = __trans_tmp_3; c[2] = m_fn2(b); c[3] = m_fn2(a); c[ProjectRectBounds_next].m_fn1(); return 0; } D operator*(D p1) { D d; d.x = p1.x * _11 + p1.y * _21 + p1.z * _31 + _41; d.y = p1.x * _12 + p1.y * _22 + p1.z * _32 + _42; d.z = p1.x * _13 + p1.y * _23 + p1.z * _33 + _43; d.w = p1.x * _14 + p1.y * _24 + p1.z * _34 + _44; return d; } }; void fn1() { C e; int f = e.m_fn3(f); }