https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122087
Bug ID: 122087
Summary: internal compiler error: in build_real, at
tree.cc:2390
Product: gcc
Version: 13.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: qingren2hxb at gmail dot com
Target Milestone: ---
Created attachment 62461
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=62461&action=edit
bug report by using -freport-bug
Input:
#include <stdio.h>
#include <math.h>
int main() {
_Decimal32 d32 = 0.0DD;
_Decimal64 d64 = 0.0DD;
_Decimal128 d128 = 0.0DD;
if (__builtin_isinf(d32)) {
printf("d32 is inf\n");
} else {
printf("d32 is not inf\n");
}
if (__builtin_isfinite(d64)) {
printf("d64 is finite\n");
} else {
printf("d64 is not finite\n");
}
if (__builtin_isnormal(d128)) {
printf("d128 is normal\n");
} else {
printf("d128 is not normal\n");
}
return 0;
}
Ouput:
$ gcc -
test.c:10:5: internal compiler error: in build_real, at tree.cc:2390
10 | if (__builtin_isinf(d32)) {
| ^~
0x230253b build_real(tree_node*, real_value)
/workspace/gcc/gcc/tree.cc:2390
0xfc566f fold_builtin_interclass_mathfn
/workspace/gcc/gcc/builtins.cc:9115
0xfc9ca4 fold_builtin_1
/workspace/gcc/gcc/builtins.cc:9740
0xfcaafb fold_builtin_n
/workspace/gcc/gcc/builtins.cc:9946
0xfcb8dd fold_builtin_call_array(unsigned int, tree_node*, tree_node*, int,
tree_node**)
/workspace/gcc/gcc/builtins.cc:10085
0x13d8ca3 fold_build_call_array_loc(unsigned int, tree_node*, tree_node*, int,
tree_node**)
/workspace/gcc/gcc/fold-const.cc:13956
0xcd1a83 build_function_call_vec(unsigned int, vec<unsigned int, va_heap,
vl_ptr>, tree_node*, vec<tree_node*, va_gc, vl_embed>*, vec<tree_node*, va_gc,
vl_embed>*, tree_node*)
/workspace/gcc/gcc/c/c-typeck.cc:3322
0xcd2494 c_build_function_call_vec(unsigned int, vec<unsigned int, va_heap,
vl_ptr> const&, tree_node*, vec<tree_node*, va_gc, vl_embed>*, vec<tree_node*,
va_gc, vl_embed>*)
/workspace/gcc/gcc/c/c-typeck.cc:3377
0xd774bb c_parser_postfix_expression_after_primary
/workspace/gcc/gcc/c/c-parser.cc:11242
0xd75020 c_parser_postfix_expression
/workspace/gcc/gcc/c/c-parser.cc:10849
0xd68bbf c_parser_unary_expression
/workspace/gcc/gcc/c/c-parser.cc:8837
0xd674d8 c_parser_cast_expression
/workspace/gcc/gcc/c/c-parser.cc:8675
0xd644a0 c_parser_binary_expression
/workspace/gcc/gcc/c/c-parser.cc:8443
0xd6350f c_parser_conditional_expression
/workspace/gcc/gcc/c/c-parser.cc:8141
0xd62f72 c_parser_expr_no_commas
/workspace/gcc/gcc/c/c-parser.cc:8055
0xd7814a c_parser_expression
/workspace/gcc/gcc/c/c-parser.cc:11382
0xd7864a c_parser_expression_conv
/workspace/gcc/gcc/c/c-parser.cc:11422
0xd5d229 c_parser_condition
/workspace/gcc/gcc/c/c-parser.cc:6812
0xd5d36d c_parser_paren_condition
/workspace/gcc/gcc/c/c-parser.cc:6832
0xd5de36 c_parser_if_statement
/workspace/gcc/gcc/c/c-parser.cc:7011
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
The compiler crashes with an internal error in build_real()when processing
__builtin_isinf() with a Decimal32 argument.