3671582c15
The purpose of this is: * Only one way to do things * Changing a function with void return type to return a possible error becomes a 1 character change, subtly encouraging people to use errors. See #632 Here are some imperfect sed commands for performing this update: remove arrow: ``` sed -i 's/\(\bfn\b.*\)-> /\1/g' $(find . -name "*.zig") ``` add void: ``` sed -i 's/\(\bfn\b.*\))\s*{/\1) void {/g' $(find ../ -name "*.zig") ``` Some cleanup may be necessary, but this should do the bulk of the work. |
||
---|---|---|
.. | ||
README.md | ||
aulldiv.zig | ||
aullrem.zig | ||
comparetf2.zig | ||
fixuint.zig | ||
fixunsdfdi.zig | ||
fixunsdfdi_test.zig | ||
fixunsdfsi.zig | ||
fixunsdfsi_test.zig | ||
fixunsdfti.zig | ||
fixunsdfti_test.zig | ||
fixunssfdi.zig | ||
fixunssfdi_test.zig | ||
fixunssfsi.zig | ||
fixunssfsi_test.zig | ||
fixunssfti.zig | ||
fixunssfti_test.zig | ||
fixunstfdi.zig | ||
fixunstfdi_test.zig | ||
fixunstfsi.zig | ||
fixunstfsi_test.zig | ||
fixunstfti.zig | ||
fixunstfti_test.zig | ||
index.zig | ||
udivmod.zig | ||
udivmoddi4.zig | ||
udivmoddi4_test.zig | ||
udivmodti4.zig | ||
udivmodti4_test.zig | ||
udivti3.zig | ||
umodti3.zig |
README.md
This compiler-rt library is ported from LLVM.
It's needed because LLVM emits library calls to compiler-rt when hardware lacks functionality, for example, 64-bit integer multiplication on 32-bit x86.
This library is automatically built as-needed for the compilation target and then statically linked and therefore is a transparent dependency for the programmer.
Any bugs should be solved by trying to duplicate the bug upstream.
- If the bug exists upstream, get it fixed with the LLVM team and then port the fix downstream to Zig.
- If the bug only exists in Zig, something went wrong porting the code, and you can run the C code and Zig code side by side in a debugger to figure out what's happening differently.