fix types for __multi3
diff --git a/sdk/lib/crt/arith64.c b/sdk/lib/crt/arith64.c index 8cd8a14..611602c 100644 --- a/sdk/lib/crt/arith64.c +++ b/sdk/lib/crt/arith64.c
@@ -55,7 +55,7 @@ int __cheri_libcall __popcountdi2(arith64_u64 a) __asm__("__popcountdi2"); arith64_u64 __cheri_libcall __udivdi3(arith64_u64 a, arith64_u64 b) __asm__("__udivdi3"); arith64_u64 __cheri_libcall __umoddi3(arith64_u64 a, arith64_u64 b) __asm__("__umoddi3"); -arith64_u64 __cheri_libcall __multi3(arith64_u64 a, arith64_u64 b) __asm__("__multi3"); +arith64_s64 __cheri_libcall __multi3(arith64_s64 a, arith64_s64 b) __asm__("__multi3"); typedef union { @@ -304,7 +304,7 @@ } // Return the product of a and b -[[clang::no_builtin]] arith64_u64 __multi3(arith64_u64 a, arith64_u64 b) +[[clang::no_builtin]] arith64_s64 __multi3(arith64_s64 a, arith64_s64 b) { return a * b; } \ No newline at end of file