This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/78444] Wrong prologue stack alignment for implicit dtor on x86_64-darwin*


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

Uroš Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ubizjak at gmail dot com

--- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> ---
For some reason, the expansion of call in llvm::cl::parser<unsigned
int>::~parser() doesn't update x_rtl->preferred_stack_boundary. Putting a
breakpoint at expand_call, we get:

Breakpoint 6, expand_call (exp=0x7ffff0ccaaf0, target=0x0, ignore=1) at
/home/uros/gcc-svn/trunk/gcc/calls.c:3232
3232      rtx_insn *normal_call_insns = NULL;
(gdb) p x_rtl->preferred_stack_boundary
$7 = 64
(gdb) fin
Run till exit from #0  expand_call (exp=0x7ffff0ccaaf0, target=0x0, ignore=1)
at /home/uros/gcc-svn/trunk/gcc/calls.c:3232
expand_expr_real_1 (exp=0x7ffff0ccaaf0, target=0x0, tmode=E_VOIDmode,
modifier=EXPAND_NORMAL, alt_rtl=0x0, 
    inner_reference_p=false) at /home/uros/gcc-svn/trunk/gcc/expr.c:10947
10947         return expand_call (exp, target, ignore);
Value returned is $8 = (rtx_def *) 0x7ffff0b29490
(gdb) p x_rtl->preferred_stack_boundary
$9 = 64

The same for x86_64-linux:

Breakpoint 5, expand_call (exp=0x7ffff0cca690, target=0x0, ignore=1) at
/home/uros/gcc-svn/trunk/gcc/tree.h:3153
3153      if (TREE_CODE (__t) != __c)
(gdb) p x_rtl->preferred_stack_boundary
$12 = 64
(gdb) fin
Run till exit from #0  expand_call (exp=0x7ffff0cca690, target=0x0, ignore=1)
at /home/uros/gcc-svn/trunk/gcc/tree.h:3153
expand_expr_real_1 (exp=0x7ffff0cca690, target=0x0, tmode=E_VOIDmode,
modifier=EXPAND_NORMAL, alt_rtl=0x0, 
    inner_reference_p=false) at /home/uros/gcc-svn/trunk/gcc/expr.c:10947
10947         return expand_call (exp, target, ignore);
Value returned is $13 = (rtx_def *) 0x7ffff0b29490
(gdb) p x_rtl->preferred_stack_boundary
$14 = 128

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]