summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.law/union1.C
blob: 9d700499daeffa42fdee9e87d3875bdb31a99970 (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
// { dg-do assemble  }
// GROUPS passed unions
// anon-union file
// From: "Terry R. Coley" <terry@wag.caltech.edu>
// Date:     Tue, 25 Aug 1992 17:33:29 -0700
// Subject:  possible bug in gcc/g++
// Message-ID: <199208260033.AA19417@brahms.wag.caltech.edu>

typedef enum { BADBINOP = 0, PLUS, MINUS, MULT, DIV, POWR } binoptype;
typedef enum { BADUNOP = 0, NEG = POWR+1, SIN, COS, TAN } unoptype;

typedef struct {
  const char *s;
  union {
    binoptype bop;
    unoptype uop;
  };
}
op_to_charp;

op_to_charp BINOPS[] = { {"+", PLUS},
                         {"-", MINUS},
                         {"*", MULT},
                         {"/", DIV},
                         {"^", POWR} };

int main() {
  int dummy;
}