zig/std/special/compiler_rt
Andrew Kelley 3671582c15 syntax: functions require return type. remove ->
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.
2018-01-25 04:10:11 -05:00
..
aulldiv.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
aullrem.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
comparetf2.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixuint.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunsdfdi_test.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunsdfdi.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunsdfsi_test.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunsdfsi.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunsdfti_test.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunsdfti.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunssfdi_test.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunssfdi.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunssfsi_test.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunssfsi.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunssfti_test.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunssfti.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunstfdi_test.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunstfdi.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunstfsi_test.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunstfsi.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunstfti_test.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunstfti.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
index.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
README.md add compiler-rt fns: udivmodti4, udivti3, umodti3 2017-08-18 16:26:09 -04:00
udivmod.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
udivmoddi4_test.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
udivmoddi4.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
udivmodti4_test.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
udivmodti4.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
udivti3.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
umodti3.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00

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.