public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Jakub Jelinek <jakub@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/gcc] rhel-f41-base: 5.0.0-0.18
Date: Mon, 29 Jun 2026 12:26:44 GMT	[thread overview]
Message-ID: <178273600423.1.10754039342655356925.rpms-gcc-0bc646087586@fedoraproject.org> (raw)

A new commit has been pushed.

Repo   : rpms/gcc
Branch : rhel-f41-base
Commit : 0bc6460875865f1a7888b152b07a35cf36a9f563
Author : Jakub Jelinek <jakub@redhat.com>
Date   : 2015-02-27T17:07:43+01:00
Stats  : +406/-1 in 7 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/0bc6460875865f1a7888b152b07a35cf36a9f563?branch=rhel-f41-base

Log:
5.0.0-0.18

---
diff --git a/gcc.spec b/gcc.spec
index 13c4689..9c14996 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -3,7 +3,7 @@
 %global gcc_version 5.0.0
 # Note, gcc_release must be integer, if you want to add suffixes to
 # %{release}, append them after %{gcc_release} on Release: line.
-%global gcc_release 0.17
+%global gcc_release 0.18
 %global _unpackaged_files_terminate_build 0
 %global _performance_build 1
 %global multilib_64_archs sparc64 ppc64 ppc64p7 s390x x86_64
@@ -201,6 +201,12 @@ Patch14: gcc5-libsanitize-aarch64-va42.patch
 Patch15: gcc5-arm-fnsect.patch
 Patch16: gcc5-pr65215.patch
 Patch17: gcc5-pr65216.patch
+Patch18: gcc5-pr64367.patch
+Patch19: gcc5-pr65032.patch
+Patch20: gcc5-pr65040.patch
+Patch21: gcc5-pr65048-test.patch
+Patch22: gcc5-pr65220.patch
+Patch23: gcc5-pr65228.patch
 
 # On ARM EABI systems, we do want -gnueabi to be part of the
 # target triple.
@@ -753,6 +759,12 @@ rm -f libgo/go/crypto/elliptic/p224{,_test}.go
 %patch15 -p0 -b .arm-fnsect~
 %patch16 -p0 -b .pr65215~
 %patch17 -p0 -b .pr65216~
+%patch18 -p0 -b .pr64367~
+%patch19 -p0 -b .pr65032~
+%patch20 -p0 -b .pr65040~
+%patch21 -p0 -b .pr65048-test~
+%patch22 -p0 -b .pr65220~
+%patch23 -p0 -b .pr65228~
 
 %if 0%{?_enable_debug_packages}
 mkdir dwz-wrapper
@@ -2938,6 +2950,13 @@ fi
 %doc rpm.doc/changelogs/libcc1/ChangeLog*
 
 %changelog
+* Fri Feb 27 2015 Jakub Jelinek <jakub@redhat.com> 5.0.0-0.18
+- fix compilation of stdexcept with clang (PR libstdc++-v3/64367)
+- fix scratch handling in LRA rematerialization (PR target/65032)   
+- remove -Wformat-signedness from -Wformat=2 (PR c/65040)
+- improve VLA allocation on i?86/x86_64 (PR rtl-optimization/65220)
+- fix C FE ICE (PR c/65228)
+
 * Thu Feb 26 2015 Jakub Jelinek <jakub@redhat.com> 5.0.0-0.17
 - update from the trunk
   - PRs c++/65202, c++/65209, debug/46102, debug/58315, ipa/65008,

diff --git a/gcc5-pr64367.patch b/gcc5-pr64367.patch
new file mode 100644
index 0000000..0372978
--- /dev/null
+++ b/gcc5-pr64367.patch
@@ -0,0 +1,17 @@
+2015-02-26  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++-v3/64367
+	* include/std/stdexcept (std::__sso_string::_M_bytes): Use
+	sizeof(__str) instead of sizeof(_M_s).
+
+--- libstdc++-v3/include/std/stdexcept
++++ libstdc++-v3/include/std/stdexcept
+@@ -80,7 +80,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ 
+     union {
+       __str _M_s;
+-      char _M_bytes[sizeof(_M_s)];
++      char _M_bytes[sizeof(__str)];
+     };
+ 
+     __sso_string() _GLIBCXX_USE_NOEXCEPT;

