summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/lib/Serialization/ASTReaderDecl.cpp2
-rw-r--r--clang/test/Modules/Inputs/merge-typedefs/a1.h3
-rw-r--r--clang/test/Modules/Inputs/merge-typedefs/b1.h2
-rw-r--r--clang/test/Modules/merge-typedefs.cpp1
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;
OpenPOWER on IntegriCloud