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
camlidl and void #2815
Comments
Comment author: administrator
The MIDL spec states that "void" is only acceptable in three cases:
camlidl also supports [abstract] void *. I agree camlidl should check
|
Comment author: administrator Behavior conforms to spec, but Microsoft-provided IDL files do not :-) |
Comment author: administrator Xavier Leroy Xavier.Leroy@inria.fr writes:
They do, at least for MIDL :-( The following is from wtypes.idl (MSVC typedef void * PVOID, * LPVOID; Hope to hear from you soon, |
Original bug ID: 411
Reporter: administrator
Status: closed
Resolution: fixed
Priority: normal
Severity: minor
Category: -for CamlIDL use https://github.com/xavierleroy/camlidl/issues
Bug description
Full_Name: Dmitry Bely
Version: 3.01, camlidl cvs 27.06.01
OS: Windows NT 4.0
Submission from: d009.p3.col.ru (195.210.132.9)
camlidl produces incorrect .ml[i] files, if type void* attribute is not
abstract:
[pvoid.idl]
typedef [ref] void* r_PVOID;
typedef [unique] void* u_PVOID;
typedef [ptr] void* p_PVOID;
typedef [abstract] void* a_PVOID;
typedef [ref] void** r_PPVOID;
[end of pvoid.idl]
gives
[pvoid.mli]
(* File generated from void.idl *)
type r_PVOID = void
and u_PVOID = void option
and p_PVOID = void Com.opaque
and a_PVOID
and r_pPVOID = void option
[end of pvoid.mli]
D:\Work\camlidl-test>ocamlc -c void.mli
File "void.mli", line 3, characters 15-19:
Unbound type constructor void
Some IDL declarations made no sense, and we probably should replace pointer
attrubutes with "abstract", generating an appropriate warning, but other(e.g.
"typedef [ref] void** PPVOID;") are correct -- we simply should generate the
correct code.
The text was updated successfully, but these errors were encountered: