diff dmd/mtype.h @ 379:d632801b15f0

Introducing opaque type to dmd frontent to be used with certain runtime array and aa args and returns. There are still some bugs with aas.
author Christian Kamm <kamm incasoftware de>
date Tue, 22 Jul 2008 23:06:46 +0200
parents aaade6ded589
children 3545f9eddbfc
line wrap: on
line diff
--- a/dmd/mtype.h	Tue Jul 22 19:24:40 2008 +0200
+++ b/dmd/mtype.h	Tue Jul 22 23:06:46 2008 +0200
@@ -97,6 +97,10 @@
     Ttypeof,
     Ttuple,
     Tslice,
+
+// LLVMDC
+    Topaque,
+
     TMAX
 };
 
@@ -173,6 +177,10 @@
     static ClassDeclaration *typeinfodelegate;
     static ClassDeclaration *typeinfotypelist;
 
+    // LLVMDC, for runtime function signatures that contain
+    // AAs or arrays of unknown type
+    static Type* topaque;
+
     static Type *basic[TMAX];
     static unsigned char mangleChar[TMAX];
     static StringTable stringtable;
@@ -660,6 +668,13 @@
     void toCBuffer2(OutBuffer *buf, HdrGenState *hgs, int mod);
 };
 
+//LLVMDC
+struct TypeOpaque : Type
+{ 
+    TypeOpaque() : Type(Topaque, NULL) {}
+    void toCBuffer2(OutBuffer *buf, HdrGenState *hgs, int mod);
+};
+
 /**************************************************************/
 
 //enum InOut { None, In, Out, InOut, Lazy };