diff gen/metadata.h @ 1343:c21a6654cce2

Update for metadata changes in LLVM trunk.
author Frits van Bommel <fvbommel wxs.nl>
date Mon, 11 May 2009 11:59:22 +0200
parents 4099548c80e0
children 3297edb697eb
line wrap: on
line diff
--- a/gen/metadata.h	Sun May 10 22:26:04 2009 +0200
+++ b/gen/metadata.h	Mon May 11 11:59:22 2009 +0200
@@ -6,6 +6,33 @@
 #if LLVM_REV >= 68420
 // Yay, we have metadata!
 
+// The metadata interface is still in flux...
+#if LLVM_REV >= 71407
+    // MDNode was moved into its own header, and contains Value*s
+    #include "llvm/MDNode.h"
+    typedef llvm::Value MDNodeField;
+    
+    // Use getNumElements() and getElement() to access elements.
+    inline unsigned MD_GetNumElements(llvm::MDNode* N) {
+        return N->getNumElements();
+    }
+    inline MDNodeField* MD_GetElement(llvm::MDNode* N, unsigned i) {
+        return N->getElement(i);
+    }
+#else
+    // MDNode is in Constants.h, and contains Constant*s
+    #include "llvm/Constants.h"
+    typedef llvm::Constant MDNodeField;
+    
+    // Use getNumOperands() and getOperand() to access elements.
+    inline unsigned MD_GetNumElements(llvm::MDNode* N) {
+        return N->getNumOperands();
+    }
+    inline MDNodeField* MD_GetElement(llvm::MDNode* N, unsigned i) {
+        return N->getOperand(i);
+    }
+#endif
+
 #define USE_METADATA
 #define METADATA_LINKAGE_TYPE  llvm::GlobalValue::WeakODRLinkage