LADSoft / OrangeC

OrangeC Compiler And Tool Chain
http://ladsoft.tripod.com/orange_c_compiler.html
Other
292 stars 39 forks source link

Support for `_set_thread_local_invalid_parameter_handler`? #944

Open johnsonjh opened 1 year ago

johnsonjh commented 1 year ago

Is it possible to support _set_thread_local_invalid_parameter_handler?

LADSoft commented 1 year ago

I will have to see what it does... give me a day or two on this...

johnsonjh commented 1 year ago

No rush - consider this a low-priority request. There are details at https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/set-invalid-parameter-handler-set-thread-local-invalid-parameter-handler?view=msvc-170 and links to some of the related functions (the _get… function, and the non-thread-local variants, etc.)

It seems (if I understand https://github.com/MicrosoftDocs/cpp-docs/blob/main/docs/c-runtime-library/reference/set-invalid-parameter-handler-set-thread-local-invalid-parameter-handler.md correctly) that this function is available in classic MSVCRT as well as UCRT, so hopefully it's simple.

LADSoft commented 1 year ago

adding this function itself is easy, however, adding the functionality that it needs cuts across a lot of other runtime functions so it becomes somewhat involved. I have to research which functions are affected. If it affects things like strlen() or memcpy() as well I may only be able to do a partial implementation for now, as we are going to be rewriting a lot of the assembly language code to make it more portable, when we start supporting for example the x64 processor. That said, I'm trying to get #344 and #168 done so I can have a release to support #603, so this is going to be somewhat delayed...