diff gen/metadata.h @ 1291:875afb7a93b6

Factor out some constants into the header so producers and consumers of metadata stay in sync (and are more readable).
author Frits van Bommel <fvbommel wxs.nl>
date Sat, 02 May 2009 20:42:58 +0200
parents 5851c18e4c6d
children 8c65217be813
line wrap: on
line diff
--- a/gen/metadata.h	Sat May 02 14:00:57 2009 +0200
+++ b/gen/metadata.h	Sat May 02 20:42:58 2009 +0200
@@ -4,8 +4,24 @@
 #include "gen/llvm-version.h"
 
 #if LLVM_REV >= 68420
-#  define USE_METADATA
-#  define METADATA_LINKAGE_TYPE  llvm::GlobalValue::WeakODRLinkage
+// Yay, we have metadata!
+
+#define USE_METADATA
+#define METADATA_LINKAGE_TYPE  llvm::GlobalValue::WeakODRLinkage
+
+// *** Metadata for TypeInfo instances ***
+#define TD_PREFIX "llvm.ldc.typeinfo."
+
+/// The fields in the metadata node for a TypeInfo instance.
+/// (Its name will be TD_PREFIX ~ <Name of TypeInfo global>)
+enum TypeDataFields {
+    TD_Confirm,     /// The TypeInfo this node is for
+    TD_Type,        /// A value of the LLVM type corresponding to this D type
+    
+    // Must be kept last:
+    TD_NumFields    /// The number of fields in TypeInfo metadata
+};
+
 #endif
 
 #endif