diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2009-04-03 22:31:18 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2009-04-03 15:31:18 -0700 |
commit | 32d5b22d3b8fc7376efd365d7fafbe693ec38ffe (patch) | |
tree | 970a9429fe8ee0bbca1bfe5e982590179518153d /gcc | |
parent | b844e5d85a9455cfbc67119ff0bb52dc4527461e (diff) | |
download | gcc-32d5b22d3b8fc7376efd365d7fafbe693ec38ffe.zip gcc-32d5b22d3b8fc7376efd365d7fafbe693ec38ffe.tar.gz gcc-32d5b22d3b8fc7376efd365d7fafbe693ec38ffe.tar.bz2 |
pr39607.C: New.
2009-04-03 H.J. Lu <hongjiu.lu@intel.com>
* g++.dg/opt/pr39607.C: New.
From-SVN: r145523
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/opt/pr39607.C | 65 |
2 files changed, 69 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9f945cd..792f2e8 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2009-04-03 H.J. Lu <hongjiu.lu@intel.com> + + * g++.dg/opt/pr39607.C: New. + 2009-04-03 Tobias Burnus <burnus@net-b.de> PR fortran/39594 diff --git a/gcc/testsuite/g++.dg/opt/pr39607.C b/gcc/testsuite/g++.dg/opt/pr39607.C new file mode 100644 index 0000000..c39260d --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/pr39607.C @@ -0,0 +1,65 @@ +// PR rtl-optimization/39607 +// { dg-do compile } +// { dg-options "-O2" } + +void abcErrorMessage(int error); +enum AbcSurfType { + SURF_U, + SURF_V +}; +class AbcVec2d +{ +public: + double x; + double y; +}; +class AbcIval1d +{ +protected: + double m_dMin; + double m_dMax; +public: + AbcIval1d(); + AbcIval1d(double dMin, double dMax); + double GetMax() const { return m_dMax; } + double GetMin() const { return m_dMin; } +}; +inline AbcIval1d::AbcIval1d(double dMin, double dMax) +{ + if (dMin > dMax) { + abcErrorMessage(1); + } + else { + m_dMin = dMin; + m_dMax = dMax; + } +} +class AbcIval2d +{ +protected: + AbcVec2d m_vMin; + AbcVec2d m_vMax; +public: + AbcVec2d GetMax() const { return m_vMax; } + AbcVec2d GetMin() const { return m_vMin; } +}; +class AbcCone +{ +protected: + int m_uv; +public: + AbcIval2d GetNaturalUVDomain() const; + AbcIval1d GetLinearParamIval(AbcSurfType * pSurfParam) const; +}; +AbcIval1d AbcCone::GetLinearParamIval(AbcSurfType * pSurfParam) const +{ + AbcIval1d sIval; + AbcIval2d sUVDomain = GetNaturalUVDomain(); + if (m_uv) { + sIval = AbcIval1d(sUVDomain.GetMin().x,sUVDomain.GetMax().x); + } + else { + sIval = AbcIval1d(sUVDomain.GetMin().y,sUVDomain.GetMax().y); + } + return sIval; +} |