summary refs log tree commit diff stats
path: root/tests/pragmas/tbitsize.nim
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2015-10-01 09:11:17 +0200
committerAndreas Rumpf <rumpf_a@web.de>2015-10-01 09:11:17 +0200
commita3550d13146147c3fd3965ecdf78e6b368fae282 (patch)
treee63bd35b63473a4bd90591ca31ace0433bf4e0df /tests/pragmas/tbitsize.nim
parent2d2f152e3c66af45d262e9ba72f69e67a829c66a (diff)
parent8c8646773024ea740c4c9f090619ddaf61bc16f0 (diff)
downloadNim-a3550d13146147c3fd3965ecdf78e6b368fae282.tar.gz
Merge pull request #3384 from tmm1/bitsize-pragma
Implement bitsize pragma for bitfields
Diffstat (limited to 'tests/pragmas/tbitsize.nim')
-rw-r--r--tests/pragmas/tbitsize.nim22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/pragmas/tbitsize.nim b/tests/pragmas/tbitsize.nim
new file mode 100644
index 000000000..7a44944d2
--- /dev/null
+++ b/tests/pragmas/tbitsize.nim
@@ -0,0 +1,22 @@
+discard """
+ccodeCheck: "\\i @'unsigned int flag:1;' .*"
+"""
+
+type
+  bits* = object
+    flag* {.bitsize: 1.}: cuint
+    opts* {.bitsize: 4.}: cint
+
+var
+  b: bits
+
+assert b.flag == 0
+b.flag = 1
+assert b.flag == 1
+b.flag = 2
+assert b.flag == 0
+
+b.opts = 7
+assert b.opts == 7
+b.opts = 9
+assert b.opts == -7