diff --git a/doc/nimrodc.txt b/doc/nimrodc.txt index 286bf2a3f9..d249d48604 100755 --- a/doc/nimrodc.txt +++ b/doc/nimrodc.txt @@ -315,7 +315,8 @@ ENDB. See the documentation of `endb `_ for further information. Volatile pragma --------------- 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. @@ -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 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). 3. The line is within a triple quoted string literal. However, the detection does not work if the line contains more than one ``"""``. diff --git a/lib/system/assign.nim b/lib/system/assign.nim index 33bfa15f32..464dfb36c2 100755 --- a/lib/system/assign.nim +++ b/lib/system/assign.nim @@ -139,10 +139,10 @@ proc genericResetAux(dest: Pointer, n: ptr TNimNode) = of nkList: for i in 0..n.len-1: genericResetAux(dest, n.sons[i]) of nkCase: - zeroMem(cast[pointer](d +% n.offset), n.typ.size) var m = selectBranch(dest, n) if m != nil: genericResetAux(dest, m) - + zeroMem(cast[pointer](d +% n.offset), n.typ.size) + proc genericReset(dest: Pointer, mt: PNimType) = var d = cast[TAddress](dest) sysAssert(mt != nil)