File: 2005-02-11-AnonymousUnion.cpp

package info (click to toggle)
llvm-2.7 2.7-6
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 59,992 kB
  • ctags: 49,499
  • sloc: cpp: 373,792; ansic: 16,885; sh: 12,614; asm: 6,809; ada: 3,083; ml: 2,942; python: 2,671; perl: 2,404; makefile: 1,691; pascal: 1,235; exp: 399; objc: 291; lisp: 184; csh: 117; xml: 38; f90: 36
file content (32 lines) | stat: -rw-r--r-- 462 bytes parent folder | download | duplicates (3)
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
// RUN: %llvmgxx %s -S -o -

// Test anonymous union with members of the same size.
int test1(float F) {
  union {
     float G;
     int i;
  };
  G = F;
  return i;
}

// test anonymous union with members of differing size.
int test2(short F) {
  volatile union {
     short G;
     int i;
  };
  G = F;
  return i;
}

// Make sure that normal unions work.  duh :)
volatile union U_t {
  short S;
  int i;
} U;

int test3(short s) {
  U.S = s;
  return U.i;
}