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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.old-deja/] [g++.bugs/] [900511_01.C] - Rev 699

Compare with Previous | Blame | View Log

// { dg-do run  }
// g++ 1.37.1 bug 900511_01

// g++ fails to properly apply user-defined type conversion operators
// in cases where is it not obvious that the given conversion is
// appropriate for the context (i.e. operator and other operands)
// where the conversion should take place.

// cfront 2.0 passes this test.

struct struct_1 {
  int member;

  operator int ();
};

struct_1::operator int ()
{
  return 0;
}

struct struct_2 {
  int member;

  operator float ();
};

struct_2::operator float ()
{
  return 0.0;
}

struct_1 struct_1_object;
struct_2 struct_2_object;
double d;

void test ()
{
  d = struct_2_object + struct_1_object;        // OK
  d = struct_1_object + struct_2_object;        // { dg-bogus "" } 
}

int main () { return 0; }

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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