Forward enum declarations are generally fine with compilers and we use them a lot in winrt headers. However, it causes warnings on clang in MSVC mode. I guess it's handled differently there because, just like the actual MSVC, enums may have different type (signed or unsigned int) depending on its values. Still, other than emitting the warning, the compiler handles it just fine.
From: Jacek Caban jacek@codeweavers.com
--- configure.ac | 1 + 1 file changed, 1 insertion(+)
diff --git a/configure.ac b/configure.ac index 3b6a590a6cd..fd1a58b9170 100644 --- a/configure.ac +++ b/configure.ac @@ -960,6 +960,7 @@ This is an error since --enable-archs=$wine_arch was requested.])]) WINE_TRY_PE_CFLAGS([-Winit-self]) WINE_TRY_PE_CFLAGS([-Wpacked-not-aligned],[AS_VAR_APPEND(${wine_arch}_EXTRACFLAGS,[" -Wno-packed-not-aligned"])]) WINE_TRY_PE_CFLAGS([-Wpragma-pack],[AS_VAR_APPEND(${wine_arch}_EXTRACFLAGS,[" -Wno-pragma-pack"])]) + WINE_TRY_PE_CFLAGS([-Wmicrosoft-enum-forward-reference],[AS_VAR_APPEND(${wine_arch}_EXTRACFLAGS,[" -Wno-microsoft-enum-forward-reference"])]) WINE_TRY_PE_CFLAGS([-Wshift-overflow=2]) WINE_TRY_PE_CFLAGS([-Wstrict-prototypes]) WINE_TRY_PE_CFLAGS([-Wtype-limits])