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