[Bug c/110737] GCC: internal compiler error: Segmentation fault when processing __builtin_isinf and _Atomic long double together
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jul 19 20:42:13 GMT 2023
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110737
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
7137 /* TARGET_EXPR temps aren't part of the enclosing block, so add
it
7138 to the temps list. Handle also variable length TARGET_EXPRs.
*/
7139 if (!poly_int_tree_p (DECL_SIZE (temp)))
7140 {
7141 if (!TYPE_SIZES_GIMPLIFIED (TREE_TYPE (temp)))
7142 gimplify_type_sizes (TREE_TYPE (temp), &init_pre_p);
7143 /* FIXME: this is correct only when the size of the type does
(gdb) p temp
$1 = (tree) 0x7ffff760d3f0
(gdb) p debug_tree(temp)
<var_decl 0x7ffff760d3f0 D.4640
type <void_type 0x7ffff761e0a8 void VOID
align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff761e0a8
pointer_to_this <pointer_type 0x7ffff761e150>>
addressable used ignored read VOID t5.c:4:1
(slightly different compiler)
TARGET_EXPR <D.2762, f ()>;
TARGET_EXPR <D.2763, (void) (D.2763 = VIEW_CONVERT_EXPR<long
double>(__atomic_load_16 ((const volatile void *) &c, 5)))>;
TARGET_EXPR <D.2768, __builtin_ia32_fnstenv ((void *) &D.2768)>;,
__builtin_ia32_fnclex ();;, TARGET_EXPR <D.2770, __builtin_ia32_stmxcsr ()>;,
TARGET_EXPR <D.2771, (D.2770 | 8064) & 4294967232>;;, __builtin_ia32_ldmxcsr
(D.2771);;
if (__atomic_compare_exchange_16 ((volatile void *) &c, (void *) &D.2763,
VIEW_CONVERT_EXPR<__int128 unsigned>(D.2764), 0, 5, 5))
Note for C++ front-end, it uses error_mark_node for here rather than a void
type for D.2762 ( D.4640)
More information about the Gcc-bugs
mailing list