summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDecl.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2013-04-07 14:10:40 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2013-04-07 14:10:40 +0000
commit5c488ef85c7bb6de228194ce2c4054a1d4696a73 (patch)
treea563e5153a6f973607039b3bdf2851c76aca1b40 /clang/lib/Sema/SemaDecl.cpp
parent0e8a52d18fbca4062234310709bedb44abd3ecd2 (diff)
downloadbcm5719-llvm-5c488ef85c7bb6de228194ce2c4054a1d4696a73.tar.gz
bcm5719-llvm-5c488ef85c7bb6de228194ce2c4054a1d4696a73.zip
Sema: Don't crash when trying to emit a warning for a duplicate value in an invalid enum.
Fixes PR15693. A null check on a pointer returned from cast<> is a very dubious construct, do we have a checker for this somewhere? llvm-svn: 178975
Diffstat (limited to 'clang/lib/Sema/SemaDecl.cpp')
-rw-r--r--clang/lib/Sema/SemaDecl.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index 84d992c8788..c8a5d932e76 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -11538,7 +11538,7 @@ static void CheckForDuplicateEnumValues(Sema &S, Decl **Elements,
// Populate the EnumMap with all values represented by enum constants without
// an initialier.
for (unsigned i = 0; i < NumElements; ++i) {
- EnumConstantDecl *ECD = cast<EnumConstantDecl>(Elements[i]);
+ EnumConstantDecl *ECD = cast_or_null<EnumConstantDecl>(Elements[i]);
// Null EnumConstantDecl means a previous diagnostic has been emitted for
// this constant. Skip this enum since it may be ill-formed.
OpenPOWER on IntegriCloud