URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 305 |
Rev 338 |
// { dg-do run }
|
// { dg-do run }
|
// GROUPS passed conversions
|
// GROUPS passed conversions
|
// cvt file
|
// cvt file
|
// Message-Id: <9301071708.AA03432@muresh.et.tudelft.nl>
|
// Message-Id: <9301071708.AA03432@muresh.et.tudelft.nl>
|
// From: stravers@muresh.et.tudelft.nl (Paul Stravers)
|
// From: stravers@muresh.et.tudelft.nl (Paul Stravers)
|
// Subject: conversion method never called
|
// Subject: conversion method never called
|
// Date: Thu, 7 Jan 93 18:08:33 +0100
|
// Date: Thu, 7 Jan 93 18:08:33 +0100
|
|
|
#include
|
#include
|
|
|
class test
|
class test
|
{
|
{
|
double d;
|
double d;
|
int i;
|
int i;
|
public:
|
public:
|
test(double dd,int ii) {d=dd; i=ii;} // constructor
|
test(double dd,int ii) {d=dd; i=ii;} // constructor
|
operator int&() {return i;} // define a conversion from test to int&
|
operator int&() {return i;} // define a conversion from test to int&
|
int& geti() {return i;} // same thing, but different
|
int& geti() {return i;} // same thing, but different
|
};
|
};
|
|
|
int main()
|
int main()
|
{
|
{
|
test t(3.14, 5); // Create an object t of class "test"
|
test t(3.14, 5); // Create an object t of class "test"
|
int x = (int&)t; // This should call operator int&() but it does not ...
|
int x = (int&)t; // This should call operator int&() but it does not ...
|
int y = t.geti(); // x and y should both be 5 ...
|
int y = t.geti(); // x and y should both be 5 ...
|
if (x == 5 && y == 5)
|
if (x == 5 && y == 5)
|
printf ("PASS\n");
|
printf ("PASS\n");
|
else
|
else
|
{ printf ("FAIL\n"); return 1; }
|
{ printf ("FAIL\n"); return 1; }
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.