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: [email protected]
Reporter: [email protected]
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.
--