public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/36859] New: Caller/callee mismatch for vararg on stack
@ 2008-07-16 21:25 hjl dot tools at gmail dot com
2008-07-17 5:26 ` [Bug middle-end/36859] " hjl dot tools at gmail dot com
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: hjl dot tools at gmail dot com @ 2008-07-16 21:25 UTC (permalink / raw)
To: gcc-bugs
locate_and_pad_parm never align parameters on stack for
callers. It only caps parameter alignment to
PREFERRED_STACK_BOUNDARY. But std_gimplify_va_arg_expr
tries to align stack for callee:
/* va_list pointer is aligned to PARM_BOUNDARY. If argument actually
requires greater alignment, we must perform dynamic alignment. */
if (boundary > align
&& !integer_zerop (TYPE_SIZE (type)))
{
t = build2 (MODIFY_EXPR, TREE_TYPE (valist), valist_tmp,
fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (valist),
valist_tmp, size_int (boundary - 1)));
gimplify_and_add (t, pre_p);
t = fold_convert (sizetype, valist_tmp);
t = build2 (MODIFY_EXPR, TREE_TYPE (valist), valist_tmp,
fold_convert (TREE_TYPE (valist),
fold_build2 (BIT_AND_EXPR, sizetype, t,
size_int (-boundary))));
gimplify_and_add (t, pre_p);
}
else
boundary = align;
We have a mismatch between caller and callee. I have a testcase for ia32.
But it depends on PR 36858.
--
Summary: Caller/callee mismatch for vararg on stack
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl dot tools at gmail dot com
BugsThisDependsOn: 36858
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36859
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug middle-end/36859] Caller/callee mismatch for vararg on stack
2008-07-16 21:25 [Bug middle-end/36859] New: Caller/callee mismatch for vararg on stack hjl dot tools at gmail dot com
@ 2008-07-17 5:26 ` hjl dot tools at gmail dot com
2008-07-18 15:49 ` hjl at gcc dot gnu dot org
2008-07-27 19:09 ` hjl dot tools at gmail dot com
2 siblings, 0 replies; 4+ messages in thread
From: hjl dot tools at gmail dot com @ 2008-07-17 5:26 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from hjl dot tools at gmail dot com 2008-07-17 05:25 -------
A patch is posted at
http://gcc.gnu.org/ml/gcc-patches/2008-07/msg01247.html
--
hjl dot tools at gmail dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
URL| |http://gcc.gnu.org/ml/gcc-
| |patches/2008-
| |07/msg01247.html
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36859
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug middle-end/36859] Caller/callee mismatch for vararg on stack
2008-07-16 21:25 [Bug middle-end/36859] New: Caller/callee mismatch for vararg on stack hjl dot tools at gmail dot com
2008-07-17 5:26 ` [Bug middle-end/36859] " hjl dot tools at gmail dot com
@ 2008-07-18 15:49 ` hjl at gcc dot gnu dot org
2008-07-27 19:09 ` hjl dot tools at gmail dot com
2 siblings, 0 replies; 4+ messages in thread
From: hjl at gcc dot gnu dot org @ 2008-07-18 15:49 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from hjl at gcc dot gnu dot org 2008-07-18 15:48 -------
Subject: Bug 36859
Author: hjl
Date: Fri Jul 18 15:48:04 2008
New Revision: 137955
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=137955
Log:
gcc/
2008-07-18 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/36859
* builtins.c (std_gimplify_va_arg_expr): Limit alignment to
PREFERRED_STACK_BOUNDARY.
* config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
testsuite/
2008-07-18 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/36859
* gcc.target/i386/vararg-2.c: New.
Added:
trunk/gcc/testsuite/gcc.target/i386/vararg-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/builtins.c
trunk/gcc/config/i386/i386.c
trunk/gcc/testsuite/ChangeLog
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36859
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug middle-end/36859] Caller/callee mismatch for vararg on stack
2008-07-16 21:25 [Bug middle-end/36859] New: Caller/callee mismatch for vararg on stack hjl dot tools at gmail dot com
2008-07-17 5:26 ` [Bug middle-end/36859] " hjl dot tools at gmail dot com
2008-07-18 15:49 ` hjl at gcc dot gnu dot org
@ 2008-07-27 19:09 ` hjl dot tools at gmail dot com
2 siblings, 0 replies; 4+ messages in thread
From: hjl dot tools at gmail dot com @ 2008-07-27 19:09 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from hjl dot tools at gmail dot com 2008-07-27 19:09 -------
Fixed.
--
hjl dot tools at gmail dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36859
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2008-07-27 19:09 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-07-16 21:25 [Bug middle-end/36859] New: Caller/callee mismatch for vararg on stack hjl dot tools at gmail dot com
2008-07-17 5:26 ` [Bug middle-end/36859] " hjl dot tools at gmail dot com
2008-07-18 15:49 ` hjl at gcc dot gnu dot org
2008-07-27 19:09 ` hjl dot tools at gmail dot com
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).