[Issue 23143] New: ImportC: forward enum declarations result in uninformative errors

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri May 27 15:00:32 UTC 2022


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

          Issue ID: 23143
           Summary: ImportC: forward enum declarations result in
                    uninformative errors
           Product: D
           Version: D2
          Hardware: x86
                OS: Windows
            Status: NEW
          Keywords: ImportC
          Severity: enhancement
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: maxsamukha at gmail.com

Test case 1:

enum _POOL_TYPE;

enum _POOL_TYPE {
    NonPagedPool,
    NonPagedPoolExecute = NonPagedPool
};

Error: `enum _POOL_TYPE` has no members


Test case 2:

typedef enum _POOL_TYPE POOL_TYPE;

enum _POOL_TYPE {
    NonPagedPool,
    NonPagedPoolExecute = NonPagedPool
};

Error: undefined identifier `NonPagedPool`

Forward enum declarations are forbidden by C11. However, they are used in
Windows SDK headers, and there are no workarounds that wouldn't involve
additional preprocessing.

--


More information about the Digitalmars-d-bugs mailing list