implemented alignas pragma (#12643)
* implemented alignas pragma * fix bootstrap * generate c++ compatible syntax for alignas * Make it work. * Multiple alignof expressions. Implement top level alignof.
This commit is contained in:
parent
84861eb48a
commit
0496a666e2
13 changed files with 153 additions and 19 deletions
|
|
@ -156,6 +156,8 @@ proc computeObjectOffsetsFoldFunction(conf: ConfigRef; n: PNode, packed: bool, a
|
|||
size = n.sym.typ.size.int
|
||||
align = if packed: 1 else: n.sym.typ.align.int
|
||||
accum.align(align)
|
||||
if n.sym.alignment > 0:
|
||||
accum.align(n.sym.alignment)
|
||||
n.sym.offset = accum.offset
|
||||
accum.inc(size)
|
||||
else:
|
||||
|
|
@ -183,6 +185,8 @@ proc computeUnionObjectOffsetsFoldFunction(conf: ConfigRef; n: PNode; accum: var
|
|||
size = n.sym.typ.size.int
|
||||
align = n.sym.typ.align.int
|
||||
accum.align(align)
|
||||
if n.sym.alignment > 0:
|
||||
accum.align(n.sym.alignment)
|
||||
n.sym.offset = accum.offset
|
||||
accum.inc(size)
|
||||
else:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue