aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2007-05-18 21:35:12 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2007-05-18 14:35:12 -0700
commitf8024378a1f9796ced6f9ffe4ccf3725ca7fc40f (patch)
tree0191c6562afef2322869387aaa5c0ca5c176153a /gcc
parent8b5fb3a36f12edc290b5a2c90db551d406df4edf (diff)
downloadgcc-f8024378a1f9796ced6f9ffe4ccf3725ca7fc40f.zip
gcc-f8024378a1f9796ced6f9ffe4ccf3725ca7fc40f.tar.gz
gcc-f8024378a1f9796ced6f9ffe4ccf3725ca7fc40f.tar.bz2
re PR target/31989 (Gcc miscompiles C/C++ on Linux/x86-64)
2007-05-18 H.J. Lu <hongjiu.lu@intel.com> PR target/31989 PR target/31681 PR target/31666 * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to true if function has no argument. From-SVN: r124835
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/i386/i386.c5
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 630e06d..6033a60 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2007-05-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/31989
+ PR target/31681
+ PR target/31666
+ * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to
+ true if function has no argument.
+
2007-05-18 DJ Delorie <dj@redhat.com>
* config/mips/mips.c (mips_offset_within_alignment_p): New.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 3c9445a..1bea8d7 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -3051,7 +3051,10 @@ init_cumulative_args (CUMULATIVE_ARGS *cum, /* Argument info to initialize */
cum->mmx_nregs = MMX_REGPARM_MAX;
cum->warn_sse = true;
cum->warn_mmx = true;
- cum->maybe_vaarg = (fntype ? type_has_variadic_args_p (fntype) : !libname);
+ cum->maybe_vaarg = (fntype
+ ? (!TYPE_ARG_TYPES (fntype)
+ || type_has_variadic_args_p (fntype))
+ : !libname);
if (!TARGET_64BIT)
{