From 7756cb92051b08662295eeeda96468b1bf80f6b8 Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Fri, 20 Jul 2012 21:36:37 +0200 Subject: [PATCH] the IR won't create globals of the same name - make names starting with # an exception --- ast.c | 4 +++- ir.c | 11 ++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ast.c b/ast.c index d519919..b192272 100644 --- a/ast.c +++ b/ast.c @@ -510,8 +510,10 @@ bool ast_global_codegen(ast_value *self, ir_builder *ir) } v = ir_builder_create_global(ir, self->name, self->expression.vtype); - if (!v) + if (!v) { + printf("ir_builder_create_global failed\n"); return false; + } if (self->isconst) { switch (self->expression.vtype) diff --git a/ir.c b/ir.c index ef67910..21d8eac 100644 --- a/ir.c +++ b/ir.c @@ -206,9 +206,14 @@ ir_value* ir_builder_get_global(ir_builder *self, const char *name) ir_value* ir_builder_create_global(ir_builder *self, const char *name, int vtype) { - ir_value *ve = ir_builder_get_global(self, name); - if (ve) { - return NULL; + ir_value *ve; + + if (name && name[0] != '#') + { + ve = ir_builder_get_global(self, name); + if (ve) { + return NULL; + } } ve = ir_value_var(name, store_global, vtype); -- 2.39.2