summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--compiler/ccgtypes.nim4
-rw-r--r--compiler/ccgutils.nim3
2 files changed, 5 insertions, 2 deletions
diff --git a/compiler/ccgtypes.nim b/compiler/ccgtypes.nim
index 7c11d3e9a..7a490082f 100644
--- a/compiler/ccgtypes.nim
+++ b/compiler/ccgtypes.nim
@@ -13,8 +13,8 @@
 
 proc mangleField(name: string): string =
   result = mangle(name)
-  if name[0] in 'a'..'z':
-    result[0] = name[0].toUpper
+  result[0] = result[0].toUpper # Mangling makes everything lowercase,
+                                # but some identifiers are C keywords
 
 proc isKeyword(w: PIdent): bool =
   # nimrod and C++ share some keywords
diff --git a/compiler/ccgutils.nim b/compiler/ccgutils.nim
index 9beb08a21..04983d6a4 100644
--- a/compiler/ccgutils.nim
+++ b/compiler/ccgutils.nim
@@ -162,6 +162,9 @@ proc makeSingleLineCString*(s: string): string =
   result.add('\"')
 
 proc mangle*(name: string): string =
+  ## Lowercases the given name and manges any non-alphanumeric characters
+  ## so they are represented as `HEX____`. If the name starts with a number,
+  ## `N` is prepended
   result = ""
   case name[0]
   of Letters: