]> git.xonotic.org Git - xonotic/gmqcc.git/commitdiff
Generating fields using ir_builder_create_field
authorWolfgang (Blub) Bumiller <blub@speed.at>
Sat, 11 Aug 2012 16:05:56 +0000 (18:05 +0200)
committerWolfgang (Blub) Bumiller <blub@speed.at>
Sat, 11 Aug 2012 16:05:56 +0000 (18:05 +0200)
ast.c

diff --git a/ast.c b/ast.c
index 4c90821639a0c4e695ccbfc3667d2f5093a63cba..d7684090887af261cb8869c0c23caa5a3374d8a3 100644 (file)
--- a/ast.c
+++ b/ast.c
@@ -616,6 +616,18 @@ bool ast_global_codegen(ast_value *self, ir_builder *ir)
         return true;
     }
 
+    if (self->expression.vtype == TYPE_FIELD) {
+        v = ir_builder_create_field(ir, self->name, self->expression.next->expression.vtype);
+        if (!v)
+            return false;
+        if (self->isconst) {
+            printf("TODO: constant field pointers with value\n");
+            goto error;
+        }
+        self->ir_v = v;
+        return true;
+    }
+
     v = ir_builder_create_global(ir, self->name, self->expression.vtype);
     if (!v)
         return false;