diff --git a/gcc5-pr65032.patch b/gcc5-pr65032.patch
new file mode 100644
index 0000000..18fa544
--- /dev/null
+++ b/gcc5-pr65032.patch
@@ -0,0 +1,203 @@
+2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
+
+	PR target/65032
+	* lra-remat.c (update_scratch_ops): New.
+	(do_remat): Call it.
+	* lra.c (lra_register_new_scratch_op): New. Take code from ...
+	(remove_scratches): ... here.
+	* lra-int.h (lra_register_new_scratch_op): New prototype.
+
+	* g++.dg/pr65032.C: New.
+
+--- gcc/lra-int.h	(revision 221061)
++++ gcc/lra-int.h	(revision 221062)
+@@ -321,6 +321,7 @@ extern void lra_create_copy (int, int, i
+ extern lra_copy_t lra_get_copy (int);
+ extern bool lra_former_scratch_p (int);
+ extern bool lra_former_scratch_operand_p (rtx_insn *, int);
++extern void lra_register_new_scratch_op (rtx_insn *, int);
+ 
+ extern int lra_new_regno_start;
+ extern int lra_constraint_new_regno_start;
+--- gcc/lra.c	(revision 221061)
++++ gcc/lra.c	(revision 221062)
+@@ -1907,6 +1907,24 @@ lra_former_scratch_operand_p (rtx_insn *
+ 		       INSN_UID (insn) * MAX_RECOG_OPERANDS + nop) != 0;
+ }
+ 
++/* Register operand NOP in INSN as a former scratch.  It will be
++   changed to scratch back, if it is necessary, at the LRA end.  */
++void
++lra_register_new_scratch_op (rtx_insn *insn, int nop)
++{
++  lra_insn_recog_data_t id = lra_get_insn_recog_data (insn);
++  rtx op = *id->operand_loc[nop];
++  sloc_t loc = XNEW (struct sloc);
++  lra_assert (REG_P (op));
++  loc->insn = insn;
++  loc->nop = nop;
++  scratches.safe_push (loc);
++  bitmap_set_bit (&scratch_bitmap, REGNO (op));
++  bitmap_set_bit (&scratch_operand_bitmap,
++		  INSN_UID (insn) * MAX_RECOG_OPERANDS + nop);
++  add_reg_note (insn, REG_UNUSED, op);
++}
++
+ /* Change scratches onto pseudos and save their location.  */
+ static void
+ remove_scratches (void)
+@@ -1916,7 +1934,6 @@ remove_scratches (void)
+   basic_block bb;
+   rtx_insn *insn;
+   rtx reg;
+-  sloc_t loc;
+   lra_insn_recog_data_t id;
+   struct lra_static_insn_data *static_id;
+ 
+@@ -1938,15 +1955,7 @@ remove_scratches (void)
+ 	      *id->operand_loc[i] = reg
+ 		= lra_create_new_reg (static_id->operand[i].mode,
+ 				      *id->operand_loc[i], ALL_REGS, NULL);
+-	      add_reg_note (insn, REG_UNUSED, reg);
+-	      lra_update_dup (id, i);
+-	      loc = XNEW (struct sloc);
+-	      loc->insn = insn;
+-	      loc->nop = i;
+-	      scratches.safe_push (loc);
+-	      bitmap_set_bit (&scratch_bitmap, REGNO (*id->operand_loc[i]));
+-	      bitmap_set_bit (&scratch_operand_bitmap,
+-			      INSN_UID (insn) * MAX_RECOG_OPERANDS + i);
++	      lra_register_new_scratch_op (insn, i);
+ 	      if (lra_dump_file != NULL)
+ 		fprintf (lra_dump_file,
+ 			 "Removing SCRATCH in insn #%u (nop %d)\n",
+--- gcc/lra-remat.c	(revision 221061)
++++ gcc/lra-remat.c	(revision 221062)
+@@ -1044,6 +1044,29 @@ get_hard_regs (struct lra_insn_reg *reg,
+   return hard_regno;
+ }
+ 
++/* Make copy of and register scratch pseudos in rematerialized insn
++   REMAT_INSN.  */
++static void
++update_scratch_ops (rtx_insn *remat_insn)
++{
++  lra_insn_recog_data_t id = lra_get_insn_recog_data (remat_insn);
++  struct lra_static_insn_data *static_id = id->insn_static_data;
++  for (int i = 0; i < static_id->n_operands; i++)
++    {
++      rtx *loc = id->operand_loc[i];
++      if (! REG_P (*loc))
++	continue;
++      int regno = REGNO (*loc);
++      if (! lra_former_scratch_p (regno))
++	continue;
++      *loc = lra_create_new_reg (GET_MODE (*loc), *loc,
++				 lra_get_allocno_class (regno),
++				 "scratch pseudo copy");
++      lra_register_new_scratch_op (remat_insn, i);
++    }
++  
++}
++
+ /* Insert rematerialization insns using the data-flow data calculated
+    earlier.  */
+ static bool
+@@ -1193,6 +1216,7 @@ do_remat (void)
+ 	      HOST_WIDE_INT sp_offset_change = cand_sp_offset - id->sp_offset;
+ 	      if (sp_offset_change != 0)
+ 		change_sp_offset (remat_insn, sp_offset_change);
++	      update_scratch_ops (remat_insn);
+ 	      lra_process_new_insns (insn, remat_insn, NULL,
+ 				     "Inserting rematerialization insn");
+ 	      lra_set_insn_deleted (insn);
+--- gcc/testsuite/g++.dg/pr65032.C	(revision 0)
++++ gcc/testsuite/g++.dg/pr65032.C	(revision 221062)
+@@ -0,0 +1,87 @@
++// { dg-do compile { target i?86-*-* x86_64-*-* } }
++// { dg-options "-Os -std=c++11 -fPIC -fstack-protector-strong -fomit-frame-pointer" }
++
++#pragma GCC visibility push(hidden)
++#pragma GCC visibility push(default)
++extern "C" {
++  typedef int int64_t __attribute__ ((__mode__ (__DI__)));
++}
++enum class nsresult;
++#pragma GCC visibility pop
++class A
++{
++  float mRawPtr;
++
++ public:
++  A (float *);
++};
++class B
++{
++ public:
++  B (int64_t, int, int);
++};
++typedef struct
++{
++  int channels;
++} vorbis_info;
++template <typename _Key> class C
++{
++ public:
++  typedef int size_type;
++  size_type erase (_Key &);
++};
++
++template <typename _Key> class D
++{
++ public:
++  typedef _Key key_type;
++  typedef C<key_type> _Rep_type;
++  _Rep_type _M_t;
++  typename _Rep_type::size_type
++    erase (key_type p1)
++  {
++    return _M_t.erase (p1);
++  }
++};
++
++class F
++{
++ public:
++  vorbis_info mInfo;
++  D<int *> mVorbisPacketSamples;
++  void ValidateVorbisPacketSamples (int *);
++  int64_t Time (int64_t);
++};
++class G
++{
++  nsresult DecodeVorbis (int *);
++  F *mVorbisState;
++  int64_t mDecodedAudioFrames;
++};
++int fn1 (float ***);
++void fn2 (int);
++void
++F::ValidateVorbisPacketSamples (int *p1)
++{
++  mVorbisPacketSamples.erase (p1);
++}
++
++nsresult
++G::DecodeVorbis (int *p1)
++{
++  float **a;
++  int b;
++  long long c;
++  while ((b = fn1 (&a)))
++    {
++      mVorbisState->ValidateVorbisPacketSamples (p1);
++      A (new float);
++      for (; mVorbisState->mInfo.channels;)
++	{
++	}
++      int64_t d = mVorbisState->Time (c - b);
++      (B (d, b, mVorbisState->mInfo.channels));
++      mDecodedAudioFrames -= b;
++      fn2 (b);
++    }
++}

diff --git a/gcc5-pr65040.patch b/gcc5-pr65040.patch
new file mode 100644
index 0000000..0139688
--- /dev/null
+++ b/gcc5-pr65040.patch
@@ -0,0 +1,43 @@
+2015-02-27  Marek Polacek  <polacek@redhat.com>
+
+	PR c/65040
+	* doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
+	-Wformat-signedness anymore.
+c-family/
+	* c.opt (Wformat-signedness): Don't enable by -Wformat=2.
+testsuite/
+	* gcc.dg/pr65066.c: Use -Wformat -Wformat-signedness and not
+	-Wformat=2.
+
+--- gcc/doc/invoke.texi	(revision 221060)
++++ gcc/doc/invoke.texi	(revision 221061)
+@@ -3631,7 +3631,7 @@ The C standard specifies that zero-lengt
+ @opindex Wformat=2
+ Enable @option{-Wformat} plus additional format checks.  Currently
+ equivalent to @option{-Wformat -Wformat-nonliteral -Wformat-security
+--Wformat-signedness -Wformat-y2k}.
++-Wformat-y2k}.
+ 
+ @item -Wformat-nonliteral
+ @opindex Wformat-nonliteral
+--- gcc/c-family/c.opt	(revision 221060)
++++ gcc/c-family/c.opt	(revision 221061)
+@@ -456,7 +456,7 @@ C ObjC C++ ObjC++ Var(warn_format_securi
+ Warn about possible security problems with format functions
+ 
+ Wformat-signedness
+-C ObjC C++ ObjC++ Var(warn_format_signedness) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
++C ObjC C++ ObjC++ Var(warn_format_signedness) Warning
+ Warn about sign differences with format functions
+ 
+ Wformat-y2k
+--- gcc/testsuite/gcc.dg/pr65066.c	(revision 221060)
++++ gcc/testsuite/gcc.dg/pr65066.c	(revision 221061)
+@@ -1,6 +1,6 @@
+ /* PR c/65066 */
+ /* { dg-do compile } */
+-/* { dg-options "-Wformat=2" } */
++/* { dg-options "-Wformat -Wformat-signedness" } */
+ 
+ extern int sscanf (const char *restrict, const char *restrict, ...);
+ int *a;

diff --git a/gcc5-pr65048-test.patch b/gcc5-pr65048-test.patch
new file mode 100644
index 0000000..137e21f
--- /dev/null
+++ b/gcc5-pr65048-test.patch
@@ -0,0 +1,24 @@
+2015-02-27  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/65048
+	* gcc.dg/tree-ssa/ssa-dom-thread-9.c: Add -std=gnu89 to dg-options.
+	(foo): Use K&R style definition.
+
+--- gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-9.c	(revision 221062)
++++ gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-9.c	(revision 221063)
+@@ -1,12 +1,13 @@
+ /* PR 65048 */
+ /* { dg-do compile } */
+-/* { dg-options "-O3" } */
++/* { dg-options "-O3 -std=gnu89" } */
+ 
+ int a, b, c, d;
+ void fn (void);
+ 
+ int
+-foo (int x)
++foo (x)
++     int x;
+ {
+   switch (x)
+     {

diff --git a/gcc5-pr65220.patch b/gcc5-pr65220.patch
new file mode 100644
index 0000000..2d1aff8
--- /dev/null
+++ b/gcc5-pr65220.patch
@@ -0,0 +1,64 @@
+2015-02-26  Jakub Jelinek  <jakub@redhat.com>
+	    Aldy Hernandez  <aldyh@redhat.com>
+
+	PR rtl-optimization/65220
+	* config/i386/i386.md (*udivmod<mode>4_pow2): New.
+
+--- gcc/config/i386/i386.md	(revision 221063)
++++ gcc/config/i386/i386.md	(revision 221064)
+@@ -7331,6 +7331,32 @@ (define_insn_and_split "*udivmod<mode>4"
+   [(set_attr "type" "multi")
+    (set_attr "mode" "<MODE>")])
+ 
++;; Optimize division or modulo by constant power of 2, if the constant
++;; materializes only after expansion.
++(define_insn_and_split "*udivmod<mode>4_pow2"
++  [(set (match_operand:SWI48 0 "register_operand" "=r")
++	(udiv:SWI48 (match_operand:SWI48 2 "register_operand" "0")
++		    (match_operand:SWI48 3 "const_int_operand" "n")))
++   (set (match_operand:SWI48 1 "register_operand" "=r")
++	(umod:SWI48 (match_dup 2) (match_dup 3)))
++   (clobber (reg:CC FLAGS_REG))]
++  "UINTVAL (operands[3]) - 2 < <MODE_SIZE> * BITS_PER_UNIT
++   && (UINTVAL (operands[3]) & (UINTVAL (operands[3]) - 1)) == 0"
++  "#"
++  "&& reload_completed"
++  [(set (match_dup 1) (match_dup 2))
++   (parallel [(set (match_dup 0) (lshiftrt:<MODE> (match_dup 2) (match_dup 4)))
++	      (clobber (reg:CC FLAGS_REG))])
++   (parallel [(set (match_dup 1) (and:<MODE> (match_dup 1) (match_dup 5)))
++	      (clobber (reg:CC FLAGS_REG))])]
++{
++  int v = exact_log2 (UINTVAL (operands[3]));
++  operands[4] = GEN_INT (v);
++  operands[5] = GEN_INT ((HOST_WIDE_INT_1U << v) - 1);
++}
++  [(set_attr "type" "multi")
++   (set_attr "mode" "<MODE>")])
++
+ (define_insn "*udivmod<mode>4_noext"
+   [(set (match_operand:SWIM248 0 "register_operand" "=a")
+ 	(udiv:SWIM248 (match_operand:SWIM248 2 "register_operand" "0")
+--- gcc/testsuite/gcc.target/i386/pr65520.c	(revision 0)
++++ gcc/testsuite/gcc.target/i386/pr65520.c	(revision 221064)
+@@ -0,0 +1,20 @@
++/* PR target/65520 */
++/* { dg-do compile } */
++/* { dg-options "-O2" } */
++
++int foo (void *);
++
++void
++bar (void)
++{
++  unsigned s = 128;
++  while (1)
++    {
++      unsigned b[s];
++      if (foo (b))
++	break;
++      s *= 2;
++    }
++}
++
++/* { dg-final { scan-assembler-not "div\[^\n\r]*%" } } */

diff --git a/gcc5-pr65228.patch b/gcc5-pr65228.patch
new file mode 100644
index 0000000..e1efc95
--- /dev/null
+++ b/gcc5-pr65228.patch
@@ -0,0 +1,35 @@
+2015-02-27  Marek Polacek  <polacek@redhat.com>
+
+	PR c/65228
+c/
+	* c-decl.c (start_decl): Return NULL_TREE if decl is an error node.
+testsuite/
+	* gcc.dg/pr65228.c: New test.
+
+--- gcc/c/c-decl.c	(revision 221055)
++++ gcc/c/c-decl.c	(revision 221056)
+@@ -4460,8 +4460,8 @@ start_decl (struct c_declarator *declara
+   decl = grokdeclarator (declarator, declspecs,
+ 			 NORMAL, initialized, NULL, &attributes, &expr, NULL,
+ 			 deprecated_state);
+-  if (!decl)
+-    return 0;
++  if (!decl || decl == error_mark_node)
++    return NULL_TREE;
+ 
+   if (expr)
+     add_stmt (fold_convert (void_type_node, expr));
+--- gcc/testsuite/gcc.dg/pr65228.c	(revision 0)
++++ gcc/testsuite/gcc.dg/pr65228.c	(revision 221056)
+@@ -0,0 +1,11 @@
++/* PR c/65228 */
++/* { dg-do compile } */
++/* { dg-options "" } */
++
++__auto_type a = b; /* { dg-error "undeclared" } */
++
++void
++f (void)
++{
++  __auto_type c = d; /* { dg-error "undeclared" } */
++}

                 reply	other threads:[~2026-06-29 12:26 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=178273600423.1.10754039342655356925.rpms-gcc-0bc646087586@fedoraproject.org \
    --to=jakub@redhat.com \
    --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