URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Go to most recent revision |
Only display areas with differences |
Details |
Blame |
View Log
Rev 149 |
Rev 154 |
// { dg-do run }
|
// { dg-do run }
|
|
|
// Copyright (C) 2005 Free Software Foundation, Inc.
|
// Copyright (C) 2005 Free Software Foundation, Inc.
|
// Contributed by Nathan Sidwell 17 Oct 2005
|
// Contributed by Nathan Sidwell 17 Oct 2005
|
|
|
// PR 24386:Wrong virtual function called
|
// PR 24386:Wrong virtual function called
|
// Origin: Scott Snyder snyder@fnal.gov
|
// Origin: Scott Snyder snyder@fnal.gov
|
|
|
struct A
|
struct A
|
{
|
{
|
virtual int Foo () { return 1; }
|
virtual int Foo () { return 1; }
|
};
|
};
|
struct B : public A
|
struct B : public A
|
{
|
{
|
virtual int Foo () { return 2; }
|
virtual int Foo () { return 2; }
|
};
|
};
|
|
|
template
|
template
|
int Bar (T *a)
|
int Bar (T *a)
|
{
|
{
|
if (static_cast(a)->A::Foo () != 1)
|
if (static_cast(a)->A::Foo () != 1)
|
return 1;
|
return 1;
|
if (static_cast(a)->Foo () != 2)
|
if (static_cast(a)->Foo () != 2)
|
return 2;
|
return 2;
|
return 0;
|
return 0;
|
}
|
}
|
|
|
int main ()
|
int main ()
|
{
|
{
|
return Bar (new B);
|
return Bar (new B);
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.