From: Leandro Melo Date: Fri, 21 Oct 2011 10:40:01 +0000 (+0200) Subject: C++: Fix arg. count for functions with function-try-blocks X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=dc23698e3a0582f378e1cd1efbb4e35f69f3df57;p=qt-creator-jp%2Fqt-creator-jp.git C++: Fix arg. count for functions with function-try-blocks Task-number: QTCREATORBUG-6343 Change-Id: I71575098c71611dc8514288f7938af4c409ebaa3 Reviewed-by: Christian Kamm --- diff --git a/src/libs/3rdparty/cplusplus/Symbols.cpp b/src/libs/3rdparty/cplusplus/Symbols.cpp index 7cbacd9971..b1b7fbcefd 100644 --- a/src/libs/3rdparty/cplusplus/Symbols.cpp +++ b/src/libs/3rdparty/cplusplus/Symbols.cpp @@ -308,11 +308,12 @@ bool Function::hasReturnType() const unsigned Function::argumentCount() const { - const unsigned c = memberCount(); + unsigned c = memberCount(); if (c > 0 && memberAt(0)->type()->isVoidType()) return 0; - if (c > 0 && memberAt(c - 1)->isBlock()) - return c - 1; + // Definitions with function-try-blocks will have more than a block. + while (c > 0 && memberAt(c - 1)->isBlock()) + --c; return c; }