compile: traces know REG variables
authorJulien Chevalier <chevjulien@gmail.com>
Fri, 14 Aug 2009 17:16:22 +0000 (13:16 -0400)
committerJean Privat <jean@pryen.org>
Mon, 17 Aug 2009 20:15:30 +0000 (16:15 -0400)
Also: ask gccx to not warn about missing initializers.

Signed-off-by: Julien Chevalier <chevjulien@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>

bin/gccx
clib/nit_common.h
src/compiling/compiling_icode.nit

index 5cafc01..f13a8fe 100755 (executable)
--- a/bin/gccx
+++ b/bin/gccx
@@ -19,7 +19,7 @@
 
 OPTS="-g" # option for compiler call
 objs="" # List of .o files
-CC="gcc --ansi --pedantic -Wall -Wextra -Wformat-security -Wcast-align -Wno-uninitialized -Wno-unused-variable -Wno-unused-label -Wno-unused-parameter" # Default compiler call
+CC="gcc --ansi --pedantic -Wall -Wextra -Wformat-security -Wcast-align -Wno-uninitialized -Wno-unused-variable -Wno-unused-label -Wno-unused-parameter -Wno-missing-field-initializers" # Default compiler call
 ext="_savo _sav" # Default flavor to reuse
 out="a.out"  # Default output binary filename
 dir="" # Default tmp dir
index f489205..2d4f9df 100644 (file)
@@ -131,6 +131,8 @@ struct trace_t {
        const char *file; /* source filename */
        int line; /* line number */
        const char *meth; /* method name */
+       int REG_size;
+       val_t **REG_pointer;
 };
 extern struct trace_t *tracehead;
 typedef enum {true = (1==1),false = (0==1)} bool;
index 7902aea..e41e277 100644 (file)
@@ -264,9 +264,10 @@ redef class IRoutine
                if location != null then
                        ll = location.line_start
                end
-               v.add_decl("struct trace_t trace = \{NULL, NULL, {ll}, LOCATE_{v.basecname}\};")
+               v.add_decl("struct trace_t trace = \{NULL, NULL, {ll}, LOCATE_{v.basecname}, {std_slots_nb}\};")
                v.add_instr("trace.prev = tracehead; tracehead = &trace;")
                v.add_instr("trace.file = LOCATE_{v.visitor.module.name};")
+               v.add_instr("trace.REG_pointer = (val_t **)&REG;")
 
                # Add local variables
                if std_slots_nb == 0 then