diff options
Diffstat (limited to 'tests/objects')
-rw-r--r-- | tests/objects/tobjpragma.nim | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/objects/tobjpragma.nim b/tests/objects/tobjpragma.nim new file mode 100644 index 000000000..f9fbd5e40 --- /dev/null +++ b/tests/objects/tobjpragma.nim @@ -0,0 +1,49 @@ +discard """ + file: "tobjpragma.nim" + output: '''2 +3 +9 +257 +1 +2 +3''' +""" + +# Test + +type + Foo {.packed.} = object + a: int8 + b: int8 + + Bar {.packed.} = object + a: int8 + b: int16 + + Daz {.packed.} = object + a: int32 + b: int8 + c: int32 + + +var f = Foo(a: 1, b: 1) +var b: Bar +var d: Daz + +echo sizeof(f) +echo sizeof(b) +echo sizeof(d) +echo (cast[ptr int16](f.addr)[]) + +type + Union {.union.} = object + a: int8 + b: int8 + +var u: Union +u.a = 1 +echo u.b +u.a = 2 +echo u.b +u.b = 3 +echo u.a |