From a999e7ab0c29775b1945ed6676021060e4f0bf11 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Tue, 30 Aug 2016 19:13:18 +0000 Subject: [PATCH] PR29166: when merging declarations with typedef names for linkage purposes, don't assume that the anonymous struct will be part of the most recent declaration of the typedef. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@280136 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Serialization/ASTReaderDecl.cpp | 2 +- test/Modules/merge-name-for-linkage.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/Serialization/ASTReaderDecl.cpp b/lib/Serialization/ASTReaderDecl.cpp index e00c9561cd..620e1fed30 100644 --- a/lib/Serialization/ASTReaderDecl.cpp +++ b/lib/Serialization/ASTReaderDecl.cpp @@ -2887,7 +2887,7 @@ static NamedDecl *getDeclForMerging(NamedDecl *Found, return nullptr; if (auto *TND = dyn_cast(Found)) - return TND->getAnonDeclWithTypedefName(); + return TND->getAnonDeclWithTypedefName(/*AnyRedecl*/true); return nullptr; } diff --git a/test/Modules/merge-name-for-linkage.cpp b/test/Modules/merge-name-for-linkage.cpp index da1664ca34..75534bd661 100644 --- a/test/Modules/merge-name-for-linkage.cpp +++ b/test/Modules/merge-name-for-linkage.cpp @@ -2,6 +2,7 @@ // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I%S/Inputs/merge-name-for-linkage -verify %s // expected-no-diagnostics typedef union {} pthread_mutex_t; +typedef pthread_mutex_t pthread_mutex_t; #include "a.h" pthread_mutex_t x; #include "b.h" -- 2.40.0