在 2019/3/1 上午12:22, Ruslan Garipov 写道:
> That commit does what you've suggested to me to fix build with g++: it
> moves two structure definition out of an anonymous union.  That's what
> I've done already and that's what has "broken" my C compilers on
> Microsoft Windows.  But the commit 'a66e407e' is "lucky" to have those
> two structures (`_LBA` and `_MSF`) having no members of the same name.
> And in my case I have, for example, `_Time2Val`, `_DateTimeVal` and
> `_DateTimeOffsetVal` all having the `bScale` members, which the
> compilers erroneously "inserts" as members into `SSVARIANT` and,
> therefore, fail with error.
> 

... did you mean the members of `struct _LBA {` in the aforementioned
commit would be members of the enclosing `struct _PLAY_CD {`? This seems
the case in C. It looks like we have ended up in a bug there.

> Thus, what about using `#ifdef __cplusplus` guard?
> 

But I think we should try promoting named nested structs and unions (so
they appear in the file scope). At least this works for both C and C++,
providing these names don't conflict with each other.

-- 
Best regards,
LH_Mouse

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to