aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8/gcc/testsuite/g++.old-deja/g++.bugs/900331_03.C
blob: f59f107e1b21b19ec703eb7e12b416fb462cd8aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// { dg-do run  }
// { dg-options "" }
// g++ 1.37.1 bug 900331_03

// Special Options: -ansi

// The following code causes g++ to abort.

// Curiously, the abort does not occur if the -pedantic option is used.

// Cfront 2.0 passes this test.

// Keywords: abort, conditional operator?:, lvalues, composite types

struct struct0 {
  int data_member;

  virtual void function_member () {}	// contributes to the abort
};

struct0 object0;
struct0 object1;
struct0 object2;

int i;

void function0 ()
{
  object2 = (i ? object0 : object1);		// OK
  (i ? object0 : object1) = object2;		// causes abort
}

int main () { return 0; }