diff options
author | Bernhard Schommer <bernhardschommer@gmail.com> | 2017-02-01 14:56:21 +0100 |
---|---|---|
committer | Bernhard Schommer <bernhardschommer@gmail.com> | 2017-02-01 14:56:21 +0100 |
commit | 34886d135cec62883e76ba25bda34b4623e4a696 (patch) | |
tree | 11f91b98317dbed13dabf2e1c02008eaca58dcdf /cparser/Parser.vy | |
parent | 31f86965bf172fb32f9cca99a292ebdf6cea57b9 (diff) | |
download | compcert-kvx-34886d135cec62883e76ba25bda34b4623e4a696.tar.gz compcert-kvx-34886d135cec62883e76ba25bda34b4623e4a696.zip |
Change the syntax to gcc/clangs syntax.
This only means that there must be one identifier at the begining
and then a designator.
Bug 20765
Diffstat (limited to 'cparser/Parser.vy')
-rw-r--r-- | cparser/Parser.vy | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/cparser/Parser.vy b/cparser/Parser.vy index f6bd6a7e..7fe686f1 100644 --- a/cparser/Parser.vy +++ b/cparser/Parser.vy @@ -145,8 +145,10 @@ postfix_expression: { (CAST typ (COMPOUND_INIT (rev' init)), loc) } | loc = LPAREN typ = type_name RPAREN LBRACE init = initializer_list COMMA RBRACE { (CAST typ (COMPOUND_INIT (rev' init)), loc) } -| loc = BUILTIN_OFFSETOF LPAREN typ = type_name COMMA mem = designator_list RPAREN - { (BUILTIN_OFFSETOF typ (rev mem), loc) } +| loc = BUILTIN_OFFSETOF LPAREN typ = type_name COMMA id = OTHER_NAME mems = designator_list RPAREN + { (BUILTIN_OFFSETOF typ ((INFIELD_INIT (fst id))::(rev mems)), loc) } +| loc = BUILTIN_OFFSETOF LPAREN typ = type_name COMMA mem = OTHER_NAME RPAREN + { (BUILTIN_OFFSETOF typ [INFIELD_INIT (fst mem)], loc) } (* Semantic value is in reverse order. *) argument_expression_list: |