https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120839

--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> ---
crtl->parm_stack_boundary == 128 looks odd:

(gdb) list
2612         stack.  */
2613      if (!in_regs && crtl->parm_stack_boundary < data->locate.boundary)
2614        crtl->parm_stack_boundary = data->locate.boundary;
2615    
2616      /* Adjust offsets to include the pretend args.  */
2617      pretend_bytes = all->extra_pretend_bytes - pretend_bytes;
2618      data->locate.slot_offset.constant += pretend_bytes;
2619      data->locate.offset.constant += pretend_bytes;
2620    
2621      data->entry_parm = entry_parm;
(gdb) call debug_tree (data->arg->type)
 <record_type 0x7fffe99cec78 c sizes-gimplified BLK
    size <integer_cst 0x7fffe98242d0 type <integer_type 0x7fffe98220a8
bitsizetype> constant 256>
    unit-size <integer_cst 0x7fffe98243a8 type <integer_type 0x7fffe9822000
sizetype> constant 32>
    user align:256 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7fffe99cebd0
    fields <field_decl 0x7fffe98318c0 a
        type <real_type 0x7fffe982a3f0 long double sizes-gimplified XF
            size <integer_cst 0x7fffe9802fa8 constant 128>
            unit-size <integer_cst 0x7fffe9802fc0 constant 16>
            align:128 warn_if_not_align:0 symtab:0 alias-set 1 canonical-type
0x7fffe982a3f0 precision:80
            pointer_to_this <pointer_type 0x7fffe982aa80>>
        XF x.c:2:15 size <integer_cst 0x7fffe9802fa8 128> unit-size
<integer_cst 0x7fffe9802fc0 16>
        align:128 warn_if_not_align:0 offset_align 128 decl_not_flexarray: 1
        offset <integer_cst 0x7fffe9802f90 constant 0>
        bit-offset <integer_cst 0x7fffe9802fd8 constant 0> context <record_type
0x7fffe99cebd0>
        chain <field_decl 0x7fffe9831960 b type <real_type 0x7fffe982a3f0 long
double>
            XF x.c:3:15 size <integer_cst 0x7fffe9802fa8 128> unit-size
<integer_cst 0x7fffe9802fc0 16>
            align:128 warn_if_not_align:0 offset_align 128 decl_not_flexarray:
1 offset <integer_cst 0x7fffe9802fc0 16> bit-offset <integer_cst 0x7fffe9802fd8
0> context <record_type 0x7fffe99cebd0>>>
    pointer_to_this <pointer_type 0x7fffe99ce738>>
(gdb) p data->locate.boundary
$9 = 128
^^^^^^^^ Shouldn't it be 256?
(gdb)

Reply via email to