Restore error message for a macro with unbalanced parentheses.
authorCarl Worth <cworth@cworth.org>
Wed, 2 Jun 2010 22:49:54 +0000 (15:49 -0700)
committerCarl Worth <cworth@cworth.org>
Wed, 2 Jun 2010 22:49:54 +0000 (15:49 -0700)
We had to remove this earlier because our recursive function calls
caused the same nodes to be examined for expansion more than once.
And in the test suite, one node would be examined before it had
its closing parenthesis and then again later after the parenthesis
was added.

So we removed this error message to allow the test case to pass.
Now that we've removed the unnecessary recursive function call
we can catch this error case and report it as desired.

glcpp-parse.y

index 1c7c84dac7a7690257bb84460162961bc92a291f..b07714eebd2026bda3c3a5f96f58144ba406b533 100644 (file)
@@ -956,7 +956,7 @@ typedef enum function_status
  *     Macro name not followed by a '('. This is not an error, but
  *     simply that the macro name should be treated as a non-macro.
  *
- *   FUNCTION_UNBLANCED_PARENTHESES
+ *   FUNCTION_UNBALANCED_PARENTHESES
  *
  *     Macro name is not followed by a balanced set of parentheses.
  */
@@ -1065,6 +1065,9 @@ _glcpp_parser_expand_function (glcpp_parser_t *parser,
        case FUNCTION_NOT_A_FUNCTION:
                return NULL;
        case FUNCTION_UNBALANCED_PARENTHESES:
+               fprintf (stderr, "Error: Macro %s call has unbalanced parentheses\n",
+                        identifier);
+               exit (1);
                return NULL;
        }