summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-02-22 23:21:06 +0000
committerDouglas Gregor <dgregor@apple.com>2011-02-22 23:21:06 +0000
commit385d3fd97d3e9888aee93d19bdc8430483777e96 (patch)
tree48022a612988ee5705ad0f49445ed4849a46425d /clang/lib/Sema
parentbb6db5602855643d2af38be21e1972b3f4081cd9 (diff)
downloadbcm5719-llvm-385d3fd97d3e9888aee93d19bdc8430483777e96.tar.gz
bcm5719-llvm-385d3fd97d3e9888aee93d19bdc8430483777e96.zip
When checking for abstract types, don't crash when we have a
FunctionProtoTypeLoc with NULL function parameter types, which can occur in invalid code. Fixes PR9247 / <rdar://problem/9037911>. llvm-svn: 126262
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r--clang/lib/Sema/SemaDeclCXX.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index c12534645f6..fbc2a466ee7 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -2588,6 +2588,9 @@ struct CheckAbstractUsage {
void Check(FunctionProtoTypeLoc TL, Sema::AbstractDiagSelID Sel) {
Visit(TL.getResultLoc(), Sema::AbstractReturnType);
for (unsigned I = 0, E = TL.getNumArgs(); I != E; ++I) {
+ if (!TL.getArg(I))
+ continue;
+
TypeSourceInfo *TSI = TL.getArg(I)->getTypeSourceInfo();
if (TSI) Visit(TSI->getTypeLoc(), Sema::AbstractParamType);
}
OpenPOWER on IntegriCloud