[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / CodeGen / union-init.c
blob60906b533d65b96678ae6863c82dd4519da582f5
1 // RUN: %clang_cc1 -emit-llvm < %s -o -
3 // A nice and complicated initialization example with unions from Python
4 typedef int Py_ssize_t;
6 typedef union _gc_head {
7 struct {
8 union _gc_head *gc_next;
9 union _gc_head *gc_prev;
10 Py_ssize_t gc_refs;
11 } gc;
12 long double dummy; /* force worst-case alignment */
13 } PyGC_Head;
15 struct gc_generation {
16 PyGC_Head head;
17 int threshold; /* collection threshold */
18 int count; /* count of allocations or collections of younger
19 generations */
22 #define NUM_GENERATIONS 3
23 #define GEN_HEAD(n) (&generations[n].head)
25 /* linked lists of container objects */
26 struct gc_generation generations[NUM_GENERATIONS] = {
27 /* PyGC_Head, threshold, count */
28 {{{GEN_HEAD(0), GEN_HEAD(0), 0}}, 700, 0},
29 {{{GEN_HEAD(1), GEN_HEAD(1), 0}}, 10, 0},
30 {{{GEN_HEAD(2), GEN_HEAD(2), 0}}, 10, 0},