--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[16];
+ };
+};
+
+enum : uint32_t {
+ X = 8
+};
+
+struct Dummy1 {
+ uint8_t x;
+} align(X);
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[16];
+ };
+};
+
+struct Dummy1 {
+ uint8_t x;
+} align(0xFFFFFFFFU);
+
+struct Dummy2 {
+ uint8_t x;
+} align(0xFFFFFFFFFFFFFFFFULL);
+
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[16];
+ };
+};
+
+struct Dummy1 {
+ uint8_t x;
+} align(-8);
+
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[16];
+ };
+};
+
+struct Dummy1 {
+ uint8_t x;
+} align("duh");
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[16];
+ };
+};
+
+struct Dummy1 {
+ uint8_t x;
+} align(0);
+
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 16; align = 8; signed = false; base = 10; } := uint16_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[0x10];
+ };
+};
+
+struct Mystruct {
+enum : uint32_t { sel1, sel2, sel3 } tag;
+
+variant MyVariant<tag> {
+ struct { uint8_t _; } sel1;
+ struct { uint16_t _; } sel2;
+} field;
+
+};
\ No newline at end of file
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 16; align = 8; signed = false; base = 10; } := uint16_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[0x10];
+ };
+};
+
+struct Mystruct {
+
+enum : uint32_t { sel1, sel2, sel3 } tag;
+
+variant <> {
+ struct { uint8_t _; } sel1;
+ struct { uint16_t _; } sel2;
+ struct { uint32_t _; } sel3;
+} field;
+
+};
\ No newline at end of file
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 16; align = 8; signed = false; base = 10; } := uint16_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[0x10];
+ };
+};
+
+struct Mystruct {
+
+enum : uint32_t { " sel1 ", " sel2 ", " sel3 " } tag;
+
+variant MyVariant<tag> {
+ struct { uint8_t _; } sel1;
+ struct { uint16_t _; } sel2;
+ struct { uint32_t _; } sel3;
+} field;
+
+};
\ No newline at end of file
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 16; align = 8; signed = false; base = 10; } := uint16_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[0x10];
+ };
+};
+
+struct Mystruct {
+
+enum : uint32_t { sel1, sel2, sel3 } tag;
+
+variant <2> {
+ struct { uint8_t _; } sel1;
+ struct { uint16_t _; } sel2;
+ struct { uint32_t _; } sel3;
+} field;
+
+};
\ No newline at end of file
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 16; align = 8; signed = false; base = 10; } := uint16_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[0x10];
+ };
+};
+
+struct Mystruct {
+
+enum : uint32_t { sel1, sel2, sel3 } tag;
+
+variant <variant> {
+ struct { uint8_t _; } sel1;
+ struct { uint16_t _; } sel2;
+ struct { uint32_t _; } sel3;
+} field;
+
+};
\ No newline at end of file
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 16; align = 8; signed = false; base = 10; } := uint16_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[0x10];
+ };
+};
+
+struct Mystruct {
+
+enum : uint32_t { sel1, sel2, sel3 } tag;
+
+variant <"tag"> {
+ struct { uint8_t _; } sel1;
+ struct { uint16_t _; } sel2;
+ struct { uint32_t _; } sel3;
+} field;
+
+};
\ No newline at end of file
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 16; align = 8; signed = false; base = 10; } := uint16_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+typealias floating_point { exp_dig = 8; mant_dig = 24; } := FLOAT;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[0x10];
+ };
+};
+
+struct Mystruct {
+
+FLOAT tag;
+
+variant <tag> {
+} field;
+
+};
\ No newline at end of file
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 16; align = 8; signed = false; base = 10; } := uint16_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+typealias string { encoding = ascii; } := str;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[0x10];
+ };
+};
+
+struct Mystruct {
+
+str tag;
+
+variant <tag> {
+} field;
+
+};
\ No newline at end of file
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[16];
+ };
+};
+
+struct Dummy1 {
+ uint8_t x;
+} align(8);
+
+struct Dummy2 {
+ uint8_t x;
+} align(16);
+
+struct Dummy3 {
+ uint8_t x;
+} align(32);
\ No newline at end of file
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 16; align = 8; signed = false; base = 10; } := uint16_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[16];
+ };
+};
+
+struct Mystruct {
+enum : uint32_t { sel1, sel2, sel3 } tag;
+
+variant<tag> {
+ uint8_t sel1;
+ uint16_t sel2;
+ uint32_t sel3;
+} field;
+
+};
\ No newline at end of file
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 16; align = 8; signed = false; base = 10; } := uint16_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[16];
+ };
+};
+
+struct Mystruct {
+enum : uint32_t { sel1, sel2, sel3 } tag;
+
+variant MyVariant<tag> {
+ uint8_t sel1;
+ uint16_t sel2;
+ uint32_t sel3;
+} field;
+
+};
\ No newline at end of file
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 16; align = 8; signed = false; base = 10; } := uint16_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[0x10];
+ };
+};
+
+struct Mystruct {
+enum : uint32_t { sel1, sel2, sel3 } tag;
+
+variant MyVariant<tag> {
+ struct { uint8_t _; } sel1;
+ struct { uint16_t _; } sel2;
+} field;
+
+};
\ No newline at end of file
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 16; align = 8; signed = false; base = 10; } := uint16_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[0x10];
+ };
+};
+
+typealias enum : uint32_t { sel1, sel2, sel3 } := X;
+
+struct MyStruct {
+
+X tag;
+
+variant Y<tag> {
+ struct { uint8_t _; } sel1;
+ struct { uint16_t _; } sel2;
+ struct { uint32_t _; } sel3;
+} field;
+
+};
\ No newline at end of file
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 16; align = 8; signed = false; base = 10; } := uint16_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[0x10];
+ };
+};
+
+struct Mystruct {
+enum : uint32_t { sel1, sel2, sel3 } tag;
+
+variant MyVariant<tag> {
+ struct { uint8_t _; } sel1;
+ struct { uint16_t _; } sel2;
+ struct { uint32_t _; } sel3;
+} field;
+
+};
\ No newline at end of file
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 16; align = 8; signed = false; base = 10; } := uint16_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[0x10];
+ };
+};
+
+struct Mystruct {
+enum : uint32_t { sel1, sel2, sel3 } tag;
+
+variant<tag> {
+ struct {
+ enum : uint32_t { s1, s2, s3 } tag;
+ variant<tag> {
+ uint8_t s1;
+ uint8_t s2;
+ uint8_t s3;
+ } _;
+ } sel1;
+ struct {
+ enum : uint32_t { s1, s2, s3 } tag;
+ variant<tag> {
+ uint16_t s1;
+ uint16_t s2;
+ uint16_t s3;
+ } _;
+ } sel2;
+ struct {
+ enum : uint32_t { s1, s2, s3 } tag;
+ variant<tag> {
+ uint32_t s1;
+ uint32_t s2;
+ uint32_t s3;
+ } _;
+ } sel3;
+} field;
+
+};
\ No newline at end of file
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 16; align = 8; signed = false; base = 10; } := uint16_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[0x10];
+ };
+};
+
+struct Mystruct {
+enum : uint32_t { sel1, sel2, sel3 } tag;
+
+variant<tag> {
+ struct {
+ variant<tag> {
+ uint8_t sel1;
+ uint8_t sel2;
+ uint8_t sel3;
+ } _;
+ } sel1;
+ struct {
+ variant<tag> {
+ uint16_t sel1;
+ uint16_t sel2;
+ uint16_t sel3;
+ } _;
+ } sel2;
+ struct {
+ variant<tag> {
+ uint32_t sel1;
+ uint32_t sel2;
+ uint32_t sel3;
+ } _;
+ } sel3;
+} field;
+
+};
\ No newline at end of file