123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- // { 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);
- }
- }
|