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)

Reply via email to