Don't try to merge DLL attributes on redeclaration of invalid decl (PR31069)
llvm-svn: 288207
This commit is contained in:
parent
47f7f30df9
commit
a6714922d1
|
@ -5651,6 +5651,9 @@ static void checkDLLAttributeRedeclaration(Sema &S, NamedDecl *OldDecl,
|
|||
NamedDecl *NewDecl,
|
||||
bool IsSpecialization,
|
||||
bool IsDefinition) {
|
||||
if(OldDecl->isInvalidDecl())
|
||||
return;
|
||||
|
||||
if (TemplateDecl *OldTD = dyn_cast<TemplateDecl>(OldDecl)) {
|
||||
OldDecl = OldTD->getTemplatedDecl();
|
||||
if (!IsSpecialization)
|
||||
|
|
|
@ -210,6 +210,10 @@ __declspec(dllimport) void redecl6();
|
|||
void redecl7();
|
||||
__declspec(dllimport) inline void redecl7() {}
|
||||
|
||||
// PR31069: Don't crash trying to merge attributes for redeclaration of invalid decl.
|
||||
void __declspec(dllimport) redecl8(unknowntype X); // expected-error{{unknown type name 'unknowntype'}}
|
||||
void redecl8(unknowntype X) { } // expected-error{{unknown type name 'unknowntype'}}
|
||||
|
||||
// External linkage is required.
|
||||
__declspec(dllimport) static int staticFunc(); // expected-error{{'staticFunc' must have external linkage when declared 'dllimport'}}
|
||||
|
||||
|
|
Loading…
Reference in New Issue