From: Carl Worth Date: Wed, 26 May 2010 00:45:22 +0000 (-0700) Subject: Avoid swallowing initial left parenthesis from nested macro invocation. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=652fa272ea4bdb9bfe6cd7f8413b3a3b03972987;p=mesa.git Avoid swallowing initial left parenthesis from nested macro invocation. We weren't including this left parenthesis in the argument's token list so the nested function invocation wasn not being recognized. With this fix, tests 21 and 22 now pass. --- diff --git a/glcpp-parse.y b/glcpp-parse.y index ec966580fc4..131102fab95 100644 --- a/glcpp-parse.y +++ b/glcpp-parse.y @@ -754,9 +754,12 @@ _arguments_parse (argument_list_t *arguments, token_node_t **node_ret) if (node == NULL || node->token->type != '(') return FUNCTION_NOT_A_FUNCTION; + last = node; + node = node->next; + argument = NULL; - for (paren_count = 0; node; last = node, node = node->next) { + for (paren_count = 1; node; last = node, node = node->next) { if (node->token->type == '(') { paren_count++; @@ -770,7 +773,8 @@ _arguments_parse (argument_list_t *arguments, token_node_t **node_ret) break; } } - else if (node->token->type == ',' && + + if (node->token->type == ',' && paren_count == 1) { argument = NULL;