public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Jakub Jelinek <jakub@fedoraproject.org>
To: git-commits@fedoraproject.org
Subject: [rpms/gcc] rhel-f41-base: 4.5.0-3
Date: Mon, 29 Jun 2026 12:24:53 GMT [thread overview]
Message-ID: <178273589322.1.16738184663902909073.rpms-gcc-b5a20a1d7e94@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/gcc
Branch : rhel-f41-base
Commit : b5a20a1d7e94ecbb42f7349df42adeb9e56147ed
Author : Jakub Jelinek <jakub@fedoraproject.org>
Date : 2010-07-16T10:29:01+00:00
Stats : +192/-0 in 1 file(s)
URL : https://src.fedoraproject.org/rpms/gcc/c/b5a20a1d7e94ecbb42f7349df42adeb9e56147ed?branch=rhel-f41-base
Log:
4.5.0-3
---
diff --git a/gcc45-pr44942.patch b/gcc45-pr44942.patch
new file mode 100644
index 0000000..1fe4b5c
--- /dev/null
+++ b/gcc45-pr44942.patch
@@ -0,0 +1,192 @@
+2010-07-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/44942
+ * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
+ argument to const_tree.
+ * config/i386/i386.c (function_arg_advance): If padding needs to be
+ inserted before argument, increment cum->words by number of padding
+ words as well.
+ (contains_aligned_value_p): Change argument to const_tree.
+ (ix86_function_arg_boundary): Change second argument to const_tree.
+
+ * gcc.c-torture/execute/pr44942.c: New test.
+ * gcc.target/i386/pr44942.c: New test.
+
+--- gcc/config/i386/i386-protos.h.jj 2010-07-13 15:56:31.000000000 +0200
++++ gcc/config/i386/i386-protos.h 2010-07-15 12:45:01.000000000 +0200
+@@ -137,8 +137,8 @@ extern enum machine_mode ix86_fp_compare
+ extern rtx ix86_libcall_value (enum machine_mode);
+ extern bool ix86_function_value_regno_p (int);
+ extern bool ix86_function_arg_regno_p (int);
+-extern int ix86_function_arg_boundary (enum machine_mode, tree);
+-extern bool ix86_sol10_return_in_memory (const_tree,const_tree);
++extern int ix86_function_arg_boundary (enum machine_mode, const_tree);
++extern bool ix86_sol10_return_in_memory (const_tree, const_tree);
+ extern rtx ix86_force_to_memory (enum machine_mode, rtx);
+ extern void ix86_free_from_memory (enum machine_mode);
+ extern enum calling_abi ix86_cfun_abi (void);
+--- gcc/config/i386/i386.c.jj 2010-07-13 15:56:31.000000000 +0200
++++ gcc/config/i386/i386.c 2010-07-15 12:44:31.000000000 +0200
+@@ -6157,9 +6157,8 @@ function_arg_advance_64 (CUMULATIVE_ARGS
+ if (!named && VALID_AVX256_REG_MODE (mode))
+ return;
+
+- if (!examine_argument (mode, type, 0, &int_nregs, &sse_nregs))
+- cum->words += words;
+- else if (sse_nregs <= cum->sse_nregs && int_nregs <= cum->nregs)
++ if (examine_argument (mode, type, 0, &int_nregs, &sse_nregs)
++ && sse_nregs <= cum->sse_nregs && int_nregs <= cum->nregs)
+ {
+ cum->nregs -= int_nregs;
+ cum->sse_nregs -= sse_nregs;
+@@ -6167,7 +6166,11 @@ function_arg_advance_64 (CUMULATIVE_ARGS
+ cum->sse_regno += sse_nregs;
+ }
+ else
+- cum->words += words;
++ {
++ int align = ix86_function_arg_boundary (mode, type) / BITS_PER_WORD;
++ cum->words = (cum->words + align - 1) & ~(align - 1);
++ cum->words += words;
++ }
+ }
+
+ static void
+@@ -6508,7 +6511,7 @@ ix86_pass_by_reference (CUMULATIVE_ARGS
+ /* Return true when TYPE should be 128bit aligned for 32bit argument passing
+ ABI. */
+ static bool
+-contains_aligned_value_p (tree type)
++contains_aligned_value_p (const_tree type)
+ {
+ enum machine_mode mode = TYPE_MODE (type);
+ if (((TARGET_SSE && SSE_REG_MODE_P (mode))
+@@ -6558,7 +6561,7 @@ contains_aligned_value_p (tree type)
+ specified mode and type. */
+
+ int
+-ix86_function_arg_boundary (enum machine_mode mode, tree type)
++ix86_function_arg_boundary (enum machine_mode mode, const_tree type)
+ {
+ int align;
+ if (type)
+--- gcc/testsuite/gcc.c-torture/execute/pr44942.c.jj 2010-07-15 13:41:28.000000000 +0200
++++ gcc/testsuite/gcc.c-torture/execute/pr44942.c 2010-07-15 13:46:40.000000000 +0200
+@@ -0,0 +1,70 @@
++/* PR target/44942 */
++
++#include <stdarg.h>
++
++void
++test1 (int a, int b, int c, int d, int e, int f, int g, long double h, ...)
++{
++ int i;
++ va_list ap;
++
++ va_start (ap, h);
++ i = va_arg (ap, int);
++ if (i != 1234)
++ __builtin_abort ();
++ va_end (ap);
++}
++
++void
++test2 (int a, int b, int c, int d, int e, int f, int g, long double h, int i,
++ long double j, int k, long double l, int m, long double n, ...)
++{
++ int o;
++ va_list ap;
++
++ va_start (ap, n);
++ o = va_arg (ap, int);
++ if (o != 1234)
++ __builtin_abort ();
++ va_end (ap);
++}
++
++void
++test3 (double a, double b, double c, double d, double e, double f,
++ double g, long double h, ...)
++{
++ double i;
++ va_list ap;
++
++ va_start (ap, h);
++ i = va_arg (ap, double);
++ if (i != 1234.0)
++ __builtin_abort ();
++ va_end (ap);
++}
++
++void
++test4 (double a, double b, double c, double d, double e, double f, double g,
++ long double h, double i, long double j, double k, long double l,
++ double m, long double n, ...)
++{
++ double o;
++ va_list ap;
++
++ va_start (ap, n);
++ o = va_arg (ap, double);
++ if (o != 1234.0)
++ __builtin_abort ();
++ va_end (ap);
++}
++
++int
++main ()
++{
++ test1 (0, 0, 0, 0, 0, 0, 0, 0.0L, 1234);
++ test2 (0, 0, 0, 0, 0, 0, 0, 0.0L, 0, 0.0L, 0, 0.0L, 0, 0.0L, 1234);
++ test3 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0L, 1234.0);
++ test4 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0L, 0.0, 0.0L,
++ 0.0, 0.0L, 0.0, 0.0L, 1234.0);
++ return 0;
++}
+--- gcc/testsuite/gcc.target/i386/pr44942.c.jj 2010-07-15 13:52:37.000000000 +0200
++++ gcc/testsuite/gcc.target/i386/pr44942.c 2010-07-15 13:53:24.000000000 +0200
+@@ -0,0 +1,44 @@
++/* PR target/44942 */
++/* { dg-do run { target lp64 } } */
++
++#include <stdarg.h>
++#include <emmintrin.h>
++
++void
++test1 (double a, double b, double c, double d, double e, double f,
++ double g, __m128d h, ...)
++{
++ double i;
++ va_list ap;
++
++ va_start (ap, h);
++ i = va_arg (ap, double);
++ if (i != 1234.0)
++ __builtin_abort ();
++ va_end (ap);
++}
++
++void
++test2 (double a, double b, double c, double d, double e, double f, double g,
++ __m128d h, double i, __m128d j, double k, __m128d l,
++ double m, __m128d n, ...)
++{
++ double o;
++ va_list ap;
++
++ va_start (ap, n);
++ o = va_arg (ap, double);
++ if (o != 1234.0)
++ __builtin_abort ();
++ va_end (ap);
++}
++
++int
++main ()
++{
++ __m128d m = _mm_set1_pd (7.0);
++ test1 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, m, 1234.0);
++ test2 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, m, 0.0, m,
++ 0.0, m, 0.0, m, 1234.0);
++ return 0;
++}
next reply other threads:[~2026-06-29 12:24 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-29 12:24 Jakub Jelinek [this message]
-- strict thread matches above, loose matches on Subject: below --
2026-06-29 12:24 [rpms/gcc] rhel-f41-base: 4.5.0-3 Jakub Jelinek
2026-06-29 12:24 Jakub Jelinek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178273589322.1.16738184663902909073.rpms-gcc-b5a20a1d7e94@fedoraproject.org \
--to=jakub@fedoraproject.org \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox