https://gcc.gnu.org/g:10e202e107d23abb9e1d4363a3f823751abab916
commit r17-5176-g10e202e107d23abb9e1d4363a3f823751abab916 Author: Kewen Lin <[email protected]> Date: Wed Oct 14 01:44:50 2026 +0000 builtins: Complete trigonometric pi-based builtin mappings When adding vector math lib support, I found trigonometric pi-based functions introduced by r16-710-g591d3d02664c7b are missing from macro SEQ_OF_CASE_MATHFN in function mathfn_built_in_2, which caused ICE as hanlder assumes there is a non-null function declaration but actually mathfn_built_in cannot map their combined_fn codes to type-specific builtin declarations. I think this is an oversight, so this patch is to add those trigonometric pi-based builtins to SEQ_OF_CASE_MATHFN, and keep builtin_with_linkage_p in sync as well. gcc/ChangeLog: * builtins.cc (mathfn_built_in_2): Add trigonometric pi-based builtin functions to SEQ_OF_CASE_MATHFN. (builtin_with_linkage_p): Treat trigonometric pi-based builtin functions as library functions and adjust the order. Signed-off-by: Kewen Lin <[email protected]> Diff: --- gcc/builtins.cc | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/gcc/builtins.cc b/gcc/builtins.cc index e31947bfed6d..3127e0e82a1c 100644 --- a/gcc/builtins.cc +++ b/gcc/builtins.cc @@ -1976,17 +1976,22 @@ mathfn_built_in_2 (tree type, combined_fn fn) #define SEQ_OF_CASE_MATHFN \ CASE_MATHFN_FLOATN (ACOS) \ CASE_MATHFN_FLOATN (ACOSH) \ + CASE_MATHFN_FLOATN (ACOSPI) \ CASE_MATHFN_FLOATN (ASIN) \ CASE_MATHFN_FLOATN (ASINH) \ + CASE_MATHFN_FLOATN (ASINPI) \ CASE_MATHFN_FLOATN (ATAN) \ CASE_MATHFN_FLOATN (ATAN2) \ + CASE_MATHFN_FLOATN (ATAN2PI) \ CASE_MATHFN_FLOATN (ATANH) \ + CASE_MATHFN_FLOATN (ATANPI) \ CASE_MATHFN_FLOATN (CBRT) \ CASE_MATHFN_FLOATN (CEIL) \ CASE_MATHFN (CEXPI) \ CASE_MATHFN_FLOATN (COPYSIGN) \ CASE_MATHFN_FLOATN (COS) \ CASE_MATHFN_FLOATN (COSH) \ + CASE_MATHFN_FLOATN (COSPI) \ CASE_MATHFN (DREM) \ CASE_MATHFN_FLOATN (ERF) \ CASE_MATHFN_FLOATN (ERFC) \ @@ -2054,9 +2059,11 @@ mathfn_built_in_2 (tree type, combined_fn fn) CASE_MATHFN_FLOATN (SIN) \ CASE_MATHFN (SINCOS) \ CASE_MATHFN_FLOATN (SINH) \ + CASE_MATHFN_FLOATN (SINPI) \ CASE_MATHFN_FLOATN (SQRT) \ CASE_MATHFN_FLOATN (TAN) \ CASE_MATHFN_FLOATN (TANH) \ + CASE_MATHFN_FLOATN (TANPI) \ CASE_MATHFN_FLOATN (TGAMMA) \ CASE_MATHFN_FLOATN (TRUNC) \ CASE_MATHFN (Y0) \ @@ -12610,16 +12617,24 @@ builtin_with_linkage_p (tree decl) CASE_FLT_FN_FLOATN_NX (BUILT_IN_ACOS): CASE_FLT_FN (BUILT_IN_ACOSH): CASE_FLT_FN_FLOATN_NX (BUILT_IN_ACOSH): + CASE_FLT_FN (BUILT_IN_ACOSPI): + CASE_FLT_FN_FLOATN_NX (BUILT_IN_ACOSPI): CASE_FLT_FN (BUILT_IN_ASIN): CASE_FLT_FN_FLOATN_NX (BUILT_IN_ASIN): CASE_FLT_FN (BUILT_IN_ASINH): CASE_FLT_FN_FLOATN_NX (BUILT_IN_ASINH): + CASE_FLT_FN (BUILT_IN_ASINPI): + CASE_FLT_FN_FLOATN_NX (BUILT_IN_ASINPI): CASE_FLT_FN (BUILT_IN_ATAN): CASE_FLT_FN_FLOATN_NX (BUILT_IN_ATAN): - CASE_FLT_FN (BUILT_IN_ATANH): - CASE_FLT_FN_FLOATN_NX (BUILT_IN_ATANH): CASE_FLT_FN (BUILT_IN_ATAN2): CASE_FLT_FN_FLOATN_NX (BUILT_IN_ATAN2): + CASE_FLT_FN (BUILT_IN_ATAN2PI): + CASE_FLT_FN_FLOATN_NX (BUILT_IN_ATAN2PI): + CASE_FLT_FN (BUILT_IN_ATANH): + CASE_FLT_FN_FLOATN_NX (BUILT_IN_ATANH): + CASE_FLT_FN (BUILT_IN_ATANPI): + CASE_FLT_FN_FLOATN_NX (BUILT_IN_ATANPI): CASE_FLT_FN (BUILT_IN_CBRT): CASE_FLT_FN_FLOATN_NX (BUILT_IN_CBRT): CASE_FLT_FN (BUILT_IN_CEIL): @@ -12630,6 +12645,8 @@ builtin_with_linkage_p (tree decl) CASE_FLT_FN_FLOATN_NX (BUILT_IN_COS): CASE_FLT_FN (BUILT_IN_COSH): CASE_FLT_FN_FLOATN_NX (BUILT_IN_COSH): + CASE_FLT_FN (BUILT_IN_COSPI): + CASE_FLT_FN_FLOATN_NX (BUILT_IN_COSPI): CASE_FLT_FN (BUILT_IN_ERF): CASE_FLT_FN_FLOATN_NX (BUILT_IN_ERF): CASE_FLT_FN (BUILT_IN_ERFC): @@ -12707,15 +12724,19 @@ builtin_with_linkage_p (tree decl) CASE_FLT_FN_FLOATN_NX (BUILT_IN_SCALBN): CASE_FLT_FN (BUILT_IN_SIN): CASE_FLT_FN_FLOATN_NX (BUILT_IN_SIN): + CASE_FLT_FN (BUILT_IN_SINCOS): CASE_FLT_FN (BUILT_IN_SINH): CASE_FLT_FN_FLOATN_NX (BUILT_IN_SINH): - CASE_FLT_FN (BUILT_IN_SINCOS): + CASE_FLT_FN (BUILT_IN_SINPI): + CASE_FLT_FN_FLOATN_NX (BUILT_IN_SINPI): CASE_FLT_FN (BUILT_IN_SQRT): CASE_FLT_FN_FLOATN_NX (BUILT_IN_SQRT): CASE_FLT_FN (BUILT_IN_TAN): CASE_FLT_FN_FLOATN_NX (BUILT_IN_TAN): CASE_FLT_FN (BUILT_IN_TANH): CASE_FLT_FN_FLOATN_NX (BUILT_IN_TANH): + CASE_FLT_FN (BUILT_IN_TANPI): + CASE_FLT_FN_FLOATN_NX (BUILT_IN_TANPI): CASE_FLT_FN (BUILT_IN_TGAMMA): CASE_FLT_FN_FLOATN_NX (BUILT_IN_TGAMMA): CASE_FLT_FN (BUILT_IN_TRUNC):
