-
Notifications
You must be signed in to change notification settings - Fork 122
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Various enums have the incorrect underlying type making certain functions un-linkable and un-callable #1221
Comments
Similar issue in #1213. It has a counter case of a field being moved from uint to byte because the enum values are byte sized. Would this change fail the suggested validation? |
Yes. |
If nothing else, we should have a test here that validates that the transformation to enum didn't change the size of any parameters in the process. |
I have code that is supposed to be checking for this, but there was a problem that was keeping it from working on parameters (was working only for fields). |
Suspect this is also related to |
These all looks like win32metadata bugs where the signatures are improperly declared, mixing 32 bit and 64 bit integer types. For example, the win32metadata uses enums like
ASC_REQ_FLAGS
instead of unsigned 32 bit parameters but the enum's underlying type is an unsigned 64 bit integer. Same forISC_REQ_FLAGS
. This then throws off the stdcall stack size calculation and of course makes these functions uncallable.I wish the win32metadata could just validate this against the lib files in the SDK using dumpbin.
I'll create a win32metadata issue for this.
Originally posted by @kennykerr in microsoft/windows-rs#1999 (comment)
The text was updated successfully, but these errors were encountered: