diff options
-rwxr-xr-x | lib/system.nim | 6 | ||||
-rwxr-xr-x | lib/system/mmdisp.nim | 3 | ||||
-rwxr-xr-x | rod/c2nim/cparse.nim | 2 | ||||
-rw-r--r-- | rod/c2nim/tests/systest.c | 1 |
4 files changed, 5 insertions, 7 deletions
diff --git a/lib/system.nim b/lib/system.nim index 7d1d2a867..d3450902e 100755 --- a/lib/system.nim +++ b/lib/system.nim @@ -1123,12 +1123,6 @@ proc isNil*(x: cstring): bool {.noSideEffect, magic: "IsNil".} ## Fast check whether `x` is nil. This is sometimes more efficient than ## ``== nil``. - -# Fixup some magic symbols here: -#{.fixup_system.} -# This is an undocumented pragma that can only be used -# once in the system module. - proc `&` *[T](x, y: openArray[T]): seq[T] {.noSideEffect.} = newSeq(result, x.len + y.len) for i in 0..x.len-1: diff --git a/lib/system/mmdisp.nim b/lib/system/mmdisp.nim index f28b6b931..c89e7dffa 100755 --- a/lib/system/mmdisp.nim +++ b/lib/system/mmdisp.nim @@ -136,6 +136,9 @@ elif defined(nogc): # object, because C does not support this operation... Even though every # possible implementation has to have a way to determine the object's size. # C just sucks. + when appType == "lib": + {.warning: "nogc in a library context may not work".} + include "system/alloc" when false: diff --git a/rod/c2nim/cparse.nim b/rod/c2nim/cparse.nim index f5e6c95f8..b0f2a3e3d 100755 --- a/rod/c2nim/cparse.nim +++ b/rod/c2nim/cparse.nim @@ -376,7 +376,7 @@ proc typeAtom(p: var TParser): PNode = elif isIntType(p.tok.s): var x = "c" & p.tok.s getTok(p, nil) - while p.tok.xkind == pxSymbol and isIntType(p.tok.s): + while p.tok.xkind == pxSymbol and (isIntType(p.tok.s) or p.tok.s == "char"): add(x, p.tok.s) getTok(p, nil) result = newIdentNodeP(x, p) diff --git a/rod/c2nim/tests/systest.c b/rod/c2nim/tests/systest.c index 022bf8350..528ae89e3 100644 --- a/rod/c2nim/tests/systest.c +++ b/rod/c2nim/tests/systest.c @@ -9,6 +9,7 @@ extern "C" { typedef char gchar; typedef unsigned int gunsignedint; +typedef unsigned char guchar; point* newPoint(void) { for (int i = 0; i < 89; ++i) echo("test" " string " "concatenation"); |