Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

And apparently worked the last 28 or so years on loads of other machines (I think the question would be where doesn't curl run)?


Casting function pointers like this can break Emscripten [1]. In libxml2, I fixed all these issues 7 years ago. It can be painful, but "it worked for 28 years" is not an excuse.

[1] https://emscripten.org/docs/porting/guidelines/function_poin...


I believe AIX C++ name mangling includes function argument type information (with CV qualifiers!) so this is a real-world case where this does actually break. I suspect curl does not compile with the C++ compiler though.


So does the Itanium ABI (which is what most people would think of as the normal/standard/usual C++ ABI):

  $ c++filt
  _Z1fPFvPcE
  f(void (*)(char*))
But I'm struggling to understand how this would cause things to break.


I guess only if you directly expose C++ APIs in DLLs, which is a bad idea anyway.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: