public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/gcc] rhel-f41-base: 7.0.1-0.4
@ 2026-06-29 12:27 Jakub Jelinek
0 siblings, 0 replies; 2+ messages 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 : 98a12cbd713b5ca3b079f3e5593ba09932533b58
Author : Jakub Jelinek <jakub@redhat.com>
Date : 2017-01-31T10:26:33+01:00
Stats : +494/-5 in 7 file(s)
URL : https://src.fedoraproject.org/rpms/gcc/c/98a12cbd713b5ca3b079f3e5593ba09932533b58?branch=rhel-f41-base
Log:
7.0.1-0.4
---
diff --git a/.gitignore b/.gitignore
index 8b9f440..1aea36c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
/nvptx-newlib-aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24.tar.bz2
/nvptx-tools-c28050f60193b3b95a18866a96f03334e874e78f.tar.bz2
/gcc-7.0.1-20170128.tar.bz2
+/gcc-7.0.1-20170131.tar.bz2
diff --git a/gcc.spec b/gcc.spec
index 20df777..d34c270 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,10 +1,10 @@
-%global DATE 20170128
-%global SVNREV 245003
+%global DATE 20170131
+%global SVNREV 245054
%global gcc_version 7.0.1
%global gcc_major 7
# 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.3
+%global gcc_release 0.4
%global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f
%global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24
%global _unpackaged_files_terminate_build 0
@@ -228,6 +228,10 @@ Patch8: gcc7-no-add-needed.patch
Patch9: gcc7-aarch64-async-unw-tables.patch
Patch10: gcc7-foffload-default.patch
Patch11: gcc7-s390-asan.patch
+Patch12: gcc7-pr79197.patch
+Patch13: gcc7-pr79232.patch
+Patch14: gcc7-pr79288.patch
+Patch15: gcc7-pr79170-workaround.patch
Patch1000: nvptx-tools-no-ptxas.patch
Patch1001: nvptx-tools-build.patch
@@ -816,6 +820,10 @@ package or when debugging this package.
%patch9 -p0 -b .aarch64-async-unw-tables~
%patch10 -p0 -b .foffload-default~
%patch11 -p0 -b .s390-asan~
+%patch12 -p0 -b .pr79197~
+%patch13 -p0 -b .pr79232~
+%patch14 -p0 -b .pr79288~
+%patch15 -p0 -b .pr79170-workaround~
cd nvptx-tools-%{nvptx_tools_gitrev}
%patch1000 -p1 -b .nvptx-tools-no-ptxas~
@@ -1248,7 +1256,7 @@ rm -rf %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ac
rm -rf %{buildroot}%{_infodir} %{buildroot}%{_mandir}/man7 %{buildroot}%{_prefix}/share/locale
rm -rf %{buildroot}%{_prefix}/lib/gcc/nvptx-none/%{gcc_major}/{install-tools,plugin}
rm -rf %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/{install-tools,plugin,include-fixed}
-rm -rf %{buildroot}%{_prefix}/%{_lib}/libcc1*
+rm -rf %{buildroot}%{_prefix}/%{_lib}/libc[cp]1*
mv -f %{buildroot}%{_prefix}/nvptx-none/lib/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/
mv -f %{buildroot}%{_prefix}/nvptx-none/lib/mgomp/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mgomp/
mv -f %{buildroot}%{_prefix}/lib/gcc/nvptx-none/%{gcc_major}/*.a %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/
@@ -3206,6 +3214,7 @@ fi
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcc1plugin.so*
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcp1plugin.so*
%doc rpm.doc/changelogs/libcc1/ChangeLog*
%if %{build_offload_nvptx}
@@ -3232,6 +3241,20 @@ fi
%endif
%changelog
+* Tue Jan 31 2017 Jakub Jelinek <jakub@redhat.com> 7.0.1-0.4
+- update from the trunk
+ - PRs bootstrap/78985, debug/63238, debug/79289, gcov-profile/79259,
+ target/78945, target/79170, target/79240, target/79260, target/79268,
+ testsuite/70583, testsuite/79293, tree-optimization/79256,
+ tree-optimization/79267, tree-optimization/79276
+- fix ICEs with powerpc conversion of float/double to 64-bit unsigned integer
+ (PR target/79197)
+- fix C++ ICE with comma expression on lhs of assignment (PR c++/79232)
+- fix default TLS model for C++ non-inline static data members (PR c++/79288)
+- add workaround for powerpc constant size memcmp expansion bug (#1417753,
+ PR target/79170)
+- libcp1plugin.so added to gcc-gdb-plugin for C++ support
+
* Sat Jan 28 2017 Jakub Jelinek <jakub@redhat.com> 7.0.1-0.3
- update from the trunk
- PRs c++/64382, c++/68727, c++/78771, c++/79176, debug/78835, debug/79129,
diff --git a/gcc7-pr79170-workaround.patch b/gcc7-pr79170-workaround.patch
new file mode 100644
index 0000000..f094ca8
--- /dev/null
+++ b/gcc7-pr79170-workaround.patch
@@ -0,0 +1,16 @@
+2017-01-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/79170
+ * config/rs6000/rs6000.c (expand_block_compare): Temporarily disable.
+
+--- gcc/config/rs6000/rs6000.c.jj 2017-01-31 09:25:59.000000000 +0100
++++ gcc/config/rs6000/rs6000.c 2017-01-31 10:17:21.131929670 +0100
+@@ -19462,7 +19462,7 @@ expand_block_compare (rtx operands[])
+ with carry instructions do not generate the 64-bit
+ carry and so we must emit code to calculate it ourselves.
+ We choose not to implement this yet. */
+- if (TARGET_32BIT && TARGET_POWERPC64)
++ if ((TARGET_32BIT && TARGET_POWERPC64) || 1)
+ return false;
+
+ /* If this is not a fixed size compare, just call memcmp. */
diff --git a/gcc7-pr79197.patch b/gcc7-pr79197.patch
new file mode 100644
index 0000000..a46634c
--- /dev/null
+++ b/gcc7-pr79197.patch
@@ -0,0 +1,59 @@
+2017-01-30 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/79197
+ * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
+ (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all
+ conditions on a single line.
+
+ * gcc.target/powerpc/pr79197.c: New test.
+ * gcc.c-torture/compile/pr79197.c: New test.
+
+--- gcc/config/rs6000/rs6000.md.jj 2017-01-23 18:41:20.000000000 +0100
++++ gcc/config/rs6000/rs6000.md 2017-01-30 14:44:12.148761705 +0100
+@@ -5712,17 +5712,10 @@ (define_insn_and_split "fixuns_trunc<mod
+ [(set_attr "length" "12")
+ (set_attr "type" "fp")])
+
+-(define_expand "fixuns_trunc<mode>di2"
+- [(set (match_operand:DI 0 "register_operand" "")
+- (unsigned_fix:DI (match_operand:SFDF 1 "register_operand" "")))]
+- "TARGET_HARD_FLOAT && (TARGET_FCTIDUZ || VECTOR_UNIT_VSX_P (<MODE>mode))"
+- "")
+-
+-(define_insn "*fixuns_trunc<mode>di2_fctiduz"
++(define_insn "fixuns_trunc<mode>di2"
+ [(set (match_operand:DI 0 "gpc_reg_operand" "=d,wi")
+ (unsigned_fix:DI (match_operand:SFDF 1 "gpc_reg_operand" "<Ff>,<Fv>")))]
+- "TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT && TARGET_FPRS
+- && TARGET_FCTIDUZ"
++ "TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT && TARGET_FPRS && TARGET_FCTIDUZ"
+ "@
+ fctiduz %0,%1
+ xscvdpuxds %x0,%x1"
+--- gcc/testsuite/gcc.target/powerpc/pr79197.c.jj 2017-01-30 14:54:55.533314402 +0100
++++ gcc/testsuite/gcc.target/powerpc/pr79197.c 2017-01-30 14:55:20.407988406 +0100
+@@ -0,0 +1,11 @@
++/* PR target/79197 */
++/* { dg-do compile } */
++/* { dg-options "-O0 -mno-popcntd" } */
++
++unsigned a;
++
++void
++foo (void)
++{
++ a = *(double *) (__UINTPTR_TYPE__) 0x400000;
++}
+--- gcc/testsuite/gcc.c-torture/compile/pr79197.c.jj 2017-01-30 14:56:31.383058240 +0100
++++ gcc/testsuite/gcc.c-torture/compile/pr79197.c 2017-01-30 14:56:40.902933477 +0100
+@@ -0,0 +1,10 @@
++/* PR target/79197 */
++
++unsigned long b;
++
++unsigned long
++foo (float *a, float *x)
++{
++ __builtin_memcpy (a, x, sizeof (float));
++ return *a;
++}
diff --git a/gcc7-pr79232.patch b/gcc7-pr79232.patch
new file mode 100644
index 0000000..84f25a6
--- /dev/null
+++ b/gcc7-pr79232.patch
@@ -0,0 +1,318 @@
+2017-01-30 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/79232
+ * typeck.c (cp_build_modify_expr): Handle properly COMPOUND_EXPRs
+ on lhs that have {PRE{DEC,INC}REMENT,MODIFY,MIN,MAX,COND}_EXPR
+ in the rightmost operand.
+
+ * g++.dg/cpp1z/eval-order4.C: New test.
+ * g++.dg/other/pr79232.C: New test.
+
+--- gcc/cp/typeck.c.jj 2017-01-30 09:31:43.076595640 +0100
++++ gcc/cp/typeck.c 2017-01-30 15:56:33.601002577 +0100
+@@ -7568,16 +7568,26 @@ tree
+ cp_build_modify_expr (location_t loc, tree lhs, enum tree_code modifycode,
+ tree rhs, tsubst_flags_t complain)
+ {
+- tree result;
++ tree result = NULL_TREE;
+ tree newrhs = rhs;
+ tree lhstype = TREE_TYPE (lhs);
++ tree olhs = lhs;
+ tree olhstype = lhstype;
+ bool plain_assign = (modifycode == NOP_EXPR);
++ bool compound_side_effects_p = false;
++ tree preeval = NULL_TREE;
+
+ /* Avoid duplicate error messages from operands that had errors. */
+ if (error_operand_p (lhs) || error_operand_p (rhs))
+ return error_mark_node;
+
++ while (TREE_CODE (lhs) == COMPOUND_EXPR)
++ {
++ if (TREE_SIDE_EFFECTS (TREE_OPERAND (lhs, 0)))
++ compound_side_effects_p = true;
++ lhs = TREE_OPERAND (lhs, 1);
++ }
++
+ /* Handle control structure constructs used as "lvalues". Note that we
+ leave COMPOUND_EXPR on the LHS because it is sequenced after the RHS. */
+ switch (TREE_CODE (lhs))
+@@ -7585,20 +7595,57 @@ cp_build_modify_expr (location_t loc, tr
+ /* Handle --foo = 5; as these are valid constructs in C++. */
+ case PREDECREMENT_EXPR:
+ case PREINCREMENT_EXPR:
++ if (compound_side_effects_p)
++ {
++ if (VOID_TYPE_P (TREE_TYPE (rhs)))
++ {
++ if (complain & tf_error)
++ error ("void value not ignored as it ought to be");
++ return error_mark_node;
++ }
++ newrhs = rhs = stabilize_expr (rhs, &preeval);
++ }
+ if (TREE_SIDE_EFFECTS (TREE_OPERAND (lhs, 0)))
+ lhs = build2 (TREE_CODE (lhs), TREE_TYPE (lhs),
+ cp_stabilize_reference (TREE_OPERAND (lhs, 0)),
+ TREE_OPERAND (lhs, 1));
+ lhs = build2 (COMPOUND_EXPR, lhstype, lhs, TREE_OPERAND (lhs, 0));
++ maybe_add_compound:
++ /* If we had (bar, --foo) = 5; or (bar, (baz, --foo)) = 5;
++ and looked through the COMPOUND_EXPRs, readd them now around
++ the resulting lhs. */
++ if (TREE_CODE (olhs) == COMPOUND_EXPR)
++ {
++ lhs = build2 (COMPOUND_EXPR, lhstype, TREE_OPERAND (olhs, 0), lhs);
++ tree *ptr = &TREE_OPERAND (lhs, 1);
++ for (olhs = TREE_OPERAND (olhs, 1);
++ TREE_CODE (olhs) == COMPOUND_EXPR;
++ olhs = TREE_OPERAND (olhs, 1))
++ {
++ *ptr = build2 (COMPOUND_EXPR, lhstype,
++ TREE_OPERAND (olhs, 0), *ptr);
++ ptr = &TREE_OPERAND (*ptr, 1);
++ }
++ }
+ break;
+
+ case MODIFY_EXPR:
++ if (compound_side_effects_p)
++ {
++ if (VOID_TYPE_P (TREE_TYPE (rhs)))
++ {
++ if (complain & tf_error)
++ error ("void value not ignored as it ought to be");
++ return error_mark_node;
++ }
++ newrhs = rhs = stabilize_expr (rhs, &preeval);
++ }
+ if (TREE_SIDE_EFFECTS (TREE_OPERAND (lhs, 0)))
+ lhs = build2 (TREE_CODE (lhs), TREE_TYPE (lhs),
+ cp_stabilize_reference (TREE_OPERAND (lhs, 0)),
+ TREE_OPERAND (lhs, 1));
+ lhs = build2 (COMPOUND_EXPR, lhstype, lhs, TREE_OPERAND (lhs, 0));
+- break;
++ goto maybe_add_compound;
+
+ case MIN_EXPR:
+ case MAX_EXPR:
+@@ -7626,7 +7673,6 @@ cp_build_modify_expr (location_t loc, tr
+ except that the RHS goes through a save-expr
+ so the code to compute it is only emitted once. */
+ tree cond;
+- tree preeval = NULL_TREE;
+
+ if (VOID_TYPE_P (TREE_TYPE (rhs)))
+ {
+@@ -7652,14 +7698,31 @@ cp_build_modify_expr (location_t loc, tr
+
+ if (cond == error_mark_node)
+ return cond;
++ /* If we had (e, (a ? b : c)) = d; or (e, (f, (a ? b : c))) = d;
++ and looked through the COMPOUND_EXPRs, readd them now around
++ the resulting cond before adding the preevaluated rhs. */
++ if (TREE_CODE (olhs) == COMPOUND_EXPR)
++ {
++ cond = build2 (COMPOUND_EXPR, TREE_TYPE (cond),
++ TREE_OPERAND (olhs, 0), cond);
++ tree *ptr = &TREE_OPERAND (cond, 1);
++ for (olhs = TREE_OPERAND (olhs, 1);
++ TREE_CODE (olhs) == COMPOUND_EXPR;
++ olhs = TREE_OPERAND (olhs, 1))
++ {
++ *ptr = build2 (COMPOUND_EXPR, TREE_TYPE (cond),
++ TREE_OPERAND (olhs, 0), *ptr);
++ ptr = &TREE_OPERAND (*ptr, 1);
++ }
++ }
+ /* Make sure the code to compute the rhs comes out
+ before the split. */
+- if (preeval)
+- cond = build2 (COMPOUND_EXPR, TREE_TYPE (lhs), preeval, cond);
+- return cond;
++ result = cond;
++ goto ret;
+ }
+
+ default:
++ lhs = olhs;
+ break;
+ }
+
+@@ -7675,7 +7738,7 @@ cp_build_modify_expr (location_t loc, tr
+ rhs = convert (lhstype, rhs);
+ result = build2 (INIT_EXPR, lhstype, lhs, rhs);
+ TREE_SIDE_EFFECTS (result) = 1;
+- return result;
++ goto ret;
+ }
+ else if (! MAYBE_CLASS_TYPE_P (lhstype))
+ /* Do the default thing. */;
+@@ -7688,7 +7751,7 @@ cp_build_modify_expr (location_t loc, tr
+ release_tree_vector (rhs_vec);
+ if (result == NULL_TREE)
+ return error_mark_node;
+- return result;
++ goto ret;
+ }
+ }
+ else
+@@ -7703,7 +7766,7 @@ cp_build_modify_expr (location_t loc, tr
+ {
+ result = objc_maybe_build_modify_expr (lhs, rhs);
+ if (result)
+- return result;
++ goto ret;
+ }
+
+ /* `operator=' is not an inheritable operator. */
+@@ -7717,7 +7780,7 @@ cp_build_modify_expr (location_t loc, tr
+ complain);
+ if (result == NULL_TREE)
+ return error_mark_node;
+- return result;
++ goto ret;
+ }
+ lhstype = olhstype;
+ }
+@@ -7762,7 +7825,7 @@ cp_build_modify_expr (location_t loc, tr
+ {
+ result = objc_maybe_build_modify_expr (lhs, newrhs);
+ if (result)
+- return result;
++ goto ret;
+ }
+ }
+ gcc_assert (TREE_CODE (lhstype) != REFERENCE_TYPE);
+@@ -7858,9 +7921,10 @@ cp_build_modify_expr (location_t loc, tr
+
+ from_array = TREE_CODE (TREE_TYPE (newrhs)) == ARRAY_TYPE
+ ? 1 + (modifycode != INIT_EXPR): 0;
+- return build_vec_init (lhs, NULL_TREE, newrhs,
+- /*explicit_value_init_p=*/false,
+- from_array, complain);
++ result = build_vec_init (lhs, NULL_TREE, newrhs,
++ /*explicit_value_init_p=*/false,
++ from_array, complain);
++ goto ret;
+ }
+
+ if (modifycode == INIT_EXPR)
+@@ -7899,7 +7963,7 @@ cp_build_modify_expr (location_t loc, tr
+ result = objc_generate_write_barrier (lhs, modifycode, newrhs);
+
+ if (result)
+- return result;
++ goto ret;
+ }
+
+ result = build2 (modifycode == NOP_EXPR ? MODIFY_EXPR : INIT_EXPR,
+@@ -7909,6 +7973,9 @@ cp_build_modify_expr (location_t loc, tr
+ if (!plain_assign)
+ TREE_NO_WARNING (result) = 1;
+
++ ret:
++ if (preeval)
++ result = build2 (COMPOUND_EXPR, TREE_TYPE (result), preeval, result);
+ return result;
+ }
+
+--- gcc/testsuite/g++.dg/cpp1z/eval-order4.C.jj 2017-01-30 16:08:22.195641383 +0100
++++ gcc/testsuite/g++.dg/cpp1z/eval-order4.C 2017-01-30 16:08:09.000000000 +0100
+@@ -0,0 +1,80 @@
++// PR c++/79232
++// { dg-do run }
++// { dg-options "-fstrong-eval-order" }
++
++int last = 0;
++
++int
++foo (int i)
++{
++ if (i != last + 1)
++ __builtin_abort ();
++ last = i;
++ return i;
++}
++
++char a, b;
++int c;
++
++char &
++bar (int i, int j)
++{
++ foo (i);
++ return j ? a : b;
++}
++
++int
++main ()
++{
++ (foo (2) ? bar (3, 0) : bar (3, 1)) = foo (1);
++ if (last != 3)
++ __builtin_abort ();
++ last = 0;
++ (foo (2), foo (3) ? bar (4, 0) : bar (4, 1)) = foo (1);
++ if (last != 4)
++ __builtin_abort ();
++ last = 0;
++ (foo (2), (foo (3) ? bar (4, 0) : bar (4, 1))) = foo (1);
++ if (last != 4)
++ __builtin_abort ();
++ last = 0;
++ (foo (2), foo (3), foo (4) ? bar (5, 0) : bar (5, 1)) = foo (1);
++ if (last != 5)
++ __builtin_abort ();
++ last = 0;
++ (foo (2), (foo (3), (foo (4) ? bar (5, 0) : bar (5, 1)))) = foo (1);
++ if (last != 5)
++ __builtin_abort ();
++ last = 0;
++ --c = foo (1);
++ if (c != 1)
++ __builtin_abort ();
++ last = 0;
++ (foo (2), --c) = foo (1);
++ if (last != 2 || c != 1)
++ __builtin_abort ();
++ last = 0;
++ (foo (2), foo (3), --c) = foo (1);
++ if (last != 3 || c != 1)
++ __builtin_abort ();
++ last = 0;
++ (foo (2), (foo (3), --c)) = foo (1);
++ if (last != 3 || c != 1)
++ __builtin_abort ();
++ last = 0;
++ bar (2, 0) = foo (1);
++ if (last != 2)
++ __builtin_abort ();
++ last = 0;
++ (foo (2), bar (3, 0)) = foo (1);
++ if (last != 3)
++ __builtin_abort ();
++ last = 0;
++ (foo (2), foo (3), bar (4, 0)) = foo (1);
++ if (last != 4)
++ __builtin_abort ();
++ last = 0;
++ (foo (2), (foo (3), bar (4, 0))) = foo (1);
++ if (last != 4)
++ __builtin_abort ();
++}
+--- gcc/testsuite/g++.dg/other/pr79232.C.jj 2017-01-30 13:37:32.095090643 +0100
++++ gcc/testsuite/g++.dg/other/pr79232.C 2017-01-30 13:35:17.000000000 +0100
+@@ -0,0 +1,12 @@
++// PR c++/79232
++// { dg-do compile }
++
++extern char a[];
++int b;
++char c, e;
++
++void
++foo (long d)
++{
++ (0, b ? &c : a)[d] = e;
++}
diff --git a/gcc7-pr79288.patch b/gcc7-pr79288.patch
new file mode 100644
index 0000000..f4f9ae1
--- /dev/null
+++ b/gcc7-pr79288.patch
@@ -0,0 +1,72 @@
+2017-01-30 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/79288
+ * decl.c (grokdeclarator): For static data members, handle thread_p
+ only after handling inline.
+
+ * g++.dg/tls/pr79288.C: New test.
+
+--- gcc/cp/decl.c.jj 2017-01-26 09:14:24.000000000 +0100
++++ gcc/cp/decl.c 2017-01-30 18:49:38.544438710 +0100
+@@ -12049,14 +12049,6 @@ grokdeclarator (const cp_declarator *dec
+ : input_location,
+ VAR_DECL, unqualified_id, type);
+ set_linkage_for_static_data_member (decl);
+- if (thread_p)
+- {
+- CP_DECL_THREAD_LOCAL_P (decl) = true;
+- if (!processing_template_decl)
+- set_decl_tls_model (decl, decl_default_tls_model (decl));
+- if (declspecs->gnu_thread_keyword_p)
+- SET_DECL_GNU_TLS_P (decl);
+- }
+ if (concept_p)
+ error ("static data member %qE declared %<concept%>",
+ unqualified_id);
+@@ -12077,6 +12069,15 @@ grokdeclarator (const cp_declarator *dec
+ definition is provided, unless this is an inline
+ variable. */
+ DECL_EXTERNAL (decl) = 1;
++
++ if (thread_p)
++ {
++ CP_DECL_THREAD_LOCAL_P (decl) = true;
++ if (!processing_template_decl)
++ set_decl_tls_model (decl, decl_default_tls_model (decl));
++ if (declspecs->gnu_thread_keyword_p)
++ SET_DECL_GNU_TLS_P (decl);
++ }
+ }
+ else
+ {
+--- gcc/testsuite/g++.dg/tls/pr79288.C.jj 2017-01-30 18:55:05.754282818 +0100
++++ gcc/testsuite/g++.dg/tls/pr79288.C 2017-01-30 18:54:52.000000000 +0100
+@@ -0,0 +1,28 @@
++// PR c++/79288
++// { dg-do compile { target nonpic } }
++// { dg-require-effective-target tls }
++// { dg-options "-O2" }
++// { dg-final { scan-assembler-not "@tpoff" { target i?86-*-* x86_64-*-* } } }
++
++struct S
++{
++ static __thread int *p;
++};
++
++template <int N>
++struct T
++{
++ static __thread int *p;
++};
++
++int *
++foo ()
++{
++ return S::p;
++}
++
++int *
++bar ()
++{
++ return T<0>::p;
++}
diff --git a/sources b/sources
index b7253bc..d05150b 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (gcc-7.0.1-20170128.tar.bz2) = 41edc3cd3cf59816aa8f6f5c410a6c5a0332eadf65d0ccd478367767c17d909462280f439a9a96b61c72d447b17caa8b5fa0ddea22c25a79be2fd63675088e49
+SHA512 (gcc-7.0.1-20170131.tar.bz2) = 976af1e513fe6f701cf3e83503e2a44560e37f0f33622c45b4d1fe119006c7cc9d45584df5e760a41c4767be036dee24d88a33379ff65366b187605f463ea1b0
SHA512 (nvptx-newlib-aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24.tar.bz2) = 38f97c9297ad108568352a4d28277455a3c01fd8b7864e798037e5006b6f757022e874bbf3f165775fe3b873781bc108137bbeb42dd5ed3c7d3e6747746fa918
SHA512 (nvptx-tools-c28050f60193b3b95a18866a96f03334e874e78f.tar.bz2) = 95b577a06a93bb044dbc8033e550cb36bcf2ab2687da030a7318cdc90e7467ed49665e247dcafb5ff4a7e92cdc264291d19728bd17fab902fb64b22491269330
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [rpms/gcc] rhel-f41-base: 7.0.1-0.4
@ 2026-06-29 12:27 Jakub Jelinek
0 siblings, 0 replies; 2+ messages 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 : 6ed6e5a4c3b129ba34f1fba1a5d3a930dd0b078e
Author : Jakub Jelinek <jakub@redhat.com>
Date : 2017-01-31T12:35:13+01:00
Stats : +0/-20 in 2 file(s)
URL : https://src.fedoraproject.org/rpms/gcc/c/6ed6e5a4c3b129ba34f1fba1a5d3a930dd0b078e?branch=rhel-f41-base
Log:
7.0.1-0.4
---
diff --git a/gcc.spec b/gcc.spec
index d34c270..9d20a47 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -231,7 +231,6 @@ Patch11: gcc7-s390-asan.patch
Patch12: gcc7-pr79197.patch
Patch13: gcc7-pr79232.patch
Patch14: gcc7-pr79288.patch
-Patch15: gcc7-pr79170-workaround.patch
Patch1000: nvptx-tools-no-ptxas.patch
Patch1001: nvptx-tools-build.patch
@@ -823,7 +822,6 @@ package or when debugging this package.
%patch12 -p0 -b .pr79197~
%patch13 -p0 -b .pr79232~
%patch14 -p0 -b .pr79288~
-%patch15 -p0 -b .pr79170-workaround~
cd nvptx-tools-%{nvptx_tools_gitrev}
%patch1000 -p1 -b .nvptx-tools-no-ptxas~
@@ -3251,8 +3249,6 @@ fi
(PR target/79197)
- fix C++ ICE with comma expression on lhs of assignment (PR c++/79232)
- fix default TLS model for C++ non-inline static data members (PR c++/79288)
-- add workaround for powerpc constant size memcmp expansion bug (#1417753,
- PR target/79170)
- libcp1plugin.so added to gcc-gdb-plugin for C++ support
* Sat Jan 28 2017 Jakub Jelinek <jakub@redhat.com> 7.0.1-0.3
diff --git a/gcc7-pr79170-workaround.patch b/gcc7-pr79170-workaround.patch
deleted file mode 100644
index f094ca8..0000000
--- a/gcc7-pr79170-workaround.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-2017-01-31 Jakub Jelinek <jakub@redhat.com>
-
- PR target/79170
- * config/rs6000/rs6000.c (expand_block_compare): Temporarily disable.
-
---- gcc/config/rs6000/rs6000.c.jj 2017-01-31 09:25:59.000000000 +0100
-+++ gcc/config/rs6000/rs6000.c 2017-01-31 10:17:21.131929670 +0100
-@@ -19462,7 +19462,7 @@ expand_block_compare (rtx operands[])
- with carry instructions do not generate the 64-bit
- carry and so we must emit code to calculate it ourselves.
- We choose not to implement this yet. */
-- if (TARGET_32BIT && TARGET_POWERPC64)
-+ if ((TARGET_32BIT && TARGET_POWERPC64) || 1)
- return false;
-
- /* If this is not a fixed size compare, just call memcmp. */
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-06-29 12:27 UTC | newest]
Thread overview: 2+ messages (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: 7.0.1-0.4 Jakub Jelinek
2026-06-29 12:27 Jakub Jelinek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox