[PATCH] D12444: [Sema] Avoid crash on tag-type mismatch (Fixes PR24610)
Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Sep 1 20:28:37 PDT 2015
This revision was automatically updated to reflect the committed changes.
Closed by commit rL246618: [Sema] Avoid crash on tag-type mismatch (Fixes PR24610) (authored by vedantk).
Changed prior to commit:
http://reviews.llvm.org/D12444?vs=33623&id=33777#toc
Repository:
rL LLVM
http://reviews.llvm.org/D12444
Files:
cfe/trunk/lib/Sema/SemaDecl.cpp
cfe/trunk/test/Sema/enum.c
Index: cfe/trunk/test/Sema/enum.c
===================================================================
--- cfe/trunk/test/Sema/enum.c
+++ cfe/trunk/test/Sema/enum.c
@@ -119,3 +119,7 @@
typedef enum { NegativeShort = (short)-1 } NegativeShortEnum;
int NegativeShortTest[NegativeShort == -1 ? 1 : -1];
+
+// PR24610
+enum Color { Red, Green, Blue }; // expected-note{{previous use is here}}
+typedef struct Color NewColor; // expected-error {{use of 'Color' with tag type that does not match previous declaration}}
Index: cfe/trunk/lib/Sema/SemaDecl.cpp
===================================================================
--- cfe/trunk/lib/Sema/SemaDecl.cpp
+++ cfe/trunk/lib/Sema/SemaDecl.cpp
@@ -3560,6 +3560,9 @@
void Sema::setTagNameForLinkagePurposes(TagDecl *TagFromDeclSpec,
TypedefNameDecl *NewTD) {
+ if (TagFromDeclSpec->isInvalidDecl())
+ return;
+
// Do nothing if the tag already has a name for linkage purposes.
if (TagFromDeclSpec->hasNameForLinkage())
return;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12444.33777.patch
Type: text/x-patch
Size: 1036 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150902/4736c0e4/attachment.bin>
More information about the cfe-commits
mailing list