blob: 2605d81925bf14e9673cda59bea035e3bd86f658 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O2 -ftree-tail-merge" } */
float
clamp (const float x)
{
return x <= 1 ? 1 : x;
}
template < class T > struct VECTOR
{
float x;
};
template < class TV > class JOINT
{
virtual void Constrain_Angles (VECTOR < float >&angles) const;
};
template < class TV > class ANGLE_JOINT:public JOINT < TV >
{
virtual ~ ANGLE_JOINT ()
{
}
void Constrain_Angles (VECTOR < float >&angles) const
{
VECTOR < float >v;
if (v.x)
v.x = clamp (angles.x);
else
v.x = angles.x;
angles.x = v.x;
}
};
template ANGLE_JOINT < int >::~ANGLE_JOINT ();