fix a bug in post-order iterators with external storage, patch by
[oota-llvm.git] / include / llvm / ADT / FoldingSet.h
index a69197f337718064755ad42c9191118e2f0b4464..1bcff3dc9eb3f30565f4fa3b196f5227992a6056 100644 (file)
@@ -19,6 +19,7 @@
 #include "llvm/Support/DataTypes.h"
 #include "llvm/ADT/SmallVector.h"
 #include <string>
+#include <iterator>
 
 namespace llvm {
   class APFloat;
@@ -50,7 +51,7 @@ namespace llvm {
 ///    public:
 ///      MyNode(const char *N, unsigned V) : Name(N), Value(V) {}
 ///       ...
-///      void Profile(FoldingSetNodeID &ID) {
+///      void Profile(FoldingSetNodeID &ID) const {
 ///        ID.AddString(Name);
 ///        ID.AddInteger(Value);
 ///       }
@@ -225,8 +226,8 @@ public:
   void AddInteger(unsigned long I);
   void AddInteger(long long I);
   void AddInteger(unsigned long long I);
-  void AddFloat(float F);
-  void AddDouble(double D);
+  void AddBoolean(bool B) { AddInteger(B ? 1U : 0U); }
+  void AddString(const char* String, const char* End);
   void AddString(const std::string &String);
   void AddString(const char* String);