Add logic to align instruction operands to columns for pretty-printing.
[oota-llvm.git] / include / llvm / Bitcode / Serialization.h
index df82c8f8e9a2074c0e88f9d6cfef15ea0703d962..2f0d35034c824cd6f95f61e5638307255d8c6a0b 100644 (file)
@@ -18,7 +18,7 @@
 #include "llvm/Bitcode/SerializationFwd.h"
 
 namespace llvm {
-  
+
 /// SerializeTrait - SerializeTrait bridges between the Serializer/Deserializer
 ///  and the functions that serialize objects of specific types.  The default
 ///  behavior is to call static methods of the class for the object being
@@ -38,6 +38,11 @@ struct SerializeTrait {
   static inline void Emit(Serializer& S, const T& X) { X.Emit(S); }
   static inline void Read(Deserializer& D, T& X) { X.Read(D); }
   static inline T* Create(Deserializer& D) { return T::Create(D); }
+
+  template <typename Arg1>
+  static inline T* Create(Deserializer& D, Arg1& arg1) {
+    return T::Create(D, arg1);
+  }
 };
 
 #define SERIALIZE_INT_TRAIT(TYPE)\
@@ -50,14 +55,14 @@ SERIALIZE_INT_TRAIT(unsigned char)
 SERIALIZE_INT_TRAIT(unsigned short)
 SERIALIZE_INT_TRAIT(unsigned int)
 SERIALIZE_INT_TRAIT(unsigned long)
-  
+
 SERIALIZE_INT_TRAIT(signed char)
 SERIALIZE_INT_TRAIT(signed short)
 SERIALIZE_INT_TRAIT(signed int)
 SERIALIZE_INT_TRAIT(signed long)
 
 #undef SERIALIZE_INT_TRAIT
-  
+
 } // end namespace llvm
 
 #endif