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: nob...@puremagic.com
          Reporter: maxsamu...@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.

--

Reply via email to