public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/gcc] rhel-f41-base: 6.0.0-0.12
@ 2026-06-29 12:27 Jakub Jelinek
0 siblings, 0 replies; only message in thread
From: Jakub Jelinek @ 2026-06-29 12:27 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/gcc
Branch : rhel-f41-base
Commit : 8a240523f5a236ed63f7c9de0ec188677a4a238a
Author : Jakub Jelinek <jakub@redhat.com>
Date : 2016-02-19T22:34:10+01:00
Stats : +26/-589 in 8 file(s)
URL : https://src.fedoraproject.org/rpms/gcc/c/8a240523f5a236ed63f7c9de0ec188677a4a238a?branch=rhel-f41-base
Log:
6.0.0-0.12
---
diff --git a/.gitignore b/.gitignore
index b6d2915..ff49246 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1 @@
-/gcc-6.0.0-20160127.tar.bz2
-/gcc-6.0.0-20160128.tar.bz2
-/gcc-6.0.0-20160129.tar.bz2
-/gcc-6.0.0-20160201.tar.bz2
-/gcc-6.0.0-20160205.tar.bz2
-/gcc-6.0.0-20160212.tar.bz2
-/gcc-gnat-6.0.0-0.7.s390x.tar.bz2
+/gcc-6.0.0-20160219.tar.bz2
diff --git a/gcc.spec b/gcc.spec
index e88562a..66b3c02 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,15 +1,15 @@
-%global DATE 20160212
-%global SVNREV 233372
+%global DATE 20160219
+%global SVNREV 233570
%global gcc_version 6.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.11.1
+%global gcc_release 0.12
%global _unpackaged_files_terminate_build 0
%global _performance_build 1
# Hardening slows the compiler way too much.
%undefine _hardened_build
%global multilib_64_archs sparc64 ppc64 ppc64p7 s390x x86_64
-%ifarch %{ix86} x86_64 ia64 ppc ppc64 ppc64p7 alpha %{arm} aarch64 s390x
+%ifarch %{ix86} x86_64 ia64 ppc ppc64 ppc64p7 alpha s390x %{arm} aarch64
%global build_ada 1
%else
%global build_ada 0
@@ -96,7 +96,6 @@ Group: Development/Languages
# svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-6-branch@%{SVNREV} gcc-%{version}-%{DATE}
# tar cf - gcc-%{version}-%{DATE} | bzip2 -9 > gcc-%{version}-%{DATE}.tar.bz2
Source0: gcc-%{version}-%{DATE}.tar.bz2
-Source1: gcc-gnat-6.0.0-0.7.s390x.tar.bz2
%global isl_version 0.14
URL: http://gcc.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -139,11 +138,9 @@ BuildRequires: glibc >= 2.3.90-35
BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
%endif
%if %{build_ada}
-%ifnarch s390x
# Ada requires Ada to build
BuildRequires: gcc-gnat >= 3.1, libgnat >= 3.1
%endif
-%endif
%ifarch ia64
BuildRequires: libunwind >= 0.98
%endif
@@ -209,11 +206,6 @@ Patch10: gcc6-no-add-needed.patch
Patch11: gcc6-libgo-p224.patch
Patch12: gcc6-aarch64-async-unw-tables.patch
Patch13: gcc6-libsanitize-aarch64-va42.patch
-Patch14: gcc6-pr65932-cse-revert.patch
-Patch15: gcc6-pr69241.patch
-Patch16: gcc6-pr69658.patch
-Patch17: gcc6-pr10200-revert.patch
-Patch18: gcc6-pr68672.patch
# On ARM EABI systems, we do want -gnueabi to be part of the
# target triple.
@@ -780,11 +772,6 @@ package or when debugging this package.
rm -f libgo/go/crypto/elliptic/p224{,_test}.go
%patch12 -p0 -b .aarch64-async-unw-tables~
%patch13 -p0 -b .libsanitize-aarch64-va42~
-%patch14 -p0 -b .pr65932-cse-revert~
-%patch15 -p0 -b .pr69241~
-%patch16 -p0 -b .pr69658~
-%patch17 -p0 -b .pr10200~
-%patch18 -p0 -b .pr68672~
%if 0%{?_enable_debug_packages}
mkdir dwz-wrapper
@@ -917,12 +904,6 @@ fi
# This test causes fork failures, because it spawns way too many threads
rm -f gcc/testsuite/go.test/test/chan/goroutines.go
-%ifarch s390x
-tar xjf %SOURCE1
-ln -sf /usr/lib/gcc/*/*/* usr/lib/gcc/*/*/
-ln -sf /usr/libexec/gcc/*/*/* usr/libexec/gcc/*/*/
-%endif
-
%build
# Undo the broken autoconf change in recent Fedora versions
@@ -934,12 +915,6 @@ cd obj-%{gcc_target_platform}
CC=gcc
CXX=g++
-%ifarch s390x
- CC=`pwd`/../usr/bin/gcc
- export PATH=`pwd`/../usr/bin:$PATH
- export LD_LIBRARY_PATH=`pwd`/../usr/lib64
-%endif
-
OPT_FLAGS=`echo %{optflags}|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[12]//g'`
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'`
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mfpmath=sse/-mfpmath=sse -msse2/g'`
@@ -3089,6 +3064,26 @@ fi
%doc rpm.doc/changelogs/libcc1/ChangeLog*
%changelog
+* Fri Feb 19 2016 Jakub Jelinek <jakub@redhat.com> 6.0.0-0.12
+- update from the trunk
+ - PRs bootstrap/69816, c++/65985, c++/67767, c++/68585, c++/68679,
+ c++/68890, c++/69753, c++/69797, c++/69842, c++/69850, c++/69851,
+ c/64748, c/69835, driver/69265, driver/69453, driver/69779,
+ fortran/60526, fortran/68746, fortran/69742, libgfortran/69651,
+ libgfortran/69668, libstdc++/69794, lto/67709, lto/69655,
+ middle-end/69553, middle-end/69801, middle-end/69838,
+ middle-end/69854, other/69554, rtl-optimization/69609,
+ rtl-optimization/69648, rtl-optimization/69752,
+ rtl-optimization/69764, rtl-optimization/69771, sanitizer/69863,
+ target/48344, target/62254, target/64345, target/67260, target/67636,
+ target/68973, target/69161, target/69532, target/69610, target/69671,
+ target/69729, target/69820, testsuite/68580, testsuite/68886,
+ testsuite/69573, testsuite/69586, tree-optimization/69586,
+ tree-optimization/69714, tree-optimization/69776,
+ tree-optimization/69783, tree-optimization/69802,
+ tree-optimization/69820
+- enable Ada on s390x
+
* Fri Feb 12 2016 Jakub Jelinek <jakub@redhat.com> 6.0.0-0.11
- update from the trunk
- PRs c++/10200, c++/59627, c++/67835, c++/68726, c++/68926, c++/69098,
diff --git a/gcc6-pr10200-revert.patch b/gcc6-pr10200-revert.patch
deleted file mode 100644
index 29ff7ce..0000000
--- a/gcc6-pr10200-revert.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-Revert due to PR69753:
-2016-02-10 Jason Merrill <jason@redhat.com>
-
- PR c++/10200
- * parser.c (cp_parser_lookup_name): When looking for a template
- after . or ->, only consider class templates.
- (cp_parser_postfix_dot_deref_expression): Handle the current
- instantiation. Remember a dependent object expression.
- * typeck2.c (build_x_arrow): Handle the current instantiation.
-
---- gcc/cp/typeck2.c (revision 233277)
-+++ gcc/cp/typeck2.c (revision 233276)
-@@ -1694,10 +1694,7 @@ build_x_arrow (location_t loc, tree expr
-
- if (processing_template_decl)
- {
-- if (type && TREE_CODE (type) == POINTER_TYPE
-- && !dependent_scope_p (TREE_TYPE (type)))
-- /* Pointer to current instantiation, don't treat as dependent. */;
-- else if (type_dependent_expression_p (expr))
-+ if (type_dependent_expression_p (expr))
- return build_min_nt_loc (loc, ARROW_EXPR, expr);
- expr = build_non_dependent_expr (expr);
- }
---- gcc/cp/parser.c (revision 233277)
-+++ gcc/cp/parser.c (revision 233276)
-@@ -7184,16 +7184,8 @@ cp_parser_postfix_dot_deref_expression (
- if (token_type == CPP_DEREF)
- postfix_expression = build_x_arrow (location, postfix_expression,
- tf_warning_or_error);
-- /* According to the standard, no expression should ever have
-- reference type. Unfortunately, we do not currently match
-- the standard in this respect in that our internal representation
-- of an expression may have reference type even when the standard
-- says it does not. Therefore, we have to manually obtain the
-- underlying type here. */
-- scope = non_reference (TREE_TYPE (postfix_expression));
-- /* Check to see whether or not the expression is type-dependent and
-- not the current instantiation. */
-- dependent_p = !scope || dependent_scope_p (scope);
-+ /* Check to see whether or not the expression is type-dependent. */
-+ dependent_p = type_dependent_expression_p (postfix_expression);
- /* The identifier following the `->' or `.' is not qualified. */
- parser->scope = NULL_TREE;
- parser->qualifying_scope = NULL_TREE;
-@@ -7202,8 +7194,16 @@ cp_parser_postfix_dot_deref_expression (
-
- /* Enter the scope corresponding to the type of the object
- given by the POSTFIX_EXPRESSION. */
-- if (!dependent_p)
-+ if (!dependent_p && TREE_TYPE (postfix_expression) != NULL_TREE)
- {
-+ scope = TREE_TYPE (postfix_expression);
-+ /* According to the standard, no expression should ever have
-+ reference type. Unfortunately, we do not currently match
-+ the standard in this respect in that our internal representation
-+ of an expression may have reference type even when the standard
-+ says it does not. Therefore, we have to manually obtain the
-+ underlying type here. */
-+ scope = non_reference (scope);
- /* The type of the POSTFIX_EXPRESSION must be complete. */
- if (scope == unknown_type_node)
- {
-@@ -7215,10 +7215,7 @@ cp_parser_postfix_dot_deref_expression (
- required to be of complete type for purposes of class member
- access (5.2.5) outside the member function body. */
- else if (postfix_expression != current_class_ref
-- && !(processing_template_decl
-- && current_class_type
-- && (same_type_ignoring_top_level_qualifiers_p
-- (scope, current_class_type))))
-+ && !(processing_template_decl && scope == current_class_type))
- scope = complete_type_or_else (scope, NULL_TREE);
- /* Let the name lookup machinery know that we are processing a
- class member access expression. */
-@@ -7234,10 +7231,6 @@ cp_parser_postfix_dot_deref_expression (
- if (scope == error_mark_node)
- postfix_expression = error_mark_node;
- }
-- else
-- /* Tell cp_parser_lookup_name that there was an object, even though it's
-- type-dependent. */
-- parser->context->object_type = unknown_type_node;
-
- /* Assume this expression is not a pseudo-destructor access. */
- pseudo_destructor_p = false;
-@@ -24727,15 +24720,10 @@ cp_parser_lookup_name (cp_parser *parser
- decl = NULL_TREE;
-
- if (!decl)
-- /* Look it up in the enclosing context. DR 141: When looking for a
-- template-name after -> or ., only consider class templates. */
-- decl = lookup_name_real (name, tag_type != none_type || is_template,
-+ /* Look it up in the enclosing context. */
-+ decl = lookup_name_real (name, tag_type != none_type,
- /*nonclass=*/0,
- /*block_p=*/true, is_namespace, 0);
-- if (object_type == unknown_type_node)
-- /* The object is type-dependent, so we can't look anything up; we used
-- this to get the DR 141 behavior. */
-- object_type = NULL_TREE;
- parser->object_scope = object_type;
- parser->qualifying_scope = NULL_TREE;
- }
diff --git a/gcc6-pr65932-cse-revert.patch b/gcc6-pr65932-cse-revert.patch
deleted file mode 100644
index 12be488..0000000
--- a/gcc6-pr65932-cse-revert.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Revert:
-2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/65932
- PR target/67714
- * cse.c (cse_insn): Pass NULL to fold_rtx when initially
- folding the source of a SET.
-
---- gcc/cse.c (revision 233133)
-+++ gcc/cse.c (revision 233132)
-@@ -4636,7 +4636,7 @@ cse_insn (rtx_insn *insn)
-
- /* Simplify and foldable subexpressions in SRC. Then get the fully-
- simplified result, which may not necessarily be valid. */
-- src_folded = fold_rtx (src, NULL);
-+ src_folded = fold_rtx (src, insn);
-
- #if 0
- /* ??? This caused bad code to be generated for the m68k port with -O2.
diff --git a/gcc6-pr68672.patch b/gcc6-pr68672.patch
deleted file mode 100644
index ed7c8bf..0000000
--- a/gcc6-pr68672.patch
+++ /dev/null
@@ -1,299 +0,0 @@
-2016-02-11 Jakub Jelinek <jakub@redhat.com>
-
- PR ipa/68672
- * ipa-split.c (split_function): Don't compute/use main_part_return_p.
- Compute retval and retbnd early in all cases if split_part_return_p
- and return_bb is not EXIT. Remove all clobber stmts and reset
- all debug stmts that refer to SSA_NAMEs defined in split part,
- except if it is retval, in that case replace the old retval with the
- lhs of the call to the split part.
-
- * g++.dg/ipa/pr68672-1.C: New test.
- * g++.dg/ipa/pr68672-2.C: New test.
- * g++.dg/ipa/pr68672-3.C: New test.
-
---- gcc/ipa-split.c.jj 2016-02-11 10:50:52.888220581 +0100
-+++ gcc/ipa-split.c 2016-02-11 12:46:15.975777652 +0100
-@@ -1244,28 +1244,13 @@ split_function (basic_block return_bb, s
- args_to_pass.safe_push (arg);
- }
-
-- /* See if the split function or the main part will return. */
-- bool main_part_return_p = false;
-+ /* See if the split function will return. */
- bool split_part_return_p = false;
- FOR_EACH_EDGE (e, ei, return_bb->preds)
- {
- if (bitmap_bit_p (split_point->split_bbs, e->src->index))
- split_part_return_p = true;
-- else
-- main_part_return_p = true;
- }
-- /* The main part also returns if we split on a fallthru edge
-- and the split part returns. */
-- if (split_part_return_p)
-- FOR_EACH_EDGE (e, ei, split_point->entry_bb->preds)
-- {
-- if (! bitmap_bit_p (split_point->split_bbs, e->src->index)
-- && single_succ_p (e->src))
-- {
-- main_part_return_p = true;
-- break;
-- }
-- }
-
- /* Add return block to what will become the split function.
- We do not return; no return block is needed. */
-@@ -1279,8 +1264,8 @@ split_function (basic_block return_bb, s
- FIXME: Once we are able to change return type, we should change function
- to return void instead of just outputting function with undefined return
- value. For structures this affects quality of codegen. */
-- else if (!split_point->split_part_set_retval
-- && (retval = find_retval (return_bb)))
-+ else if ((retval = find_retval (return_bb))
-+ && !split_point->split_part_set_retval)
- {
- bool redirected = true;
- basic_block new_return_bb = create_basic_block (NULL, 0, return_bb);
-@@ -1308,12 +1293,10 @@ split_function (basic_block return_bb, s
- }
- /* When we pass around the value, use existing return block. */
- else
-- bitmap_set_bit (split_point->split_bbs, return_bb->index);
--
-- /* If the main part doesn't return pretend the return block wasn't
-- found for all of the following. */
-- if (! main_part_return_p)
-- return_bb = EXIT_BLOCK_PTR_FOR_FN (cfun);
-+ {
-+ bitmap_set_bit (split_point->split_bbs, return_bb->index);
-+ retbnd = find_retbnd (return_bb);
-+ }
-
- /* If RETURN_BB has virtual operand PHIs, they must be removed and the
- virtual operand marked for renaming as we change the CFG in a way that
-@@ -1382,6 +1365,44 @@ split_function (basic_block return_bb, s
- DECL_FUNCTION_CODE (node->decl) = (enum built_in_function) 0;
- }
-
-+ /* If return_bb contains any clobbers that refer to SSA_NAMEs
-+ set in the split part, remove them. Also reset debug stmts that
-+ refer to SSA_NAMEs set in the split part. */
-+ if (return_bb != EXIT_BLOCK_PTR_FOR_FN (cfun))
-+ {
-+ gimple_stmt_iterator gsi = gsi_start_bb (return_bb);
-+ while (!gsi_end_p (gsi))
-+ {
-+ tree op;
-+ ssa_op_iter iter;
-+ gimple *stmt = gsi_stmt (gsi);
-+ bool remove = false;
-+ if (gimple_clobber_p (stmt) || is_gimple_debug (stmt))
-+ FOR_EACH_SSA_TREE_OPERAND (op, stmt, iter, SSA_OP_USE)
-+ {
-+ basic_block bb = gimple_bb (SSA_NAME_DEF_STMT (op));
-+ if (op != retval
-+ && bb
-+ && bb != return_bb
-+ && bitmap_bit_p (split_point->split_bbs, bb->index))
-+ {
-+ if (is_gimple_debug (stmt))
-+ {
-+ gimple_debug_bind_reset_value (stmt);
-+ update_stmt (stmt);
-+ }
-+ else
-+ remove = true;
-+ break;
-+ }
-+ }
-+ if (remove)
-+ gsi_remove (&gsi, true);
-+ else
-+ gsi_next (&gsi);
-+ }
-+ }
-+
- /* If the original function is instrumented then it's
- part is also instrumented. */
- if (with_bounds)
-@@ -1499,9 +1520,7 @@ split_function (basic_block return_bb, s
- return value into and put call just before it. */
- if (return_bb != EXIT_BLOCK_PTR_FOR_FN (cfun))
- {
-- real_retval = retval = find_retval (return_bb);
-- retbnd = find_retbnd (return_bb);
--
-+ real_retval = retval;
- if (real_retval && split_point->split_part_set_retval)
- {
- gphi_iterator psi;
-@@ -1545,6 +1564,28 @@ split_function (basic_block return_bb, s
- break;
- }
- update_stmt (gsi_stmt (bsi));
-+ /* Also adjust clobbers and debug stmts in return_bb. */
-+ for (bsi = gsi_start_bb (return_bb); !gsi_end_p (bsi);
-+ gsi_next (&bsi))
-+ {
-+ gimple *stmt = gsi_stmt (bsi);
-+ if (gimple_clobber_p (stmt)
-+ || is_gimple_debug (stmt))
-+ {
-+ ssa_op_iter iter;
-+ use_operand_p use_p;
-+ bool update = false;
-+ FOR_EACH_SSA_USE_OPERAND (use_p, stmt, iter,
-+ SSA_OP_USE)
-+ if (USE_FROM_PTR (use_p) == real_retval)
-+ {
-+ SET_USE (use_p, retval);
-+ update = true;
-+ }
-+ if (update)
-+ update_stmt (stmt);
-+ }
-+ }
- }
-
- /* Replace retbnd with new one. */
---- gcc/testsuite/g++.dg/ipa/pr68672-1.C.jj 2016-02-11 12:31:27.344497187 +0100
-+++ gcc/testsuite/g++.dg/ipa/pr68672-1.C 2016-02-11 12:31:01.000000000 +0100
-@@ -0,0 +1,20 @@
-+// PR ipa/68672
-+// { dg-do compile }
-+// { dg-options "-O -finline-small-functions -fpartial-inlining --param=partial-inlining-entry-probability=100" }
-+
-+void f2 (void *);
-+void *a;
-+struct C { virtual void m1 (); };
-+struct D { C *m2 () { if (a) __builtin_abort (); } };
-+D f1 ();
-+struct E { int e; ~E () { if (e) f2 (&e); } };
-+E *b;
-+struct I { virtual void m3 (); };
-+
-+void
-+I::m3 ()
-+{
-+ if (a)
-+ f1 ().m2 ()->m1 ();
-+ b->~E ();
-+}
---- gcc/testsuite/g++.dg/ipa/pr68672-2.C.jj 2016-02-11 12:33:50.744438948 +0100
-+++ gcc/testsuite/g++.dg/ipa/pr68672-2.C 2016-02-11 12:32:50.000000000 +0100
-@@ -0,0 +1,54 @@
-+// PR ipa/68672
-+// { dg-do compile }
-+// { dg-options "-O3 --param=partial-inlining-entry-probability=100 -g" }
-+
-+struct S { ~S () {} };
-+S *a;
-+int *b;
-+void bar ();
-+void baz ();
-+void fn (int *);
-+
-+static int
-+foo ()
-+{
-+ S *c = a;
-+ if (c)
-+ {
-+ bar ();
-+ if (a)
-+ __builtin_abort ();
-+ baz ();
-+ }
-+ int p = *b;
-+ if (p)
-+ {
-+ fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b);
-+ fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b);
-+ fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b);
-+ fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b);
-+ }
-+ c->~S ();
-+ int q = 2 * p;
-+ int r = 3 * q;
-+ S *d = c;
-+ return p;
-+}
-+
-+void
-+use1 ()
-+{
-+ foo ();
-+}
-+
-+void
-+use2 ()
-+{
-+ foo ();
-+}
-+
-+void
-+use3 ()
-+{
-+ foo ();
-+}
---- gcc/testsuite/g++.dg/ipa/pr68672-3.C.jj 2016-02-11 12:34:02.374272024 +0100
-+++ gcc/testsuite/g++.dg/ipa/pr68672-3.C 2016-02-11 12:34:22.337985482 +0100
-@@ -0,0 +1,57 @@
-+// PR ipa/68672
-+// { dg-do compile }
-+// { dg-options "-O3 --param=partial-inlining-entry-probability=100 -g" }
-+
-+struct S { ~S () {} };
-+S *a, *e;
-+int *b;
-+void bar ();
-+void baz ();
-+void fn (int *);
-+void fn2 (S *);
-+
-+static int
-+foo ()
-+{
-+ S *c = a;
-+ if (c)
-+ {
-+ bar ();
-+ if (a)
-+ __builtin_abort ();
-+ baz ();
-+ }
-+ int p = *b;
-+ S *f = e;
-+ if (p)
-+ {
-+ fn2 (f);
-+ fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b);
-+ fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b);
-+ fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b);
-+ fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b);
-+ }
-+ f->~S ();
-+ int q = 2 * p;
-+ int r = 3 * q;
-+ S *d = c;
-+ return p;
-+}
-+
-+void
-+use1 ()
-+{
-+ foo ();
-+}
-+
-+void
-+use2 ()
-+{
-+ foo ();
-+}
-+
-+void
-+use3 ()
-+{
-+ foo ();
-+}
diff --git a/gcc6-pr69241.patch b/gcc6-pr69241.patch
deleted file mode 100644
index 39f6f1b..0000000
--- a/gcc6-pr69241.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-2016-02-10 Jakub Jelinek <jakub@redhat.com>
-
- PR ipa/69241
- * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
- type by reference, force lhs on the call.
-
- * g++.dg/ipa/pr69241-4.C: New test.
-
---- gcc/ipa-split.c.jj 2016-02-11 12:46:15.975777652 +0100
-+++ gcc/ipa-split.c 2016-02-11 13:06:57.715241871 +0100
-@@ -629,7 +629,18 @@ consider_split (struct split_point *curr
- 4) For non-SSA we need to look where the var is computed. */
- retval = find_retval (return_bb);
- if (!retval)
-- current->split_part_set_retval = true;
-+ {
-+ /* If there is a return_bb with no return value in function returning
-+ value by reference, also make the split part return void, otherwise
-+ we expansion would try to create a non-POD temporary, which is
-+ invalid. */
-+ if (return_bb != EXIT_BLOCK_PTR_FOR_FN (cfun)
-+ && DECL_RESULT (current_function_decl)
-+ && DECL_BY_REFERENCE (DECL_RESULT (current_function_decl)))
-+ current->split_part_set_retval = false;
-+ else
-+ current->split_part_set_retval = true;
-+ }
- else if (is_gimple_min_invariant (retval))
- current->split_part_set_retval = false;
- /* Special case is value returned by reference we record as if it was non-ssa
---- gcc/testsuite/g++.dg/ipa/pr69241-4.C.jj 2016-02-11 13:00:04.160075417 +0100
-+++ gcc/testsuite/g++.dg/ipa/pr69241-4.C 2016-02-11 13:00:04.160075417 +0100
-@@ -0,0 +1,55 @@
-+// PR ipa/69241
-+// { dg-do compile { target c++11 } }
-+// { dg-options "-O2 -Wno-return-type" }
-+
-+template <typename> class A;
-+struct B {
-+ using pointer = int *;
-+};
-+template <typename _CharT, typename = A<_CharT>> class basic_string {
-+ long _M_string_length;
-+ enum { _S_local_capacity = 15 } _M_local_buf[_S_local_capacity];
-+ B::pointer _M_local_data;
-+
-+public:
-+ ~basic_string();
-+};
-+template <typename _CharT, typename _Traits, typename _Alloc>
-+int operator<<(_Traits, basic_string<_CharT, _Alloc>);
-+class C {
-+ basic_string<A<char>> _M_string;
-+};
-+class D {
-+ C _M_stringbuf;
-+};
-+class F {
-+ int stream;
-+ D stream_;
-+};
-+class G {
-+public:
-+ void operator&(int);
-+};
-+class H {
-+public:
-+ H(unsigned);
-+ H(H &&);
-+ bool m_fn1();
-+};
-+class I {
-+ void m_fn2(const int &&);
-+ static H m_fn3(const int &);
-+};
-+template <typename Functor> void Bind(Functor);
-+class J {
-+public:
-+ static basic_string<char> m_fn4();
-+};
-+int a;
-+void I::m_fn2(const int &&) { Bind(m_fn3); }
-+H I::m_fn3(const int &) {
-+ !false ? (void)0 : G() & F() << J::m_fn4();
-+ H b(a);
-+ if (b.m_fn1())
-+ F();
-+}
diff --git a/gcc6-pr69658.patch b/gcc6-pr69658.patch
deleted file mode 100644
index 781e873..0000000
--- a/gcc6-pr69658.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-2016-02-04 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/69658
- * init.c (expand_default_init): Only call reshape_init
- in the direct-initialization from an initializer list case.
-
- * g++.dg/init/pr69658.C: New test.
-
---- gcc/cp/init.c.jj 2016-01-29 12:12:46.000000000 +0100
-+++ gcc/cp/init.c 2016-02-04 18:53:26.865318337 +0100
-@@ -1636,16 +1636,17 @@ expand_default_init (tree binfo, tree tr
- gcc_checking_assert ((flags & LOOKUP_ONLYCONVERTING) == 0
- && TREE_CHAIN (init) == NULL_TREE);
- init = TREE_VALUE (init);
-+ /* Only call reshape_init if it has not been called earlier
-+ by the callers. */
-+ if (BRACE_ENCLOSED_INITIALIZER_P (init) && CP_AGGREGATE_TYPE_P (type))
-+ init = reshape_init (type, init, complain);
- }
-
- if (init && BRACE_ENCLOSED_INITIALIZER_P (init)
- && CP_AGGREGATE_TYPE_P (type))
- /* A brace-enclosed initializer for an aggregate. In C++0x this can
- happen for direct-initialization, too. */
-- {
-- init = reshape_init (type, init, complain);
-- init = digest_init (type, init, complain);
-- }
-+ init = digest_init (type, init, complain);
-
- /* A CONSTRUCTOR of the target's type is a previously digested
- initializer, whether that happened just above or in
---- gcc/testsuite/g++.dg/init/pr69658.C.jj 2016-02-04 18:55:46.862390961 +0100
-+++ gcc/testsuite/g++.dg/init/pr69658.C 2016-02-04 18:54:58.000000000 +0100
-@@ -0,0 +1,6 @@
-+// PR c++/69658
-+// { dg-do compile }
-+
-+struct S { S (int); };
-+struct T { char n[6]; S s; };
-+T t[1] = { { "foo", 1 } }; // { dg-bogus "C99 designator" }
diff --git a/sources b/sources
index e028d43..949b9c6 100644
--- a/sources
+++ b/sources
@@ -1,2 +1 @@
-9add2f51dd3d4c93c13801fadfd8fb6e gcc-6.0.0-20160212.tar.bz2
-b97b050ef8c394c48409713d0e5471b4 gcc-gnat-6.0.0-0.7.s390x.tar.bz2
+930f315c148900b693cd38286aa086a4 gcc-6.0.0-20160219.tar.bz2
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-06-29 12:27 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-29 12:27 [rpms/gcc] rhel-f41-base: 6.0.0-0.12 Jakub Jelinek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox