diff options
author | David Majnemer <david.majnemer@gmail.com> | 2015-01-13 05:28:24 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2015-01-13 05:28:24 +0000 |
commit | 906ed278b96692cdb9546c16ea1f958b6213d9e1 (patch) | |
tree | 09d02eebc5ff83b364d4689cefd2fa7b099f37fb /clang/lib/Parse/ParseDecl.cpp | |
parent | 64e3dedf3bf53da84a4b71ede2440bac232c7684 (diff) | |
download | bcm5719-llvm-906ed278b96692cdb9546c16ea1f958b6213d9e1.tar.gz bcm5719-llvm-906ed278b96692cdb9546c16ea1f958b6213d9e1.zip |
Parse: Don't crash if missing an initializer expression
llvm-svn: 225768
Diffstat (limited to 'clang/lib/Parse/ParseDecl.cpp')
-rw-r--r-- | clang/lib/Parse/ParseDecl.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp index 0d8b0cc05fc..93125e9fed7 100644 --- a/clang/lib/Parse/ParseDecl.cpp +++ b/clang/lib/Parse/ParseDecl.cpp @@ -5625,13 +5625,14 @@ void Parser::ParseParameterDeclarationClause( // FIXME: Can we use a smart pointer for Toks? DefArgToks = new CachedTokens; + SourceLocation ArgStartLoc = NextToken().getLocation(); if (!ConsumeAndStoreInitializer(*DefArgToks, CIK_DefaultArgument)) { delete DefArgToks; DefArgToks = nullptr; Actions.ActOnParamDefaultArgumentError(Param, EqualLoc); } else { Actions.ActOnParamUnparsedDefaultArgument(Param, EqualLoc, - (*DefArgToks)[1].getLocation()); + ArgStartLoc); } } else { // Consume the '='. |