diff options
| -rw-r--r-- | clang/lib/Serialization/ASTReaderDecl.cpp | 2 | ||||
| -rw-r--r-- | clang/test/Modules/Inputs/merge-typedefs/a1.h | 3 | ||||
| -rw-r--r-- | clang/test/Modules/Inputs/merge-typedefs/b1.h | 2 | ||||
| -rw-r--r-- | clang/test/Modules/merge-typedefs.cpp | 1 |
4 files changed, 7 insertions, 1 deletions
diff --git a/clang/lib/Serialization/ASTReaderDecl.cpp b/clang/lib/Serialization/ASTReaderDecl.cpp index 4f1c4ec6915..2503500dcd4 100644 --- a/clang/lib/Serialization/ASTReaderDecl.cpp +++ b/clang/lib/Serialization/ASTReaderDecl.cpp @@ -2528,7 +2528,7 @@ ASTDeclReader::FindExistingResult ASTDeclReader::findExisting(NamedDecl *D) { IEnd = IdResolver.end(); I != IEnd; ++I) { if (NamedDecl *Existing = getDeclForMerging(*I, IsTypedefNameForLinkage)) - if (isSameEntity(*I, D)) + if (isSameEntity(Existing, D)) return FindExistingResult(Reader, D, Existing); } } else if (DeclContext *MergeDC = getPrimaryContextForMerging(DC)) { diff --git a/clang/test/Modules/Inputs/merge-typedefs/a1.h b/clang/test/Modules/Inputs/merge-typedefs/a1.h index cb8e5b47388..cacc530c3d0 100644 --- a/clang/test/Modules/Inputs/merge-typedefs/a1.h +++ b/clang/test/Modules/Inputs/merge-typedefs/a1.h @@ -5,4 +5,7 @@ class MachineBasicBlock; template <class NodeT> class DomTreeNodeBase; typedef DomTreeNodeBase<MachineBasicBlock> MachineDomTreeNode; } + +typedef struct {} foo_t; +typedef foo_t foo2_t; #endif diff --git a/clang/test/Modules/Inputs/merge-typedefs/b1.h b/clang/test/Modules/Inputs/merge-typedefs/b1.h index fba3a89c308..8dde5f6fbad 100644 --- a/clang/test/Modules/Inputs/merge-typedefs/b1.h +++ b/clang/test/Modules/Inputs/merge-typedefs/b1.h @@ -1,5 +1,7 @@ #ifndef B1_H #define B1_H +typedef struct {} foo_t; +typedef foo_t foo2_t; #include "a2.h" namespace llvm { class MachineBasicBlock; diff --git a/clang/test/Modules/merge-typedefs.cpp b/clang/test/Modules/merge-typedefs.cpp index 5d821776030..607f8c5ad0e 100644 --- a/clang/test/Modules/merge-typedefs.cpp +++ b/clang/test/Modules/merge-typedefs.cpp @@ -7,3 +7,4 @@ // expected-no-diagnostics llvm::MachineDomTreeNode *p; +foo2_t f2t; |

