diff dmd/enum.c @ 1628:6c36e3f49b28

Merge DMD r324: bugzilla 3663 and 3664 - fwd ref regressions --- dmd/class.c | 2 +- dmd/enum.c | 4 +++- dmd/enum.h | 2 ++ dmd/mars.c | 2 +- dmd/struct.c | 5 ++++- 5 files changed, 11 insertions(+), 4 deletions(-)
author Leandro Lucarella <llucax@gmail.com>
date Wed, 06 Jan 2010 15:18:23 -0300
parents 1d48eced441f
children 44b145be2ef5
line wrap: on
line diff
--- a/dmd/enum.c	Wed Jan 06 15:18:23 2010 -0300
+++ b/dmd/enum.c	Wed Jan 06 15:18:23 2010 -0300
@@ -61,7 +61,7 @@
 	memtype = Type::tint32;
 
     if (symtab)			// if already done
-    {	if (!scope)
+    {	if (isdone || !scope)
 	    return;		// semantic() already completed
     }
     else
@@ -96,6 +96,8 @@
 	memtype = Type::tint32;
     }
 
+    isdone = 1;
+
     t = isAnonymous() ? memtype : type;
     symtab = new DsymbolTable();
     sce = sc->push(this);