[LLVMbugs] [Bug 9499] New: Bug with FastFoldingSetNode / FoldingSetNodeID::Add

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu Mar 17 03:48:55 PDT 2011


           Summary: Bug with FastFoldingSetNode / FoldingSetNodeID::Add
           Product: libraries
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Support Libraries
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: schaub.johannes at googlemail.com
                CC: llvmbugs at cs.uiuc.edu

There's a problem with interaction of those two functions.
FoldingSetNodeID::Add is supposed to add data to a folding set node ID.
However, when we add folding set node that derives from FastFoldingSetNode, its
profile function will overwrite anything that has been added previously to the
folding set node ID:

  // FoldingSetNodeID::Add
  template <typename T>
  inline void Add(const T& x) { FoldingSetTrait<T>::Profile(x, *this); }

  // FastFoldingSetNode::Profile
  void Profile(FoldingSetNodeID& ID) const { ID = FastID; }

I think that FoldingSetNodeID::Add should let the Profile function add stuff to
a temporary folding set node id and then append all collected data to "*this".

Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

More information about the llvm-bugs mailing list