On 7/5/22 05:28, Jacek Caban (@jacek) wrote:
Jacek Caban (@jacek) commented about dlls/ntdll/large_int.c:
return udivmod(a, b, NULL);
}
+LONGLONG __regs__allshl( LONGLONG a, unsigned char b ) +{
- return a << b;
It's a preexisting problem, but I think that doing this entirely in assembly would be safer. _allshl is an internal compiler function and a compiler may implement this statement by emitting _allshl function call here. GCC doesn't do that, because it emits calls to libgcc instead, but clang in msvc mode is free to do so.
I've attempted to address this by adding a patch to use 32-bit arithmetic instead.