Move error message to a better place.
authorChristoph Mallon <christoph.mallon@gmx.de>
Thu, 22 Apr 2010 16:19:09 +0000 (16:19 +0000)
committerChristoph Mallon <christoph.mallon@gmx.de>
Thu, 22 Apr 2010 16:19:09 +0000 (16:19 +0000)
[r27430]

parser.c

index f60f30f..657893a 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -3506,6 +3506,9 @@ static construct_type_t *parse_reference_declarator(void)
 {
        eat('&');
 
+       if (!(c_mode & _CXX))
+               errorf(HERE, "references are only available for C++");
+
        construct_type_t   *cons      = obstack_alloc(&temp_obst, sizeof(cons->reference));
        parsed_reference_t *reference = &cons->reference;
        memset(reference, 0, sizeof(*reference));
@@ -3604,8 +3607,6 @@ static construct_type_t *parse_inner_declarator(parse_declarator_env_t *env)
                //variable_t       *based = NULL; /* MS __based extension */
                switch (token.type) {
                        case '&':
-                               if (!(c_mode & _CXX))
-                                       errorf(HERE, "references are only available for C++");
                                type = parse_reference_declarator();
                                break;