diff options
author | Bernhard Schommer <bschommer@users.noreply.github.com> | 2016-03-23 10:59:35 +0100 |
---|---|---|
committer | Bernhard Schommer <bschommer@users.noreply.github.com> | 2016-03-23 10:59:35 +0100 |
commit | ccd59f7fc19ffe2347724b532d6ce13c8580c2ab (patch) | |
tree | 3c8f2643fe658a9126bdeae05324dc301e7321f7 | |
parent | d25405f247b2b94527393eba4c79a56291a7fd80 (diff) | |
parent | d0af92096242ff6e452c726d682295145189e848 (diff) | |
download | compcert-ccd59f7fc19ffe2347724b532d6ce13c8580c2ab.tar.gz compcert-ccd59f7fc19ffe2347724b532d6ce13c8580c2ab.zip |
Merge pull request #94 from jhjourdan/parentherized_fun
Fix a bug in the pre-parser.
-rw-r--r-- | cparser/pre_parser.mly | 1 | ||||
-rw-r--r-- | test/regression/parsing.c | 17 |
2 files changed, 18 insertions, 0 deletions
diff --git a/cparser/pre_parser.mly b/cparser/pre_parser.mly index d6a4a21c..21008f1c 100644 --- a/cparser/pre_parser.mly +++ b/cparser/pre_parser.mly @@ -665,6 +665,7 @@ direct_declarator: | i = declarator_identifier { set_id_type i VarId; (i, Decl_ident) } | LPAREN save_context x = declarator RPAREN + { x } | x = direct_declarator LBRACK type_qualifier_list? optional(assignment_expression, RBRACK) { match snd x with | Decl_ident -> (fst x, Decl_other) diff --git a/test/regression/parsing.c b/test/regression/parsing.c index f8ba2a73..2d48687b 100644 --- a/test/regression/parsing.c +++ b/test/regression/parsing.c @@ -162,6 +162,23 @@ void (*krk(a, b, c))(int) int hhh(int()); +int (testparen)(int T) { + return T; +} + +int (testparen2(int T)) { + return T; +} + +int ((testparen3)(int T)) { + return T; +} + +int ((((((((((testparen10))))))))))(int T) { + return T; +} + + int main () { f(g); i(); |