]> granicus.if.org Git - clang/commitdiff
Patch to prevent crash when default argument expression
authorFariborz Jahanian <fjahanian@apple.com>
Thu, 26 Feb 2015 17:59:54 +0000 (17:59 +0000)
committerFariborz Jahanian <fjahanian@apple.com>
Thu, 26 Feb 2015 17:59:54 +0000 (17:59 +0000)
is null due to its previous bad declaration, etc.
rdar://19871240

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@230649 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaChecking.cpp

index cac9b207536cddca8e733392b756efea3852956f..5a0d8d4a5385b095c5f911d195489f7664de99bf 100644 (file)
@@ -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)) {