changeset 1516:0f08b145b878

Treat ConditionalDeclarations correctly in DtoDeclarationExp. Fixes #332.
author Christian Kamm <kamm incasoftware de>
date Fri, 26 Jun 2009 17:18:36 +0200
parents 391fdb36f2aa
children a7a9e461512a
files gen/llvmhelpers.cpp
diffstat 1 files changed, 5 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/gen/llvmhelpers.cpp	Wed Jun 24 18:01:02 2009 +0200
+++ b/gen/llvmhelpers.cpp	Fri Jun 26 17:18:36 2009 +0200
@@ -979,10 +979,12 @@
     else if (AttribDeclaration* a = declaration->isAttribDeclaration())
     {
         Logger::println("AttribDeclaration");
-        if (a->decl)
-            for (int i=0; i < a->decl->dim; ++i)
+        // choose the right set in case this is a conditional declaration
+        Array *d = a->include(NULL, NULL);
+        if (d)
+            for (int i=0; i < d->dim; ++i)
             {
-                DtoDeclarationExp((Dsymbol*)a->decl->data[i]);
+                DtoDeclarationExp((Dsymbol*)d->data[i]);
             }
     }
     // mixin declaration