From 8083ef48372307853a7a7a596d3cada35ee81cc1 Mon Sep 17 00:00:00 2001 From: Walter Bright Date: Fri, 21 Jan 2022 17:55:01 -0800 Subject: [PATCH] fix Issue 22535 - ImportC: gcc/clang math intrinsics are rejected --- src/__builtins.d | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/__builtins.d b/src/__builtins.d index cd64881529e..9ed1ad33fcd 100644 --- a/src/__builtins.d +++ b/src/__builtins.d @@ -38,3 +38,23 @@ alias __builtin_va_copy = core.stdc.stdarg.va_copy; /* dmd's ImportC rewrites __builtin_va_arg into an instantiation of va_arg */ alias va_arg = core.stdc.stdarg.va_arg; + +/*********** floating point *************/ + +/* https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html + */ + +double __builtin_inf() { return double.infinity; } +float __builtin_inff() { return float.infinity; } +real __builtin_infl() { return real.infinity; } + +alias __builtin_huge_val = __builtin_inf; +alias __builtin_huge_valf = __builtin_inff; +alias __builtin_huge_vall = __builtin_infl; + +import core.stdc.math; + +alias __builtin_fabs = core.stdc.math.fabs; +alias __builtin_fabsf = core.stdc.math.fabsf; +alias __builtin_fabsl = core.stdc.math.fabsl; +