OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [g++.old-deja/] [g++.robertl/] [eb27.C] - Diff between revs 305 and 338

Only display areas with differences | Details | Blame | View Log

Rev 305 Rev 338
// { dg-do assemble  }
// { dg-do assemble  }
// { dg-options "-Wno-deprecated" }
// { dg-options "-Wno-deprecated" }
/* bug.cc */
/* bug.cc */
/* simple program to demonstrate the bug with named return values in gcc
/* simple program to demonstrate the bug with named return values in gcc
*/
*/
/* (w) 4.9.97 by Kurt Garloff  */
/* (w) 4.9.97 by Kurt Garloff  */
// 8/28/1998 - This dies in add_conversions from dfs_walk, null CLASSTYPE_METHOD_VEC
// 8/28/1998 - This dies in add_conversions from dfs_walk, null CLASSTYPE_METHOD_VEC
// for the test record_type.  This is marked as an expected failure for now,
// for the test record_type.  This is marked as an expected failure for now,
// until we actually fix it.
// until we actually fix it.
#include 
#include 
template  class test;
template  class test;
template  test operator + (const test& a, const test& b);
template  test operator + (const test& a, const test& b);
// A simple numerical class
// A simple numerical class
template 
template 
class test
class test
{
{
   T elem;
   T elem;
 public:
 public:
   test ()  { elem = 0; };
   test ()  { elem = 0; };
   test (const T& a)  { elem = a; };
   test (const T& a)  { elem = a; };
   test& operator += (const test& a)  { elem += a.elem; return *this; };
   test& operator += (const test& a)  { elem += a.elem; return *this; };
   friend test operator + <> (const test&, const test&);
   friend test operator + <> (const test&, const test&);
   friend std::ostream& operator << (std::ostream& os, const test& a)
   friend std::ostream& operator << (std::ostream& os, const test& a)
     { return os << a.elem; };
     { return os << a.elem; };
};
};
// named return value version
// named return value version
template 
template 
test operator + (const test& a, const test& b) return c(a);// { dg-error "" } named return value
test operator + (const test& a, const test& b) return c(a);// { dg-error "" } named return value
{ c += b; } // { dg-error "" } c undeclared
{ c += b; } // { dg-error "" } c undeclared
int main()
int main()
{
{
   test x, y;
   test x, y;
   x += 5;
   x += 5;
   std::cout << x << std::endl;
   std::cout << x << std::endl;
   y = x + test(2);
   y = x + test(2);
   std::cout << y << std::endl;
   std::cout << y << std::endl;
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.