aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.old-deja/g++.bugs/900107_01.C
blob: b486fc664525e093f2475802e6f67c56623dbacb (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
34
35
36
37
38
// { dg-do run  }
// g++ 1.36.1 bug 900107_01

// Unlike GCC and Cfront 2.0, the g++ 1.36.1 compiler gives struct, union,
// and class declarations which are nested within blocks file scope.

// Cfront 2.0 passes this test.

// keywords: block scope, file scope, nested types, tagged types

class c1 { int c1_member1; };
struct s1 { int s1_member1; };
union u1 { int u1_member1; };
enum e1 { e1_val1 };
typedef int t1;

void foo ()
{
  class c1 {			// { dg-bogus "" } 
    int c1_member1;
  } c1_local_object_0;

  struct s1 {			// { dg-bogus "" } 
    int s1_member1;
  } s1_local_object_0;

  union u1 {			// { dg-bogus "" } 
    int u1_member1;
  } u1_local_object_0;

  enum e1 {		// OK using g++ or GCC, but mishandled by Cfront 2.0.
    e1_value1
  } e1_local_object_0;

  typedef int t1;		// OK
}

int main () { return 0; }