summary refs log tree commit diff stats
path: root/lib/nimbase.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/nimbase.h')
-rw-r--r--lib/nimbase.h29
1 files changed, 21 insertions, 8 deletions
diff --git a/lib/nimbase.h b/lib/nimbase.h
index 818bff462..a5d2616e7 100644
--- a/lib/nimbase.h
+++ b/lib/nimbase.h
@@ -402,16 +402,29 @@ struct TFrame {
   NI16 calldepth;
 };
 
-#define nimfr(proc, file) \
-  TFrame FR; \
-  FR.procname = proc; FR.filename = file; FR.line = 0; FR.len = 0; nimFrame(&FR);
+#ifdef NIM_NEW_MANGLING_RULES
+  #define nimfr_(proc, file) \
+    TFrame FR_; \
+    FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
 
-#define nimfrs(proc, file, slots, length) \
-  struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR; \
-  FR.procname = proc; FR.filename = file; FR.line = 0; FR.len = length; nimFrame((TFrame*)&FR);
+  #define nimfrs_(proc, file, slots, length) \
+    struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR_; \
+    FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
 
-#define nimln(n, file) \
-  FR.line = n; FR.filename = file;
+  #define nimln_(n, file) \
+    FR_.line = n; FR_.filename = file;
+#else
+  #define nimfr(proc, file) \
+    TFrame FR; \
+    FR.procname = proc; FR.filename = file; FR.line = 0; FR.len = 0; nimFrame(&FR);
+
+  #define nimfrs(proc, file, slots, length) \
+    struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR; \
+    FR.procname = proc; FR.filename = file; FR.line = 0; FR.len = length; nimFrame((TFrame*)&FR);
+
+  #define nimln(n, file) \
+    FR.line = n; FR.filename = file;
+#endif
 
 #define NIM_POSIX_INIT  __attribute__((constructor))