| ... | ... | @@ -66,9 +66,9 @@ |
| 66 | 66 | #endif |
| 67 | 67 | |
| 68 | 68 | #if defined(__cplusplus) |
| 69 | | #define zig_extern_c extern "C" |
| 69 | #define zig_extern extern "C" |
| 70 | 70 | #else |
| 71 | | #define zig_extern_c |
| 71 | #define zig_extern extern |
| 72 | 72 | #endif |
| 73 | 73 | |
| 74 | 74 | #if zig_has_builtin(debugtrap) |
| ... | ... | @@ -265,8 +265,8 @@ typedef int64_t zig_i64; |
| 265 | 265 | #define zig_compiler_rt_abbrev_f80 xf |
| 266 | 266 | #define zig_compiler_rt_abbrev_f128 tf |
| 267 | 267 | |
| 268 | | zig_extern_c void *memcpy (void *zig_restrict, void const *zig_restrict, zig_usize); |
| 269 | | zig_extern_c void *memset (void *, int, zig_usize); |
| 268 | zig_extern void *memcpy (void *zig_restrict, void const *zig_restrict, zig_usize); |
| 269 | zig_extern void *memset (void *, int, zig_usize); |
| 270 | 270 | |
| 271 | 271 | /* ==================== 8/16/32/64-bit Integer Routines ===================== */ |
| 272 | 272 | |
| ... | ... | @@ -345,7 +345,7 @@ static inline zig_bool zig_addo_u32(zig_u32 *res, zig_u32 lhs, zig_u32 rhs, zig_ |
| 345 | 345 | #endif |
| 346 | 346 | } |
| 347 | 347 | |
| 348 | | zig_extern_c zig_i32 __addosi4(zig_i32 lhs, zig_i32 rhs, zig_c_int *overflow); |
| 348 | zig_extern zig_i32 __addosi4(zig_i32 lhs, zig_i32 rhs, zig_c_int *overflow); |
| 349 | 349 | static inline zig_bool zig_addo_i32(zig_i32 *res, zig_i32 lhs, zig_i32 rhs, zig_u8 bits) { |
| 350 | 350 | #if zig_has_builtin(add_overflow) |
| 351 | 351 | zig_i32 full_res; |
| ... | ... | @@ -371,7 +371,7 @@ static inline zig_bool zig_addo_u64(zig_u64 *res, zig_u64 lhs, zig_u64 rhs, zig_ |
| 371 | 371 | #endif |
| 372 | 372 | } |
| 373 | 373 | |
| 374 | | zig_extern_c zig_i64 __addodi4(zig_i64 lhs, zig_i64 rhs, zig_c_int *overflow); |
| 374 | zig_extern zig_i64 __addodi4(zig_i64 lhs, zig_i64 rhs, zig_c_int *overflow); |
| 375 | 375 | static inline zig_bool zig_addo_i64(zig_i64 *res, zig_i64 lhs, zig_i64 rhs, zig_u8 bits) { |
| 376 | 376 | #if zig_has_builtin(add_overflow) |
| 377 | 377 | zig_i64 full_res; |
| ... | ... | @@ -441,7 +441,7 @@ static inline zig_bool zig_subo_u32(zig_u32 *res, zig_u32 lhs, zig_u32 rhs, zig_ |
| 441 | 441 | #endif |
| 442 | 442 | } |
| 443 | 443 | |
| 444 | | zig_extern_c zig_i32 __subosi4(zig_i32 lhs, zig_i32 rhs, zig_c_int *overflow); |
| 444 | zig_extern zig_i32 __subosi4(zig_i32 lhs, zig_i32 rhs, zig_c_int *overflow); |
| 445 | 445 | static inline zig_bool zig_subo_i32(zig_i32 *res, zig_i32 lhs, zig_i32 rhs, zig_u8 bits) { |
| 446 | 446 | #if zig_has_builtin(sub_overflow) |
| 447 | 447 | zig_i32 full_res; |
| ... | ... | @@ -467,7 +467,7 @@ static inline zig_bool zig_subo_u64(zig_u64 *res, zig_u64 lhs, zig_u64 rhs, zig_ |
| 467 | 467 | #endif |
| 468 | 468 | } |
| 469 | 469 | |
| 470 | | zig_extern_c zig_i64 __subodi4(zig_i64 lhs, zig_i64 rhs, zig_c_int *overflow); |
| 470 | zig_extern zig_i64 __subodi4(zig_i64 lhs, zig_i64 rhs, zig_c_int *overflow); |
| 471 | 471 | static inline zig_bool zig_subo_i64(zig_i64 *res, zig_i64 lhs, zig_i64 rhs, zig_u8 bits) { |
| 472 | 472 | #if zig_has_builtin(sub_overflow) |
| 473 | 473 | zig_i64 full_res; |
| ... | ... | @@ -537,7 +537,7 @@ static inline zig_bool zig_mulo_u32(zig_u32 *res, zig_u32 lhs, zig_u32 rhs, zig_ |
| 537 | 537 | #endif |
| 538 | 538 | } |
| 539 | 539 | |
| 540 | | zig_extern_c zig_i32 __mulosi4(zig_i32 lhs, zig_i32 rhs, zig_c_int *overflow); |
| 540 | zig_extern zig_i32 __mulosi4(zig_i32 lhs, zig_i32 rhs, zig_c_int *overflow); |
| 541 | 541 | static inline zig_bool zig_mulo_i32(zig_i32 *res, zig_i32 lhs, zig_i32 rhs, zig_u8 bits) { |
| 542 | 542 | #if zig_has_builtin(mul_overflow) |
| 543 | 543 | zig_i32 full_res; |
| ... | ... | @@ -563,7 +563,7 @@ static inline zig_bool zig_mulo_u64(zig_u64 *res, zig_u64 lhs, zig_u64 rhs, zig_ |
| 563 | 563 | #endif |
| 564 | 564 | } |
| 565 | 565 | |
| 566 | | zig_extern_c zig_i64 __mulodi4(zig_i64 lhs, zig_i64 rhs, zig_c_int *overflow); |
| 566 | zig_extern zig_i64 __mulodi4(zig_i64 lhs, zig_i64 rhs, zig_c_int *overflow); |
| 567 | 567 | static inline zig_bool zig_mulo_i64(zig_i64 *res, zig_i64 lhs, zig_i64 rhs, zig_u8 bits) { |
| 568 | 568 | #if zig_has_builtin(mul_overflow) |
| 569 | 569 | zig_i64 full_res; |
| ... | ... | @@ -1210,7 +1210,7 @@ static inline zig_bool zig_addo_u128(zig_u128 *res, zig_u128 lhs, zig_u128 rhs, |
| 1210 | 1210 | #endif |
| 1211 | 1211 | } |
| 1212 | 1212 | |
| 1213 | | zig_extern_c zig_i128 __addoti4(zig_i128 lhs, zig_i128 rhs, zig_c_int *overflow); |
| 1213 | zig_extern zig_i128 __addoti4(zig_i128 lhs, zig_i128 rhs, zig_c_int *overflow); |
| 1214 | 1214 | static inline zig_bool zig_addo_i128(zig_i128 *res, zig_i128 lhs, zig_i128 rhs, zig_u8 bits) { |
| 1215 | 1215 | #if zig_has_builtin(add_overflow) |
| 1216 | 1216 | zig_i128 full_res; |
| ... | ... | @@ -1236,7 +1236,7 @@ static inline zig_bool zig_subo_u128(zig_u128 *res, zig_u128 lhs, zig_u128 rhs, |
| 1236 | 1236 | #endif |
| 1237 | 1237 | } |
| 1238 | 1238 | |
| 1239 | | zig_extern_c zig_i128 __suboti4(zig_i128 lhs, zig_i128 rhs, zig_c_int *overflow); |
| 1239 | zig_extern zig_i128 __suboti4(zig_i128 lhs, zig_i128 rhs, zig_c_int *overflow); |
| 1240 | 1240 | static inline zig_bool zig_subo_i128(zig_i128 *res, zig_i128 lhs, zig_i128 rhs, zig_u8 bits) { |
| 1241 | 1241 | #if zig_has_builtin(sub_overflow) |
| 1242 | 1242 | zig_i128 full_res; |
| ... | ... | @@ -1262,7 +1262,7 @@ static inline zig_bool zig_mulo_u128(zig_u128 *res, zig_u128 lhs, zig_u128 rhs, |
| 1262 | 1262 | #endif |
| 1263 | 1263 | } |
| 1264 | 1264 | |
| 1265 | | zig_extern_c zig_i128 __muloti4(zig_i128 lhs, zig_i128 rhs, zig_c_int *overflow); |
| 1265 | zig_extern zig_i128 __muloti4(zig_i128 lhs, zig_i128 rhs, zig_c_int *overflow); |
| 1266 | 1266 | static inline zig_bool zig_mulo_i128(zig_i128 *res, zig_i128 lhs, zig_i128 rhs, zig_u8 bits) { |
| 1267 | 1267 | #if zig_has_builtin(mul_overflow) |
| 1268 | 1268 | zig_i128 full_res; |
| ... | ... | @@ -1552,7 +1552,7 @@ typedef long double zig_c_longdouble; |
| 1552 | 1552 | #define zig_as_special_c_longdouble(sign, name, arg, repr) sign __builtin_##name##l(arg) |
| 1553 | 1553 | |
| 1554 | 1554 | #define zig_convert_builtin(ResType, operation, ArgType, version) \ |
| 1555 | | zig_extern_c zig_##ResType zig_expand_concat(zig_expand_concat(zig_expand_concat(__##operation, \ |
| 1555 | zig_extern zig_##ResType zig_expand_concat(zig_expand_concat(zig_expand_concat(__##operation, \ |
| 1556 | 1556 | zig_compiler_rt_abbrev_##ArgType), zig_compiler_rt_abbrev_##ResType), version)(zig_##ArgType); |
| 1557 | 1557 | zig_convert_builtin(f16, trunc, f32, 2) |
| 1558 | 1558 | zig_convert_builtin(f16, trunc, f64, 2) |
| ... | ... | @@ -1585,7 +1585,7 @@ zig_convert_builtin(f128, extend, f80, 2) |
| 1585 | 1585 | } |
| 1586 | 1586 | |
| 1587 | 1587 | #define zig_float_less_builtin_0(Type, operation) \ |
| 1588 | | zig_extern_c zig_i8 zig_expand_concat(zig_expand_concat(__##operation, \ |
| 1588 | zig_extern zig_i8 zig_expand_concat(zig_expand_concat(__##operation, \ |
| 1589 | 1589 | zig_compiler_rt_abbrev_##Type), 2)(zig_##Type, zig_##Type); \ |
| 1590 | 1590 | static inline zig_i8 zig_##operation##_##Type(zig_##Type lhs, zig_##Type rhs) { \ |
| 1591 | 1591 | return (zig_i8)zig_expand_concat(zig_expand_concat(__##operation, zig_compiler_rt_abbrev_##Type), 2)(lhs, rhs); \ |
| ... | ... | @@ -1603,7 +1603,7 @@ zig_convert_builtin(f128, extend, f80, 2) |
| 1603 | 1603 | } |
| 1604 | 1604 | |
| 1605 | 1605 | #define zig_float_binary_builtin_0(Type, operation, operator) \ |
| 1606 | | zig_extern_c zig_##Type zig_expand_concat(zig_expand_concat(__##operation, \ |
| 1606 | zig_extern zig_##Type zig_expand_concat(zig_expand_concat(__##operation, \ |
| 1607 | 1607 | zig_compiler_rt_abbrev_##Type), 3)(zig_##Type, zig_##Type); \ |
| 1608 | 1608 | static inline zig_##Type zig_##operation##_##Type(zig_##Type lhs, zig_##Type rhs) { \ |
| 1609 | 1609 | return zig_expand_concat(zig_expand_concat(__##operation, zig_compiler_rt_abbrev_##Type), 3)(lhs, rhs); \ |
| ... | ... | @@ -1638,24 +1638,24 @@ zig_convert_builtin(f128, extend, f80, 2) |
| 1638 | 1638 | zig_expand_concat(zig_float_binary_builtin_, zig_has_##Type)(Type, sub, -) \ |
| 1639 | 1639 | zig_expand_concat(zig_float_binary_builtin_, zig_has_##Type)(Type, mul, *) \ |
| 1640 | 1640 | zig_expand_concat(zig_float_binary_builtin_, zig_has_##Type)(Type, div, /) \ |
| 1641 | | zig_extern_c zig_##Type zig_libc_name_##Type(sqrt)(zig_##Type); \ |
| 1642 | | zig_extern_c zig_##Type zig_libc_name_##Type(sin)(zig_##Type); \ |
| 1643 | | zig_extern_c zig_##Type zig_libc_name_##Type(cos)(zig_##Type); \ |
| 1644 | | zig_extern_c zig_##Type zig_libc_name_##Type(tan)(zig_##Type); \ |
| 1645 | | zig_extern_c zig_##Type zig_libc_name_##Type(exp)(zig_##Type); \ |
| 1646 | | zig_extern_c zig_##Type zig_libc_name_##Type(exp2)(zig_##Type); \ |
| 1647 | | zig_extern_c zig_##Type zig_libc_name_##Type(log)(zig_##Type); \ |
| 1648 | | zig_extern_c zig_##Type zig_libc_name_##Type(log2)(zig_##Type); \ |
| 1649 | | zig_extern_c zig_##Type zig_libc_name_##Type(log10)(zig_##Type); \ |
| 1650 | | zig_extern_c zig_##Type zig_libc_name_##Type(fabs)(zig_##Type); \ |
| 1651 | | zig_extern_c zig_##Type zig_libc_name_##Type(floor)(zig_##Type); \ |
| 1652 | | zig_extern_c zig_##Type zig_libc_name_##Type(ceil)(zig_##Type); \ |
| 1653 | | zig_extern_c zig_##Type zig_libc_name_##Type(round)(zig_##Type); \ |
| 1654 | | zig_extern_c zig_##Type zig_libc_name_##Type(trunc)(zig_##Type); \ |
| 1655 | | zig_extern_c zig_##Type zig_libc_name_##Type(fmod)(zig_##Type, zig_##Type); \ |
| 1656 | | zig_extern_c zig_##Type zig_libc_name_##Type(fmin)(zig_##Type, zig_##Type); \ |
| 1657 | | zig_extern_c zig_##Type zig_libc_name_##Type(fmax)(zig_##Type, zig_##Type); \ |
| 1658 | | zig_extern_c zig_##Type zig_libc_name_##Type(fma)(zig_##Type, zig_##Type, zig_##Type); \ |
| 1641 | zig_extern zig_##Type zig_libc_name_##Type(sqrt)(zig_##Type); \ |
| 1642 | zig_extern zig_##Type zig_libc_name_##Type(sin)(zig_##Type); \ |
| 1643 | zig_extern zig_##Type zig_libc_name_##Type(cos)(zig_##Type); \ |
| 1644 | zig_extern zig_##Type zig_libc_name_##Type(tan)(zig_##Type); \ |
| 1645 | zig_extern zig_##Type zig_libc_name_##Type(exp)(zig_##Type); \ |
| 1646 | zig_extern zig_##Type zig_libc_name_##Type(exp2)(zig_##Type); \ |
| 1647 | zig_extern zig_##Type zig_libc_name_##Type(log)(zig_##Type); \ |
| 1648 | zig_extern zig_##Type zig_libc_name_##Type(log2)(zig_##Type); \ |
| 1649 | zig_extern zig_##Type zig_libc_name_##Type(log10)(zig_##Type); \ |
| 1650 | zig_extern zig_##Type zig_libc_name_##Type(fabs)(zig_##Type); \ |
| 1651 | zig_extern zig_##Type zig_libc_name_##Type(floor)(zig_##Type); \ |
| 1652 | zig_extern zig_##Type zig_libc_name_##Type(ceil)(zig_##Type); \ |
| 1653 | zig_extern zig_##Type zig_libc_name_##Type(round)(zig_##Type); \ |
| 1654 | zig_extern zig_##Type zig_libc_name_##Type(trunc)(zig_##Type); \ |
| 1655 | zig_extern zig_##Type zig_libc_name_##Type(fmod)(zig_##Type, zig_##Type); \ |
| 1656 | zig_extern zig_##Type zig_libc_name_##Type(fmin)(zig_##Type, zig_##Type); \ |
| 1657 | zig_extern zig_##Type zig_libc_name_##Type(fmax)(zig_##Type, zig_##Type); \ |
| 1658 | zig_extern zig_##Type zig_libc_name_##Type(fma)(zig_##Type, zig_##Type, zig_##Type); \ |
| 1659 | 1659 | \ |
| 1660 | 1660 | static inline zig_##Type zig_div_trunc_##Type(zig_##Type lhs, zig_##Type rhs) { \ |
| 1661 | 1661 | return zig_libc_name_##Type(trunc)(zig_div_##Type(lhs, rhs)); \ |