CppEditor: Return on invalid code in ExtractLiteralAsParameter::match

No declarator was provided but we assumed one.

Task-number: QTCREATORBUG-12853
Change-Id: I5faf96b63f39aff43c0165f7277345737e53f191
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
Nikolai Kosjar
2014-08-18 10:26:39 +02:00
committed by Eike Ziller
parent be3dbd2699
commit a01f6cadf4
3 changed files with 28 additions and 7 deletions

View File

@@ -3884,13 +3884,15 @@ void ExtractLiteralAsParameter::match(const CppQuickFixInterface &interface,
return;
}
FunctionDeclaratorAST *functionDeclarator
= function->declarator->postfix_declarator_list->value->asFunctionDeclarator();
if (functionDeclarator
&& functionDeclarator->parameter_declaration_clause
&& functionDeclarator->parameter_declaration_clause->dot_dot_dot_token) {
// Do not handle functions with ellipsis parameter.
PostfixDeclaratorListAST * const declaratorList = function->declarator->postfix_declarator_list;
if (!declaratorList)
return;
if (FunctionDeclaratorAST *declarator = declaratorList->value->asFunctionDeclarator()) {
if (declarator->parameter_declaration_clause
&& declarator->parameter_declaration_clause->dot_dot_dot_token) {
// Do not handle functions with ellipsis parameter.
return;
}
}
const int priority = path.size() - 1;