diff dmd/aggregate.h @ 1147:dbe4af57b240

Changed use of toObjFile to a new codegen method. More versioning of DMD specific codegen code.
author Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
date Fri, 27 Mar 2009 17:54:27 +0100
parents 1860414bf3b7
children 8026319762be
line wrap: on
line diff
--- a/dmd/aggregate.h	Thu Mar 26 20:45:53 2009 +0100
+++ b/dmd/aggregate.h	Fri Mar 27 17:54:27 2009 +0100
@@ -140,11 +140,17 @@
 
     PROT getAccess(Dsymbol *smember);	// determine access to smember
 
+#if IN_DMD
     void toObjFile(int multiobj);			// compile to .obj file
     void toDt(dt_t **pdt);
     void toDebug();			// to symbolic debug info
+#endif
 
     StructDeclaration *isStructDeclaration() { return this; }
+
+#if IN_LLVM
+    void codegen(Ir*);
+#endif
 };
 
 struct UnionDeclaration : StructDeclaration
@@ -250,9 +256,9 @@
 
     void addLocalClass(ClassDeclarations *);
 
+#if IN_DMD
     // Back end
     void toObjFile(int multiobj);			// compile to .obj file
-#if IN_DMD
     void toDebug();
     unsigned baseVtblOffset(BaseClass *bc);
     Symbol *toSymbol();
@@ -264,6 +270,10 @@
 #endif
 
     ClassDeclaration *isClassDeclaration() { return (ClassDeclaration *)this; }
+
+#if IN_LLVM
+    virtual void codegen(Ir*);
+#endif
 };
 
 struct InterfaceDeclaration : ClassDeclaration
@@ -283,12 +293,16 @@
 #endif
     virtual int isCOMinterface();
 
+#if IN_DMD
     void toObjFile(int multiobj);			// compile to .obj file
-#if IN_DMD
     Symbol *toSymbol();
 #endif
 
     InterfaceDeclaration *isInterfaceDeclaration() { return this; }
+
+#if IN_LLVM
+    void codegen(Ir*);
+#endif
 };
 
 #endif /* DMD_AGGREGATE_H */