diff options
| author | Douglas Gregor <dgregor@apple.com> | 2011-02-22 23:21:06 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2011-02-22 23:21:06 +0000 |
| commit | 385d3fd97d3e9888aee93d19bdc8430483777e96 (patch) | |
| tree | 48022a612988ee5705ad0f49445ed4849a46425d /clang/lib/Sema | |
| parent | bb6db5602855643d2af38be21e1972b3f4081cd9 (diff) | |
| download | bcm5719-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.cpp | 3 |
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); } |

