Zig 0.17.0-dev (Split by item)
This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig library itself.
Zig › compiler_rt/ › mulvsi3.zig
mulvsi3.zig
Index
File
Code
const testing = @import ("std" ).testing ;
const mulv = @import ("mulo.zig" );
const symbol = @import ("../compiler_rt.zig" ).symbol ;
comptime {
symbol (&__mulvsi3 , "__mulvsi3" );
}
pub fn __mulvsi3 (a : i32 , b : i32 ) callconv (.c ) i32 {
var overflow : c_int = 0 ;
const sum = mulv .__mulosi4 (a , b , &overflow );
if (overflow != 0 ) @panic ("compiler-rt: integer overflow" );
return sum ;
}
test "mulvsi3" {
// max i32 = 2147483647
// TODO write panic handler for testing panics
// try test__mulvsi3(-2147483648, -1, -1); // panic
// try test__mulvsi3(2147483647, 1, 1); // panic
try testing .expectEqual (-2147483648 , __mulvsi3 (-1073741824 , 2 ));
try testing .expectEqual (2147483646 , __mulvsi3 (1073741823 , 2 ));
}