www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 23143] New: ImportC: forward enum declarations result in

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 puremagic.com
          Reporter: maxsamukha 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.

--
May 27 2022