diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2015-02-26 17:59:54 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2015-02-26 17:59:54 +0000 |
commit | 947efbc138b30250da0baf6c4fe0f19b236dfc2c (patch) | |
tree | 93775c8a739136a12f26be340cd5ce9cd4168cfd /clang/lib/Sema/SemaChecking.cpp | |
parent | b7912261369e88d9ba5a7d7a0aef4ea17f83a030 (diff) | |
download | bcm5719-llvm-947efbc138b30250da0baf6c4fe0f19b236dfc2c.tar.gz bcm5719-llvm-947efbc138b30250da0baf6c4fe0f19b236dfc2c.zip |
Patch to prevent crash when default argument expression
is null due to its previous bad declaration, etc.
rdar://19871240
llvm-svn: 230649
Diffstat (limited to 'clang/lib/Sema/SemaChecking.cpp')
-rw-r--r-- | clang/lib/Sema/SemaChecking.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp index cac9b207536..5a0d8d4a538 100644 --- a/clang/lib/Sema/SemaChecking.cpp +++ b/clang/lib/Sema/SemaChecking.cpp @@ -6774,8 +6774,11 @@ void AnalyzeImplicitConversions(Sema &S, Expr *OrigE, SourceLocation CC) { E = POE->getResultExpr(); } - if (const OpaqueValueExpr *OVE = dyn_cast<OpaqueValueExpr>(E)) - return AnalyzeImplicitConversions(S, OVE->getSourceExpr(), CC); + if (const OpaqueValueExpr *OVE = dyn_cast<OpaqueValueExpr>(E)) { + if (OVE->getSourceExpr()) + AnalyzeImplicitConversions(S, OVE->getSourceExpr(), CC); + return; + } // Skip past explicit casts. if (isa<ExplicitCastExpr>(E)) { |