acb90323b6cea64522e711d83009d85e677ec206
[openbsd] /
1 //===-- main.cpp ------------------------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8
9 #include <stdio.h>
10 #include <stdlib.h>
11 #include <stdint.h>
12
13 struct BagOfInts
14 {
15     int x;
16     int y;
17     int z;
18     BagOfInts(int X) :
19     x(X),
20     y(X+1),
21     z(X+2) {}
22 };
23
24 struct BagOfFloats
25 {
26     float x;
27     float y;
28     float z;
29     BagOfFloats(float X) :
30     x(X+0.334),
31     y(X+0.500),
32     z(X+0.667) {}
33 };
34
35 struct BagOfBags
36 {
37     BagOfInts x;
38     BagOfInts y;
39     BagOfFloats z;
40     BagOfFloats q;
41     BagOfBags() : 
42     x('E'),
43     y('B'),
44     z(1.1),
45     q(20.11) {}
46 };
47
48 struct EmptyStruct {};
49
50 struct Plenty
51 {
52     BagOfInts *some_values;
53     int* array;
54     int array_size;
55     int bitfield;
56     
57     Plenty(int N, bool flagA, bool flagB) :
58     some_values(new BagOfInts(N)),
59     array(new int[N]),
60     array_size(N),
61     bitfield( (flagA ? 0x01 : 0x00) | (flagB ? 0x10 : 0x00) )
62     {
63         for (int j = 0; j < N; j++)
64             array[j] = N-j;
65     }
66 };
67
68 int main (int argc, const char * argv[])
69 {
70     BagOfInts int_bag(6);
71     BagOfFloats float_bag(2.71);
72     
73     BagOfBags bag_bag;
74     EmptyStruct es;
75     
76     Plenty plenty_of_stuff(5,true,false);
77     
78     plenty_of_stuff.bitfield = 0x11; // Set break point at this line.
79     
80     bag_bag.x.z = 12;
81     
82     return 0;
83     
84 }
85