public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/gcc] rhel-f41-base: 4.3.2-6
@ 2026-06-29 12:23 Jakub Jelinek
  0 siblings, 0 replies; 2+ messages in thread
From: Jakub Jelinek @ 2026-06-29 12:23 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/gcc
Branch : rhel-f41-base
Commit : a3328a1d29b9fd2398ed21c51c746088e75672f7
Author : Jakub Jelinek <jakub@fedoraproject.org>
Date   : 2008-10-09T10:24:52+00:00
Stats  : +163/-1 in 2 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/a3328a1d29b9fd2398ed21c51c746088e75672f7?branch=rhel-f41-base

Log:
4.3.2-6

---
diff --git a/gcc43-pr29609-3.patch b/gcc43-pr29609-3.patch
new file mode 100644
index 0000000..bc2717a
--- /dev/null
+++ b/gcc43-pr29609-3.patch
@@ -0,0 +1,155 @@
+--- gcc/cfglayout.c.jj	2008-10-07 21:35:33.000000000 +0200
++++ gcc/cfglayout.c	2008-10-09 11:18:51.000000000 +0200
+@@ -448,13 +448,12 @@ change_scope (rtx orig_insn, tree s1, tr
+     }
+ }
+ 
+-/* Return lexical scope block insn belong to.  */
++/* Return lexical scope block locator belongs to.  */
+ static tree
+-insn_scope (const_rtx insn)
++locator_scope (int loc)
+ {
+   int max = VEC_length (int, block_locators_locs);
+   int min = 0;
+-  int loc = INSN_LOCATOR (insn);
+ 
+   /* When block_locators_locs was initialized, the pro- and epilogue
+      insns didn't exist yet and can therefore not be found this way.
+@@ -488,6 +487,13 @@ insn_scope (const_rtx insn)
+   return VEC_index (tree, block_locators_blocks, min);
+ }
+ 
++/* Return lexical scope block insn belongs to.  */
++static tree
++insn_scope (const_rtx insn)
++{
++  return locator_scope (INSN_LOCATOR (insn));
++}
++
+ /* Return line number of the statement specified by the locator.  */
+ static location_t
+ locator_location (int loc)
+@@ -551,6 +557,17 @@ insn_file (const_rtx insn)
+   return locator_file (INSN_LOCATOR (insn));
+ }
+ 
++/* Return true if LOC1 and LOC2 locators have the same location and scope.  */
++bool
++locator_eq (int loc1, int loc2)
++{
++  if (loc1 == loc2)
++    return true;
++  if (locator_location (loc1) != locator_location (loc2))
++    return false;
++  return locator_scope (loc1) == locator_scope (loc2);
++}
++
+ /* Rebuild all the NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes based
+    on the scope tree and the newly reordered instructions.  */
+ 
+@@ -901,24 +918,30 @@ fixup_reorder_chain (void)
+ 	  if (e->goto_locus && !(e->flags & EDGE_ABNORMAL))
+ 	    {
+ 	      basic_block nb;
++	      rtx end;
+ 
+-	      if (simplejump_p (BB_END (e->src)))
++	      insn = BB_END (e->src);
++	      end = PREV_INSN (BB_HEAD (e->src));
++	      while (insn != end
++		     && (!INSN_P (insn) || INSN_LOCATOR (insn) == 0))
++		insn = PREV_INSN (insn);
++	      if (insn != end
++		  && locator_eq (INSN_LOCATOR (insn), (int) e->goto_locus))
++		continue;
++	      if (simplejump_p (BB_END (e->src))
++		  && INSN_LOCATOR (BB_END (e->src)) == 0)
+ 		{
+-		  if (INSN_LOCATOR (BB_END (e->src)) == (int) e->goto_locus)
+-		    continue;
+-		  if (INSN_LOCATOR (BB_END (e->src)) == 0)
+-		    {
+-		      INSN_LOCATOR (BB_END (e->src)) = e->goto_locus;
+-		      continue;
+-		    }
++		  INSN_LOCATOR (BB_END (e->src)) = e->goto_locus;
++		  continue;
+ 		}
+ 	      if (e->dest != EXIT_BLOCK_PTR)
+ 		{
+ 		  insn = BB_HEAD (e->dest);
+-		  if (!INSN_P (insn))
+-		    insn = next_insn (insn);
+-		  if (insn && INSN_P (insn)
+-		      && INSN_LOCATOR (insn) == (int) e->goto_locus)
++		  end = NEXT_INSN (BB_END (e->dest));
++		  while (insn != end && !INSN_P (insn))
++		    insn = NEXT_INSN (insn);
++		  if (insn != end && INSN_LOCATOR (insn)
++		      && locator_eq (INSN_LOCATOR (insn), (int) e->goto_locus))
+ 		    continue;
+ 		}
+ 	      nb = split_edge (e);
+--- gcc/rtl.h.jj	2008-10-07 21:25:44.000000000 +0200
++++ gcc/rtl.h	2008-10-09 11:15:57.000000000 +0200
+@@ -1622,6 +1622,7 @@ extern int insn_line (const_rtx);
+ extern const char * insn_file (const_rtx);
+ extern int locator_line (int);
+ extern const char * locator_file (int);
++extern bool locator_eq (int, int);
+ extern int prologue_locator, epilogue_locator;
+ 
+ /* In jump.c */
+--- gcc/cfgrtl.c.jj	2008-10-07 21:35:33.000000000 +0200
++++ gcc/cfgrtl.c	2008-10-09 10:37:03.000000000 +0200
+@@ -2623,19 +2623,21 @@ cfg_layout_merge_blocks (basic_block a, 
+      some unique locus, emit a nop with that locus in between.  */
+   if (!optimize && EDGE_SUCC (a, 0)->goto_locus)
+     {
+-      rtx insn = BB_END (a);
++      rtx insn = BB_END (a), end = PREV_INSN (BB_HEAD (a));
+       int goto_locus = EDGE_SUCC (a, 0)->goto_locus;
+ 
+-      if (NOTE_P (insn))
+-	insn = prev_nonnote_insn (insn);
+-      if (insn && INSN_P (insn) && INSN_LOCATOR (insn) == goto_locus)
++      while (insn != end && (!INSN_P (insn) || INSN_LOCATOR (insn) == 0))
++	insn = PREV_INSN (insn);
++      if (insn != end && locator_eq (INSN_LOCATOR (insn), goto_locus))
+ 	goto_locus = 0;
+       else
+ 	{
+ 	  insn = BB_HEAD (b);
+-	  if (!INSN_P (insn))
+-	    insn = next_insn (insn);
+-	  if (insn && INSN_P (insn) && INSN_LOCATOR (insn) == goto_locus)
++	  end = NEXT_INSN (BB_END (b));
++	  while (insn != end && !INSN_P (insn))
++	    insn = NEXT_INSN (insn);
++	  if (insn != end && INSN_LOCATOR (insn) != 0
++	      && locator_eq (INSN_LOCATOR (insn), goto_locus))
+ 	    goto_locus = 0;
+ 	}
+       if (goto_locus)
+--- gcc/cfgcleanup.c.jj	2008-10-07 21:35:33.000000000 +0200
++++ gcc/cfgcleanup.c	2008-10-09 11:07:40.000000000 +0200
+@@ -482,7 +482,7 @@ try_forward_edges (int mode, basic_block
+ 		     blocks with different locus are not optimized out.  */
+ 		  int locus = single_succ_edge (target)->goto_locus;
+ 
+-		  if (locus && goto_locus && locus != goto_locus)
++		  if (locus && goto_locus && !locator_eq (locus, goto_locus))
+ 		    counter = n_basic_blocks;
+ 		  else if (locus)
+ 		    goto_locus = locus;
+@@ -491,7 +491,8 @@ try_forward_edges (int mode, basic_block
+ 		    {
+ 		      locus = INSN_LOCATOR (BB_END (target));
+ 
+-		      if (locus && goto_locus && locus != goto_locus)
++		      if (locus && goto_locus
++			  && !locator_eq (locus, goto_locus))
+ 			counter = n_basic_blocks;
+ 		      else if (locus)
+ 			goto_locus = locus;

diff --git a/gcc43.spec b/gcc43.spec
index 3aafd7d..51811c3 100644
--- a/gcc43.spec
+++ b/gcc43.spec
@@ -3,7 +3,7 @@
 %define gcc_version 4.3.2
 # Note, gcc_release must be integer, if you want to add suffixes to
 # %{release}, append them after %{gcc_release} on Release: line.
-%define gcc_release 5
+%define gcc_release 6
 %define _unpackaged_files_terminate_build 0
 %define multilib_64_archs sparc64 ppc64 s390x x86_64
 %define include_gappletviewer 1
@@ -159,6 +159,8 @@ Patch22: gcc43-pr34037.patch
 Patch23: gcc43-pr37738.patch
 Patch24: gcc43-pr29609.patch
 Patch25: gcc43-aes.patch
+Patch26: gcc43-pr29609-2.patch
+Patch27: gcc43-pr29609-3.patch
 
 # On ARM EABI systems, we do want -gnueabi to be part of the
 # target triple.
@@ -468,6 +470,8 @@ which are required to run programs compiled with the GNAT.
 %patch23 -p0 -b .pr37738~
 %patch24 -p0 -b .pr29609~
 %patch25 -p0 -b .aes~
+%patch26 -p0 -b .pr29609-2~
+%patch26 -p0 -b .pr29609-3~
 
 tar xzf %{SOURCE4}
 
@@ -1717,6 +1721,9 @@ fi
 %doc rpm.doc/changelogs/libmudflap/ChangeLog*
 
 %changelog
+* Thu Oct  9 2008 Jakub Jelinek <jakub@redhat.com> 4.3.2-6
+- fix fallouts from the -g -O0 debugging patch (#466169, #466198)
+
 * Wed Oct  8 2008 Jakub Jelinek <jakub@redhat.com> 4.3.2-5
 - update from gcc-4_3-branch
   - PRs c++/37555, c/35712, c/37645, fortran/35770, fortran/35945,

^ permalink raw reply related	[flat|nested] 2+ messages in thread
* [rpms/gcc] rhel-f41-base: 4.3.2-6
@ 2026-06-29 12:23 Jakub Jelinek
  0 siblings, 0 replies; 2+ messages in thread
From: Jakub Jelinek @ 2026-06-29 12:23 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/gcc
Branch : rhel-f41-base
Commit : 5565b20a6bbc49fe30a6474f339d3184113bc075
Author : Jakub Jelinek <jakub@fedoraproject.org>
Date   : 2008-10-09T11:05:47+00:00
Stats  : +119/-1 in 3 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/5565b20a6bbc49fe30a6474f339d3184113bc075?branch=rhel-f41-base

Log:
4.3.2-6

---
diff --git a/gcc43-pr29609-2.patch b/gcc43-pr29609-2.patch
new file mode 100644
index 0000000..e057605
--- /dev/null
+++ b/gcc43-pr29609-2.patch
@@ -0,0 +1,105 @@
+2008-10-09  Jakub Jelinek  <jakub@redhat.com>
+
+	* tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
+	as used.
+	* gimple-low.c (lower_return_expr, lower_builtin_setjmp): Set
+	TREE_BLOCK on the newly created stmts.
+	* tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
+	goto_block on edges if goto_locus is known.
+
+--- gcc/tree-ssa-live.c.jj	2008-10-07 21:25:57.000000000 +0200
++++ gcc/tree-ssa-live.c	2008-10-09 00:25:20.000000000 +0200
+@@ -591,6 +591,8 @@ remove_unused_locals (void)
+     {
+       block_stmt_iterator bsi;
+       tree phi, def;
++      edge_iterator ei;
++      edge e;
+ 
+       /* Walk the statements.  */
+       for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (&bsi))
+@@ -614,6 +616,10 @@ remove_unused_locals (void)
+ 	      mark_all_vars_used (&arg, NULL);
+             }
+         }
++
++      FOR_EACH_EDGE (e, ei, bb->succs)
++	if (e->goto_locus)
++	  TREE_USED (e->goto_block) = true;
+     }
+ 
+   /* Remove unmarked local vars from unexpanded_var_list.  */
+--- gcc/gimple-low.c.jj	2008-10-07 21:25:58.000000000 +0200
++++ gcc/gimple-low.c	2008-10-09 00:42:31.000000000 +0200
+@@ -590,6 +590,7 @@ lower_return_expr (tree_stmt_iterator *t
+  found:
+   t = build1 (GOTO_EXPR, void_type_node, label);
+   SET_EXPR_LOCUS (t, EXPR_LOCUS (stmt));
++  TREE_BLOCK (t) = TREE_BLOCK (stmt);
+   tsi_link_before (tsi, t, TSI_SAME_STMT);
+   tsi_delink (tsi);
+ }
+@@ -672,6 +673,7 @@ lower_builtin_setjmp (tree_stmt_iterator
+   t = implicit_built_in_decls[BUILT_IN_SETJMP_SETUP];
+   t = build_call_expr (t, 2, CALL_EXPR_ARG (stmt, 0), arg);
+   SET_EXPR_LOCUS (t, EXPR_LOCUS (stmt));
++  TREE_BLOCK (t) = TREE_BLOCK (stmt);
+   tsi_link_before (tsi, t, TSI_SAME_STMT);
+ 
+   /* Build 'DEST = 0' and insert.  */
+@@ -680,6 +682,7 @@ lower_builtin_setjmp (tree_stmt_iterator
+       t = build_gimple_modify_stmt (dest, fold_convert (TREE_TYPE (dest),
+ 							integer_zero_node));
+       SET_EXPR_LOCUS (t, EXPR_LOCUS (stmt));
++      TREE_BLOCK (t) = TREE_BLOCK (stmt);
+       tsi_link_before (tsi, t, TSI_SAME_STMT);
+     }
+ 
+@@ -696,6 +699,7 @@ lower_builtin_setjmp (tree_stmt_iterator
+   t = implicit_built_in_decls[BUILT_IN_SETJMP_RECEIVER];
+   t = build_call_expr (t, 1, arg);
+   SET_EXPR_LOCUS (t, EXPR_LOCUS (stmt));
++  TREE_BLOCK (t) = TREE_BLOCK (stmt);
+   tsi_link_before (tsi, t, TSI_SAME_STMT);
+ 
+   /* Build 'DEST = 1' and insert.  */
+@@ -704,6 +708,7 @@ lower_builtin_setjmp (tree_stmt_iterator
+       t = build_gimple_modify_stmt (dest, fold_convert (TREE_TYPE (dest),
+ 							integer_one_node));
+       SET_EXPR_LOCUS (t, EXPR_LOCUS (stmt));
++      TREE_BLOCK (t) = TREE_BLOCK (stmt);
+       tsi_link_before (tsi, t, TSI_SAME_STMT);
+     }
+ 
+--- gcc/tree-cfg.c.jj	2008-10-07 21:39:14.000000000 +0200
++++ gcc/tree-cfg.c	2008-10-09 00:00:48.000000000 +0200
+@@ -634,7 +634,8 @@ make_cond_expr_edges (basic_block bb)
+ #else
+   e->goto_locus = EXPR_LOCUS (COND_EXPR_THEN (entry));
+ #endif
+-  e->goto_block = TREE_BLOCK (COND_EXPR_THEN (entry));
++  if (e->goto_locus)
++    e->goto_block = TREE_BLOCK (COND_EXPR_THEN (entry));
+   e = make_edge (bb, else_bb, EDGE_FALSE_VALUE);
+   if (e)
+     {
+@@ -643,7 +644,8 @@ make_cond_expr_edges (basic_block bb)
+ #else
+       e->goto_locus = EXPR_LOCUS (COND_EXPR_ELSE (entry));
+ #endif
+-      e->goto_block = TREE_BLOCK (COND_EXPR_ELSE (entry));
++      if (e->goto_locus)
++	e->goto_block = TREE_BLOCK (COND_EXPR_ELSE (entry));
+     }
+ 
+   /* We do not need the gotos anymore.  */
+@@ -843,7 +845,8 @@ make_goto_expr_edges (basic_block bb)
+ #else
+       e->goto_locus = EXPR_LOCUS (goto_t);
+ #endif
+-      e->goto_block = TREE_BLOCK (goto_t);
++      if (e->goto_locus)
++	e->goto_block = TREE_BLOCK (goto_t);
+       bsi_remove (&last, true);
+       return;
+     }

diff --git a/gcc43-pr29609-3.patch b/gcc43-pr29609-3.patch
index bc2717a..72791cd 100644
--- a/gcc43-pr29609-3.patch
+++ b/gcc43-pr29609-3.patch
@@ -1,3 +1,16 @@
+2008-10-09  Jakub Jelinek  <jakub@redhat.com>
+
+	* rtl.h (locator_eq): New decl.
+	* cfglayout.c (locator_scope): New function.
+	(insn_scope): Use it.
+	(locator_eq): New function.
+	(fixup_reorder_chain): Search for last insn in src bb
+	that has locator set or first insn in dest bb.  Use
+	locator_eq instead of == to compare locators.
+	* cfgrtl.c (cfg_layout_merge_blocks): Likewise.
+	* cfgcleanup.c (try_forward_edges): Use locator_eq instead of
+	== to compare locators.
+
 --- gcc/cfglayout.c.jj	2008-10-07 21:35:33.000000000 +0200
 +++ gcc/cfglayout.c	2008-10-09 11:18:51.000000000 +0200
 @@ -448,13 +448,12 @@ change_scope (rtx orig_insn, tree s1, tr

diff --git a/gcc43.spec b/gcc43.spec
index 51811c3..07f84d0 100644
--- a/gcc43.spec
+++ b/gcc43.spec
@@ -471,7 +471,7 @@ which are required to run programs compiled with the GNAT.
 %patch24 -p0 -b .pr29609~
 %patch25 -p0 -b .aes~
 %patch26 -p0 -b .pr29609-2~
-%patch26 -p0 -b .pr29609-3~
+%patch27 -p0 -b .pr29609-3~
 
 tar xzf %{SOURCE4}
 

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-06-29 12:23 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:23 [rpms/gcc] rhel-f41-base: 4.3.2-6 Jakub Jelinek
2026-06-29 12:23 Jakub Jelinek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox