mirror of
https://github.com/autc04/Retro68.git
synced 2024-11-03 07:07:20 +00:00
54 lines
806 B
C++
54 lines
806 B
C++
|
// { dg-do run }
|
||
|
struct base
|
||
|
{
|
||
|
int total;
|
||
|
virtual void add (int i) { total += i; }
|
||
|
virtual void sub (int i) { total -= i; }
|
||
|
virtual void init (void) { total = 73; }
|
||
|
};
|
||
|
|
||
|
struct derived : public base
|
||
|
{
|
||
|
int total;
|
||
|
virtual void add (int i) { total += 10 * i; }
|
||
|
virtual void sub (int i) { total -= 2 * i; }
|
||
|
virtual void init (void) { total = 0; }
|
||
|
};
|
||
|
|
||
|
bool
|
||
|
get_cond_value (int x)
|
||
|
{
|
||
|
if ((x % 3) > 0)
|
||
|
return true;
|
||
|
else
|
||
|
return false;
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
int
|
||
|
main (int argc, char **argv)
|
||
|
{
|
||
|
base *a;
|
||
|
bool cond_value = get_cond_value (10);
|
||
|
int x;
|
||
|
|
||
|
if (cond_value)
|
||
|
a = new base ();
|
||
|
else
|
||
|
a = new derived ();
|
||
|
|
||
|
cond_value = get_cond_value (47);
|
||
|
x = 0;
|
||
|
if (!cond_value)
|
||
|
x = 17;
|
||
|
|
||
|
a->init ();
|
||
|
|
||
|
for ( ; x < 10; ++x)
|
||
|
{
|
||
|
a->add(50);
|
||
|
a->sub(25);
|
||
|
}
|
||
|
}
|