[Issue 22030] importC: Wrong error with bad declarator

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Jun 16 17:04:26 UTC 2021


https://issues.dlang.org/show_bug.cgi?id=22030

Iain Buclaw <ibuclaw at gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ibuclaw at gdcproject.org

--- Comment #1 from Iain Buclaw <ibuclaw at gdcproject.org> ---
A further example:
---
int , int;
---

When compiled with GCC:
---
test.c:1: error: expected identifier or ‘(’ before ‘,’ token
---

However DMD compiles with no errors.  So DMD is not respecting the grammar in
C11 6.7 (and in particular 6.7.6), which says that `int;` is valid
(declaration-specifier without an init-declarator-list), but `int,` is not.

declaration:
    declaration-specifiers init-declarator-list(opt);

init-declarator-list:
    init-declarator
    init-declarator-list , init-declarator

init-declarator:
    declarator
    declarator = initializer

declarator:
    pointer(opt) direct-declarator

direct-declarator:
    identifier attribute-specifier-sequence(opt)
    ( declarator ) array-declarator attribute-specifier-sequence(opt)
    function-declarator attribute-specifier-sequence(opt)

--


More information about the Digitalmars-d-bugs mailing list