bugfix: fixed built-in 'reset'
This commit is contained in:
parent
dd190a5c01
commit
82af6387d9
2 changed files with 6 additions and 4 deletions
|
|
@ -315,7 +315,8 @@ ENDB. See the documentation of `endb <endb.html>`_ for further information.
|
||||||
Volatile pragma
|
Volatile pragma
|
||||||
---------------
|
---------------
|
||||||
The `volatile`:idx: pragma is for variables only. It declares the variable as
|
The `volatile`:idx: pragma is for variables only. It declares the variable as
|
||||||
``volatile``, whatever that means in C/C++.
|
``volatile``, whatever that means in C/C++ (its semantics are not well defined
|
||||||
|
in C/C++).
|
||||||
|
|
||||||
**Note**: This pragma will not exist for the LLVM backend.
|
**Note**: This pragma will not exist for the LLVM backend.
|
||||||
|
|
||||||
|
|
@ -330,7 +331,8 @@ input management. To start Nimrod in interactive mode use the command
|
||||||
``nimrod i``. To quit use the ``quit()`` command. To determine whether an input
|
``nimrod i``. To quit use the ``quit()`` command. To determine whether an input
|
||||||
line is an incomplete statement to be continued these rules are used:
|
line is an incomplete statement to be continued these rules are used:
|
||||||
|
|
||||||
1. The line ends with ``[-+*/\\<>!\?\|%&$@~,;:=#^]\s*$``.
|
1. The line ends with ``[-+*/\\<>!\?\|%&$@~,;:=#^]\s*$`` (operator symbol
|
||||||
|
followed by optional whitespace).
|
||||||
2. The line starts with a space (indentation).
|
2. The line starts with a space (indentation).
|
||||||
3. The line is within a triple quoted string literal. However, the detection
|
3. The line is within a triple quoted string literal. However, the detection
|
||||||
does not work if the line contains more than one ``"""``.
|
does not work if the line contains more than one ``"""``.
|
||||||
|
|
|
||||||
|
|
@ -139,10 +139,10 @@ proc genericResetAux(dest: Pointer, n: ptr TNimNode) =
|
||||||
of nkList:
|
of nkList:
|
||||||
for i in 0..n.len-1: genericResetAux(dest, n.sons[i])
|
for i in 0..n.len-1: genericResetAux(dest, n.sons[i])
|
||||||
of nkCase:
|
of nkCase:
|
||||||
zeroMem(cast[pointer](d +% n.offset), n.typ.size)
|
|
||||||
var m = selectBranch(dest, n)
|
var m = selectBranch(dest, n)
|
||||||
if m != nil: genericResetAux(dest, m)
|
if m != nil: genericResetAux(dest, m)
|
||||||
|
zeroMem(cast[pointer](d +% n.offset), n.typ.size)
|
||||||
|
|
||||||
proc genericReset(dest: Pointer, mt: PNimType) =
|
proc genericReset(dest: Pointer, mt: PNimType) =
|
||||||
var d = cast[TAddress](dest)
|
var d = cast[TAddress](dest)
|
||||||
sysAssert(mt != nil)
|
sysAssert(mt != nil)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue