brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 77b101d Raw
78 lines · cpp
1#include <stdio.h>2#include <stdlib.h>3#include <stdint.h>4 5struct BagOfInts6{7    int x;8    int y;9    int z;10    BagOfInts(int X) :11    x(X),12    y(X+1),13    z(X+2) {}14};15 16struct BagOfFloats17{18    float x;19    float y;20    float z;21    BagOfFloats(float X) :22    x(X+0.334),23    y(X+0.500),24    z(X+0.667) {}25};26 27struct BagOfBags28{29    BagOfInts x;30    BagOfInts y;31    BagOfFloats z;32    BagOfFloats q;33    BagOfBags() : 34    x('E'),35    y('B'),36    z(1.1),37    q(20.11) {}38};39 40struct EmptyStruct {};41 42struct Plenty43{44    BagOfInts *some_values;45    int* array;46    int array_size;47    int bitfield;48    49    Plenty(int N, bool flagA, bool flagB) :50    some_values(new BagOfInts(N)),51    array(new int[N]),52    array_size(N),53    bitfield( (flagA ? 0x01 : 0x00) | (flagB ? 0x10 : 0x00) )54    {55        for (int j = 0; j < N; j++)56            array[j] = N-j;57    }58};59 60int main (int argc, const char * argv[])61{62    BagOfInts int_bag(6);63    BagOfFloats float_bag(2.71);64    65    BagOfBags bag_bag;66    EmptyStruct es;67    68    Plenty plenty_of_stuff(5,true,false);69    70    plenty_of_stuff.bitfield = 0x11; // Set break point at this line.71    72    bag_bag.x.z = 12;73    74    return 0;75    76}77 78