diff options
author | Chris Lattner <sabre@nondot.org> | 2008-04-07 06:37:47 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-04-07 06:37:47 +0000 |
commit | 1ee0700c7dbe3554df09b4558e0b35a53d487ff2 (patch) | |
tree | d9b1ccf051da55235723cbcd130339a9a7caf3fc /lib/AST/Type.cpp | |
parent | 42a997c93b2166facfd3c93ffd5027e4930545dd (diff) |
Fix a really bad bug where type uniquing would merge a<x> with b<x> as the same
type, because it did not include a/b in the hash.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49321 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/Type.cpp')
-rw-r--r-- | lib/AST/Type.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/AST/Type.cpp b/lib/AST/Type.cpp index f80f3641da..637061c499 100644 --- a/lib/AST/Type.cpp +++ b/lib/AST/Type.cpp @@ -704,14 +704,16 @@ void FunctionTypeProto::Profile(llvm::FoldingSetNodeID &ID) { } void ObjCQualifiedInterfaceType::Profile(llvm::FoldingSetNodeID &ID, + const ObjCInterfaceDecl *Decl, ObjCProtocolDecl **protocols, unsigned NumProtocols) { + ID.AddPointer(Decl); for (unsigned i = 0; i != NumProtocols; i++) ID.AddPointer(protocols[i]); } void ObjCQualifiedInterfaceType::Profile(llvm::FoldingSetNodeID &ID) { - Profile(ID, &Protocols[0], getNumProtocols()); + Profile(ID, getDecl(), &Protocols[0], getNumProtocols()); } void ObjCQualifiedIdType::Profile(llvm::FoldingSetNodeID &ID, |