summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaTemplateDeduction.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2015-07-01 00:29:28 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2015-07-01 00:29:28 +0000
commit3c20ab2f2c5e1e081012e765a0dfe152933c08a1 (patch)
tree87aba7476754d5da843324c2cedf076fc0770188 /clang/lib/Sema/SemaTemplateDeduction.cpp
parent298ac300b24c4efe5fb5e1738f663b1a9744a657 (diff)
downloadbcm5719-llvm-3c20ab2f2c5e1e081012e765a0dfe152933c08a1.tar.gz
bcm5719-llvm-3c20ab2f2c5e1e081012e765a0dfe152933c08a1.zip
[Sema] Don't crash when deduction fails for decltype(auto)
We didn't check the return result of BuildDecltypeType, resulting in us crashing when we tried to grab the canonical version of the type. This fixes PR23995. llvm-svn: 241131
Diffstat (limited to 'clang/lib/Sema/SemaTemplateDeduction.cpp')
-rw-r--r--clang/lib/Sema/SemaTemplateDeduction.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaTemplateDeduction.cpp b/clang/lib/Sema/SemaTemplateDeduction.cpp
index 02e59af558b..ae8157e70a6 100644
--- a/clang/lib/Sema/SemaTemplateDeduction.cpp
+++ b/clang/lib/Sema/SemaTemplateDeduction.cpp
@@ -3968,6 +3968,8 @@ Sema::DeduceAutoType(TypeLoc Type, Expr *&Init, QualType &Result) {
}
QualType Deduced = BuildDecltypeType(Init, Init->getLocStart(), false);
+ if (Deduced.isNull())
+ return DAR_FailedAlreadyDiagnosed;
// FIXME: Support a non-canonical deduced type for 'auto'.
Deduced = Context.getCanonicalType(Deduced);
Result = SubstituteAutoTransform(*this, Deduced).Apply(Type);
OpenPOWER on IntegriCloud