aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.bugs/900331_02.C
blob: 11884db2e48b87198ec6499d73db2c4027c8c984 (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
// g++ 1.37.1 bug 900331_02

// g++ fails to treat conditional expressions which yield composite type
// (i.e. struct type, union type, or class type) lvalues as if they did
// in fact yield lvalues in all cases.

// Cfront 2.0 passes this test.

// keywords: conditional operator?:, lvalues, composite types

struct struct0 {
  int data_member;
};

struct0 object0;
struct0 object1;
struct0 object2;

int i;

void function0 ()
{
  (i ? object0 : object1).data_member = 99;	// gets bogus error
  (i ? object0 : object1) = object2;		// gets bogus error
}

int main () { return 0; }