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

A new commit has been pushed.

Repo   : rpms/gcc
Branch : rhel-f41-base
Commit : 8799d226ba06c7602515978097a470403e4667f3
Author : Jakub Jelinek <jakub@redhat.com>
Date   : 2013-02-20T19:12:32+01:00
Stats  : +14/-0 in 1 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/8799d226ba06c7602515978097a470403e4667f3?branch=rhel-f41-base

Log:
4.8.0-0.14

---
diff --git a/gcc48-pr56258.patch b/gcc48-pr56258.patch
index 0874988..25b0ca0 100644
--- a/gcc48-pr56258.patch
+++ b/gcc48-pr56258.patch
@@ -8,6 +8,9 @@
 	* projects.texi: Avoid line wrapping inside of @pxref or
 	@xref.
 
+	* doc/cp-tools.texinfo (Virtual Machine Options): Use just
+	one @gccoptlist instead of 3 separate ones.
+
 --- gcc/doc/invoke.texi.jj	2013-01-31 22:57:22.000000000 +0100
 +++ gcc/doc/invoke.texi	2013-02-20 13:06:47.516405739 +0100
 @@ -5612,7 +5612,7 @@ Dump after the peephole pass.
@@ -65,3 +68,14 @@
    role but takes the name of file containing file names similarly to
    @code{Source_List_File}.
  
+--- libjava/classpath/doc/cp-tools.texinfo.jj	2012-12-20 11:38:51.000000000 +0100
++++ libjava/classpath/doc/cp-tools.texinfo	2013-02-20 19:10:42.573925165 +0100
+@@ -2025,7 +2025,7 @@ Doclet, grouped by type.  Explanations a
+ 
+ @item Virtual Machine Options
+ @xref{Virtual Machine Options,,Options Controlling Gjdoc Behavior}.
+-@gccoptlist{-classpath}  @gccoptlist{-bootclasspath}  @gccoptlist{-J}@var{vmopt}
++@gccoptlist{-classpath  -bootclasspath  -J @var{vmopt}}
+ 
+ @end table
+ 

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

A new commit has been pushed.

Repo   : rpms/gcc
Branch : rhel-f41-base
Commit : 7789476ecb41f240499f4201f1d8e573f3b8f612
Author : Jakub Jelinek <jakub@redhat.com>
Date   : 2013-02-20T17:13:24+01:00
Stats  : +523/-406 in 9 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/7789476ecb41f240499f4201f1d8e573f3b8f612?branch=rhel-f41-base

Log:
4.8.0-0.14

---
diff --git a/.gitignore b/.gitignore
index 57f0aa9..7f5d205 100644
--- a/.gitignore
+++ b/.gitignore
@@ -62,3 +62,4 @@
 /gcc-4.8.0-20130211.tar.bz2
 /gcc-4.8.0-20130213.tar.bz2
 /gcc-4.8.0-20130215.tar.bz2
+/gcc-4.8.0-20130220.tar.bz2

diff --git a/gcc.spec b/gcc.spec
index f54c8cc..8861297 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,5 +1,5 @@
-%global DATE 20130215
-%global SVNREV 196084
+%global DATE 20130220
+%global SVNREV 196173
 %global gcc_version 4.8.0
 # Note, gcc_release must be integer, if you want to add suffixes to
 # %{release}, append them after %{gcc_release} on Release: line.
@@ -102,7 +102,7 @@ BuildRequires: binutils >= 2.20.51.0.2-12
 # -static is used several times.
 BuildRequires: glibc-static
 BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, sharutils
-BuildRequires: texinfo, texinfo-tex
+BuildRequires: texinfo, texinfo-tex, /usr/bin/pod2man
 BuildRequires: systemtap-sdt-devel >= 1.3
 %if %{build_go}
 BuildRequires: hostname
@@ -194,9 +194,11 @@ Patch10: gcc48-pr38757.patch
 Patch11: gcc48-libstdc++-docs.patch
 Patch12: gcc48-no-add-needed.patch
 Patch13: gcc48-pr55608.patch
-Patch14: gcc48-asan-fix.patch
-Patch15: gcc48-pr54117.patch
-Patch16: gcc48-asan-speedup.patch
+Patch14: gcc48-asan-speedup.patch
+Patch15: gcc48-pr56258.patch
+Patch16: gcc48-pr56405.patch
+Patch17: gcc48-unused-locals.patch
+Patch18: gcc48-pr56265.patch
 
 Patch1000: fastjar-0.97-segfault.patch
 Patch1001: fastjar-0.97-len1.patch
@@ -749,9 +751,11 @@ package or when debugging this package.
 %endif
 %patch12 -p0 -b .no-add-needed~
 %patch13 -p0 -b .pr55608~
-%patch14 -p0 -b .asan-fix~
-%patch15 -p0 -b .pr54117~
-%patch16 -p0 -b .asan-speedup~
+%patch14 -p0 -b .asan-speedup~
+%patch15 -p0 -b .pr56258~
+%patch16 -p0 -b .pr56405~
+%patch17 -p0 -b .unused-locals~
+%patch18 -p0 -b .pr56265~
 
 %if 0%{?_enable_debug_packages}
 cat > split-debuginfo.sh <<\EOF
@@ -2975,8 +2979,19 @@ fi
 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
 
 %changelog
-* Tue Feb 19 2013 Rex Dieter <rdieter@fedoraproject.org> 4.8.0-0.14
-- rebuild (libmpc)
+* Wed Feb 20 2013 Jakub Jelinek <jakub@redhat.com> 4.8.0-0.14
+- updated from trunk
+  - PRs asan/56330, c++/51242, c++/54276, c++/56373, libquadmath/56379,
+	middle-end/55889, middle-end/56349, pch/54117,
+	rtl-optimization/56348, target/52555, target/54685, target/56214,
+	target/56347, tree-optimization/55334, tree-optimization/56321,
+	tree-optimization/56350, tree-optimization/56366,
+	tree-optimization/56381, tree-optimization/56384,
+	tree-optimization/56396, tree-optimization/56398
+- add BuildRequires: /usr/bin/pod2man to fix man pages generation
+- don't ICE on bogus inline asm in kernel (#912857, PR inline-asm/56405)
+- fix up info page building with texinfo 5.0 (PR bootstrap/56258)
+- devirtualization ICE fix (PR tree-optimization/56265)
 
 * Fri Feb 15 2013 Jakub Jelinek <jakub@redhat.com> 4.8.0-0.13
 - updated from trunk

diff --git a/gcc48-asan-fix.patch b/gcc48-asan-fix.patch
deleted file mode 100644
index 3bc7852..0000000
--- a/gcc48-asan-fix.patch
+++ /dev/null
@@ -1,196 +0,0 @@
-2013-02-15  Jakub Jelinek  <jakub@redhat.com>
-
-	PR sanitizer/56330
-	* asan.c (get_mem_refs_of_builtin_call): Fix up indentation.
-	(instrument_mem_region_access): Create conditional even when
-	the start has been already instrumented.  Don't record
-	conditional instrumentation in the hash table.  Update *iter
-	after second build_check_stmt call.
-	(instrument_builtin_call): For consistency test != NULL_TREE
-	in all start checks.
-
-	* c-c++-common/asan/no-redundant-instrumentation-1.c: Pass
-	3 instead of sizeof (tab) - 1 as last argument.
-	* c-c++-common/asan/pr56330.c: New test.
-
---- gcc/asan.c.jj	2013-02-14 14:45:01.428038792 +0100
-+++ gcc/asan.c	2013-02-15 09:37:18.614963383 +0100
-@@ -747,20 +747,17 @@ get_mem_refs_of_builtin_call (const gimp
- 
-       got_reference_p = true;
-     }
--    else
--      {
--	if (dest)
--	  {
--	    dst->start = dest;
--	    dst->access_size = access_size;
--	    *dst_len = NULL_TREE;
--	    *dst_is_store = is_store;
--	    *dest_is_deref = true;
--	    got_reference_p = true;
--	  }
--      }
-+  else if (dest)
-+    {
-+      dst->start = dest;
-+      dst->access_size = access_size;
-+      *dst_len = NULL_TREE;
-+      *dst_is_store = is_store;
-+      *dest_is_deref = true;
-+      got_reference_p = true;
-+    }
- 
--    return got_reference_p;
-+  return got_reference_p;
- }
- 
- /* Return true iff a given gimple statement has been instrumented.
-@@ -1535,8 +1532,15 @@ instrument_mem_region_access (tree base,
- 
-   /* If the beginning of the memory region has already been
-      instrumented, do not instrument it.  */
--  if (has_mem_ref_been_instrumented (base, 1))
--    goto after_first_instrumentation;
-+  bool start_instrumented = has_mem_ref_been_instrumented (base, 1);
-+
-+  /* If the end of the memory region has already been instrumented, do
-+     not instrument it. */
-+  tree end = asan_mem_ref_get_end (base, len);
-+  bool end_instrumented = has_mem_ref_been_instrumented (end, 1);
-+
-+  if (start_instrumented && end_instrumented)
-+    return;
- 
-   if (!is_gimple_constant (len))
-     {
-@@ -1565,34 +1569,36 @@ instrument_mem_region_access (tree base,
-       gsi = gsi_start_bb (then_bb);
-     }
- 
--  /* Instrument the beginning of the memory region to be accessed,
--     and arrange for the rest of the intrumentation code to be
--     inserted in the then block *after* the current gsi.  */
--  build_check_stmt (location, base, &gsi, /*before_p=*/true, is_store, 1);
--
--  if (then_bb)
--    /* We are in the case where the length of the region is not
--       constant; so instrumentation code is being generated in the
--       'then block' of the 'if (len != 0) condition.  Let's arrange
--       for the subsequent instrumentation statements to go in the
--       'then block'.  */
--    gsi = gsi_last_bb (then_bb);
--  else
--    *iter = gsi;
--
--  update_mem_ref_hash_table (base, 1);
-+  if (!start_instrumented)
-+    {
-+      /* Instrument the beginning of the memory region to be accessed,
-+	 and arrange for the rest of the intrumentation code to be
-+	 inserted in the then block *after* the current gsi.  */
-+      build_check_stmt (location, base, &gsi, /*before_p=*/true, is_store, 1);
-+
-+      if (then_bb)
-+	/* We are in the case where the length of the region is not
-+	   constant; so instrumentation code is being generated in the
-+	   'then block' of the 'if (len != 0) condition.  Let's arrange
-+	   for the subsequent instrumentation statements to go in the
-+	   'then block'.  */
-+	gsi = gsi_last_bb (then_bb);
-+      else
-+        {
-+          *iter = gsi;
-+	  /* Don't remember this access as instrumented, if length
-+	     is unknown.  It might be zero and not being actually
-+	     instrumented, so we can't rely on it being instrumented.  */
-+          update_mem_ref_hash_table (base, 1);
-+	}
-+    }
- 
-- after_first_instrumentation:
-+  if (end_instrumented)
-+    return;
- 
-   /* We want to instrument the access at the end of the memory region,
-      which is at (base + len - 1).  */
- 
--  /* If the end of the memory region has already been instrumented, do
--     not instrument it. */
--  tree end = asan_mem_ref_get_end (base, len);
--  if (has_mem_ref_been_instrumented (end, 1))
--    return;
--
-   /* offset = len - 1;  */
-   len = unshare_expr (len);
-   tree offset;
-@@ -1640,7 +1646,10 @@ instrument_mem_region_access (tree base,
-   gimple_set_location (region_end, location);
-   gimple_seq_add_stmt_without_update (&seq, region_end);
-   gsi_insert_seq_before (&gsi, seq, GSI_SAME_STMT);
--  gsi_prev (&gsi);
-+  if (!start_instrumented || then_bb == NULL)
-+    gsi_prev (&gsi);
-+  else
-+    gsi = gsi_last_bb (then_bb);
- 
-   /* _2 = _1 + offset;  */
-   region_end =
-@@ -1655,7 +1664,10 @@ instrument_mem_region_access (tree base,
-   build_check_stmt (location, gimple_assign_lhs (region_end),
- 		    &gsi, /*before_p=*/false, is_store, 1);
- 
--  update_mem_ref_hash_table (end, 1);
-+  if (then_bb == NULL)
-+    update_mem_ref_hash_table (end, 1);
-+
-+  *iter = gsi_for_stmt (gsi_stmt (*iter));
- }
- 
- /* Instrument the call (to the builtin strlen function) pointed to by
-@@ -1783,7 +1795,7 @@ instrument_builtin_call (gimple_stmt_ite
- 	    }
- 	  else if (src0_len || src1_len || dest_len)
- 	    {
--	      if (src0.start)
-+	      if (src0.start != NULL_TREE)
- 		instrument_mem_region_access (src0.start, src0_len,
- 					      iter, loc, /*is_store=*/false);
- 	      if (src1.start != NULL_TREE)
---- gcc/testsuite/c-c++-common/asan/no-redundant-instrumentation-1.c.jj	2013-02-13 11:53:41.000000000 +0100
-+++ gcc/testsuite/c-c++-common/asan/no-redundant-instrumentation-1.c	2013-02-15 09:51:47.485080706 +0100
-@@ -45,7 +45,7 @@ test1 ()
-   /* There are 2 calls to __builtin___asan_report_store1 and 2 calls
-      to __builtin___asan_report_load1 to instrument the store to
-      (subset of) the memory region of tab.  */
--  __builtin_memcpy (&tab[1], foo, sizeof (tab) - 1);
-+  __builtin_memcpy (&tab[1], foo, 3);
- 
-   /* This should not generate a __builtin___asan_report_load1 because
-      the reference to tab[1] has been already instrumented above.  */
---- gcc/testsuite/c-c++-common/asan/pr56330.c.jj	2013-02-15 09:43:19.293845146 +0100
-+++ gcc/testsuite/c-c++-common/asan/pr56330.c	2013-02-15 09:42:58.000000000 +0100
-@@ -0,0 +1,23 @@
-+/* PR sanitizer/56330 */
-+/* { dg-do compile } */
-+
-+char e[200];
-+
-+struct S
-+{
-+  char a[100];
-+  char b[100];
-+} s;
-+
-+void
-+foo (void)
-+{
-+  __builtin_memcmp (s.a, e, 100);
-+  __builtin_memcmp (s.a, e, 200);
-+}
-+
-+void
-+bar (int *a, char *b, char *c)
-+{
-+  __builtin_memmove (c, b, a[b[0]]);
-+}

diff --git a/gcc48-pr54117.patch b/gcc48-pr54117.patch
deleted file mode 100644
index 5be2b07..0000000
--- a/gcc48-pr54117.patch
+++ /dev/null
@@ -1,198 +0,0 @@
-2013-02-15  Jakub Jelinek  <jakub@redhat.com>
-	    Steven Bosscher  <steven@gcc.gnu.org>
-
-	PR pch/54117
-	* c-opts.c (c_common_post_options): If debug info is enabled
-	and non-dwarf*, refuse to load PCH files and when writing PCH
-	file warn.
-
-	* lib/dg-pch.exp (pch-init, pch-finish,
-	check_effective_target_pch_supported_debug): New procs.
-	(dg-flags-pch): If $pch_unsupported, make tests UNSUPPORTED.
-	Likewise if $pch_unsupported_debug and $flags include -g.
-	Skip FAILs about missing *.gch file if $pch_unsupported_debug
-	and dg-require-effective-target pch_unsupported_debug.
-	* g++.dg/pch/pch.exp: Call pch-init and pch-finish.
-	* objc.dg/pch/pch.exp: Likewise.
-	* gcc.dg/pch/pch.exp: Likewise.
-	* gcc.dg/pch/valid-1.c: Add dg-require-effective-target
-	pch_unsupported_debug.
-	* gcc.dg/pch/valid-1.hs: Likewise.
-	* gcc.dg/pch/valid-1b.c: Likewise.
-	* gcc.dg/pch/valid-1b.hs: Likewise.
-
---- gcc/c-family/c-opts.c.jj	2013-02-14 14:45:01.000000000 +0100
-+++ gcc/c-family/c-opts.c	2013-02-15 12:44:48.936535118 +0100
-@@ -945,6 +945,16 @@ c_common_post_options (const char **pfil
- 	 because the default address space slot then can't be used
- 	 for the output PCH file.  */
-       if (pch_file)
-+	{
-+	  c_common_no_more_pch ();
-+	  /* Only -g0 and -gdwarf* are supported with PCH, for other
-+	     debug formats we warn here and refuse to load any PCH files.  */
-+	  if (write_symbols != NO_DEBUG && write_symbols != DWARF2_DEBUG)
-+	    warning (OPT_Wdeprecated,
-+		     "the \"%s\" debug format cannot be used with "
-+		     "pre-compiled headers", debug_type_names[write_symbols]);
-+	}
-+      else if (write_symbols != NO_DEBUG && write_symbols != DWARF2_DEBUG)
- 	c_common_no_more_pch ();
- 
-       /* Yuk.  WTF is this?  I do know ObjC relies on it somewhere.  */
---- gcc/testsuite/lib/dg-pch.exp.jj	2013-01-11 09:02:39.000000000 +0100
-+++ gcc/testsuite/lib/dg-pch.exp	2013-02-15 15:45:53.747855529 +0100
-@@ -16,8 +16,49 @@
- 
- load_lib copy-file.exp
- 
-+proc pch-init { args } {
-+    global pch_unsupported_debug pch_unsupported
-+
-+    if [info exists pch_unsupported_debug] {
-+	error "pch-init: pch_unsupported_debug is not empty as expected"
-+    }
-+    if [info exists pch_unsupported] {
-+	error "pch-init: pch_unsupported is not empty as expected"
-+    }
-+
-+    set result [check_compile pchtest object "int i;" "-g -x c-header"]
-+    set pch_unsupported_debug \
-+	[regexp "debug format cannot be used with pre-compiled headers" \
-+		[lindex $result 0]]
-+
-+    set pch_unsupported 0
-+    if { $pch_unsupported_debug } {
-+	verbose -log "pch is unsupported with the debug info format"
-+
-+	set result [check_compile pchtest object "int i;" "-x c-header"]
-+	    set pch_unsupported \
-+		[regexp "debug format cannot be used with pre-compiled headers" \
-+			[lindex $result 0]]
-+    }
-+}
-+
-+proc pch-finish { args } {
-+    global pch_unsupported_debug pch_unsupported
-+    unset pch_unsupported_debug
-+    unset pch_unsupported
-+}
-+
-+proc check_effective_target_pch_supported_debug { } {
-+    global pch_unsupported_debug
-+    if { $pch_unsupported_debug } {
-+	return 0
-+    }
-+    return 1
-+}
-+
- proc dg-flags-pch { subdir test otherflags options suffix } {
-     global runtests dg-do-what-default
-+    global pch_unsupported_debug pch_unsupported
- 
-     # If we're only testing specific files and this isn't one of them, skip it.
-     if ![runtest_file_p $runtests $test] {
-@@ -35,6 +76,13 @@ proc dg-flags-pch { subdir test otherfla
-     foreach flags $options {
- 	verbose "Testing $nshort, $otherflags $flags" 1
- 
-+	if { $pch_unsupported != 0 \
-+	     || ( $pch_unsupported_debug != 0 && [regexp " -g" " $flags"] ) } {
-+	    verbose -log "$nshort unsupported because debug format conflicts with PCH"
-+	    unsupported "$nshort $flags"
-+	    continue
-+	}
-+
- 	# For the header files, the default is to precompile.
- 	set dg-do-what-default precompile
- 	catch { file_on_host delete "$bname$suffix" }
-@@ -78,7 +126,8 @@ proc dg-flags-pch { subdir test otherfla
-  		    fail "$nshort $flags assembly comparison"
- 		}
- 	    }
--	} else {
-+	} elseif { $pch_unsupported_debug == 0 \
-+		   || [llength [grep $test "{\[ \t\]\+dg-require-effective-target\[ \t\]\+pch_supported_debug\[ \t\]\+.*\[ \t\]\+}"]] > 0 } {
- 	    verbose -log "pch file '$bname$suffix.gch' missing"
- 	    fail "$nshort $flags"
- 	    if { !$have_errs } {
---- gcc/testsuite/g++.dg/pch/pch.exp.jj	2013-01-11 09:02:44.000000000 +0100
-+++ gcc/testsuite/g++.dg/pch/pch.exp	2013-02-15 14:53:03.517106464 +0100
-@@ -23,6 +23,7 @@ load_lib dg-pch.exp
- 
- # Initialize `dg'.
- dg-init
-+pch-init
- 
- set old_dg_do_what_default "${dg-do-what-default}"
- 
-@@ -36,4 +37,5 @@ foreach test [lsort [glob -nocomplain $s
- set dg-do-what-default "$old_dg_do_what_default"
- 
- # All done.
-+pch-finish
- dg-finish
---- gcc/testsuite/objc.dg/pch/pch.exp.jj	2013-01-11 09:02:44.000000000 +0100
-+++ gcc/testsuite/objc.dg/pch/pch.exp	2013-02-15 14:53:30.063951051 +0100
-@@ -24,8 +24,8 @@ load_lib torture-options.exp
- 
- # Initialize `dg'.
- dg-init
--
- torture-init
-+pch-init
- 
- set-torture-options $DG_TORTURE_OPTIONS
- 
-@@ -59,5 +59,6 @@ if [istarget "*-*-darwin*" ] {
- set dg-do-what-default "$old_dg_do_what_default"
- 
- # All done.
-+pch-finish
- torture-finish
- dg-finish
---- gcc/testsuite/gcc.dg/pch/pch.exp.jj	2013-01-11 09:02:42.000000000 +0100
-+++ gcc/testsuite/gcc.dg/pch/pch.exp	2013-02-15 14:11:27.053896809 +0100
-@@ -26,6 +26,7 @@ load_lib torture-options.exp
- dg-init
- torture-init
- set-torture-options $DG_TORTURE_OPTIONS
-+pch-init
- 
- set old_dg_do_what_default "${dg-do-what-default}"
- 
-@@ -59,5 +60,6 @@ file delete $testh
- set dg-do-what-default "$old_dg_do_what_default"
- 
- # All done.
-+pch-finish
- torture-finish
- dg-finish
---- gcc/testsuite/gcc.dg/pch/valid-1.c.jj	2009-06-08 11:53:48.000000000 +0200
-+++ gcc/testsuite/gcc.dg/pch/valid-1.c	2013-02-15 15:19:44.124833259 +0100
-@@ -1,3 +1,4 @@
-+/* { dg-require-effective-target pch_supported_debug } */
- /* { dg-options "-I. -Winvalid-pch -g" } */
- 
- #include "valid-1.h"/* { dg-warning "created with -gnone, but used with -g" } */
---- gcc/testsuite/gcc.dg/pch/valid-1.hs.jj	2008-09-05 12:54:26.000000000 +0200
-+++ gcc/testsuite/gcc.dg/pch/valid-1.hs	2013-02-15 15:19:50.686794340 +0100
-@@ -1,3 +1,4 @@
-+/* { dg-require-effective-target pch_supported_debug } */
- /* { dg-options "-I. -Winvalid-pch -g0" } */
- 
- extern int x;
---- gcc/testsuite/gcc.dg/pch/valid-1b.c.jj	2008-09-05 12:54:26.000000000 +0200
-+++ gcc/testsuite/gcc.dg/pch/valid-1b.c	2013-02-15 15:19:55.935763631 +0100
-@@ -1,3 +1,4 @@
-+/* { dg-require-effective-target pch_supported_debug } */
- /* { dg-options "-I. -Winvalid-pch -g0" } */
- 
- #include "valid-1b.h"
---- gcc/testsuite/gcc.dg/pch/valid-1b.hs.jj	2008-09-05 12:54:26.000000000 +0200
-+++ gcc/testsuite/gcc.dg/pch/valid-1b.hs	2013-02-15 15:20:02.214727794 +0100
-@@ -1,3 +1,4 @@
-+/* { dg-require-effective-target pch_supported_debug } */
- /* { dg-options "-I. -Winvalid-pch -g" } */
- 
- extern int x;

diff --git a/gcc48-pr56258.patch b/gcc48-pr56258.patch
new file mode 100644
index 0000000..f8af4c0
--- /dev/null
+++ b/gcc48-pr56258.patch
@@ -0,0 +1,30 @@
+2013-02-20  Jakub Jelinek  <jakub@redhat.com>
+
+	PR bootstrap/56258
+	* doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
+	instead of @itemx.
+
+	* gnat-style.texi (@title): Remove @hfill.
+
+--- gcc/ada/gnat-style.texi.jj	2012-08-10 12:57:33.000000000 +0200
++++ gcc/ada/gnat-style.texi	2013-02-20 13:06:03.042667300 +0100
+@@ -42,7 +42,7 @@ Texts.  A copy of the license is include
+ @titlepage
+ @titlefont{GNAT Coding Style:}
+ @sp 1
+-@title @hfill A Guide for GNAT Developers
++@title A Guide for GNAT Developers
+ @subtitle GNAT, The GNU Ada Compiler
+ @versionsubtitle
+ @author Ada Core Technologies, Inc.
+--- gcc/doc/invoke.texi.jj	2013-01-31 22:57:22.000000000 +0100
++++ gcc/doc/invoke.texi	2013-02-20 13:06:47.516405739 +0100
+@@ -5612,7 +5612,7 @@ Dump after the peephole pass.
+ @opindex fdump-rtl-postreload
+ Dump after post-reload optimizations.
+ 
+-@itemx -fdump-rtl-pro_and_epilogue
++@item -fdump-rtl-pro_and_epilogue
+ @opindex fdump-rtl-pro_and_epilogue
+ Dump after generating the function prologues and epilogues.
+ 

diff --git a/gcc48-pr56265.patch b/gcc48-pr56265.patch
new file mode 100644
index 0000000..d651da6
--- /dev/null
+++ b/gcc48-pr56265.patch
@@ -0,0 +1,132 @@
+2013-02-20  Jan Hubicka  <jh@suse.cz>
+
+	PR tree-optimization/56265
+	* ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph when target is
+	referenced for firs ttime.
+
+	* testsuite/g++.dg/ipa/devirt-11.C: New testcase.
+
+--- gcc/ipa-prop.c	(revision 196176)
++++ gcc/ipa-prop.c	(revision 196177)
+@@ -2100,10 +2100,65 @@ ipa_make_edge_direct_to_target (struct c
+   if (TREE_CODE (target) == ADDR_EXPR)
+     target = TREE_OPERAND (target, 0);
+   if (TREE_CODE (target) != FUNCTION_DECL)
+-    return NULL;
++    {
++      target = canonicalize_constructor_val (target, NULL);
++      if (!target || TREE_CODE (target) != FUNCTION_DECL)
++	{
++	  if (dump_file)
++	    fprintf (dump_file, "ipa-prop: Discovered direct call to non-function"
++				" in (%s/%i).\n",
++		     cgraph_node_name (ie->caller), ie->caller->uid);
++	  return NULL;
++	}
++    }
+   callee = cgraph_get_node (target);
+-  if (!callee)
+-    return NULL;
++
++  /* Because may-edges are not explicitely represented and vtable may be external,
++     we may create the first reference to the object in the unit.  */
++  if (!callee || callee->global.inlined_to)
++    {
++      struct cgraph_node *first_clone = callee;
++
++      /* We are better to ensure we can refer to it.
++	 In the case of static functions we are out of luck, since we already	
++	 removed its body.  In the case of public functions we may or may
++	 not introduce the reference.  */
++      if (!canonicalize_constructor_val (target, NULL)
++	  || !TREE_PUBLIC (target))
++	{
++	  if (dump_file)
++	    fprintf (dump_file, "ipa-prop: Discovered call to a known target "
++		     "(%s/%i -> %s/%i) but can not refer to it. Giving up.\n",
++		     xstrdup (cgraph_node_name (ie->caller)), ie->caller->uid,
++		     xstrdup (cgraph_node_name (ie->callee)), ie->callee->uid);
++	  return NULL;
++	}
++
++      /* Create symbol table node.  Even if inline clone exists, we can not take
++	 it as a target of non-inlined call.  */
++      callee = cgraph_create_node (target);
++
++      /* OK, we previously inlined the function, then removed the offline copy and
++	 now we want it back for external call.  This can happen when devirtualizing
++	 while inlining function called once that happens after extern inlined and
++	 virtuals are already removed.  In this case introduce the external node
++	 and make it available for call.  */
++      if (first_clone)
++	{
++	  first_clone->clone_of = callee;
++	  callee->clones = first_clone;
++	  symtab_prevail_in_asm_name_hash ((symtab_node)callee);
++	  symtab_insert_node_to_hashtable ((symtab_node)callee);
++	  if (dump_file)
++	    fprintf (dump_file, "ipa-prop: Introduced new external node "
++		     "(%s/%i) and turned into root of the clone tree.\n",
++		     xstrdup (cgraph_node_name (callee)), callee->uid);
++	}
++      else if (dump_file)
++	fprintf (dump_file, "ipa-prop: Introduced new external node "
++		 "(%s/%i).\n",
++		 xstrdup (cgraph_node_name (callee)), callee->uid);
++    }
+   ipa_check_create_node_params ();
+ 
+   /* We can not make edges to inline clones.  It is bug that someone removed
+--- gcc/testsuite/g++.dg/ipa/devirt-11.C	(revision 0)
++++ gcc/testsuite/g++.dg/ipa/devirt-11.C	(revision 196177)
+@@ -0,0 +1,50 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -fdump-ipa-inline" } */
++int baz ();
++struct A
++{
++  virtual int fn2 () = 0;
++  virtual int *fn3 ();
++  double *fn4 ();
++  int fn5 (int);
++  template <class T>
++  void fn1 (A &, T) { fn3 (); fn4 (); fn2 (); }
++};
++struct B : A
++{
++  int fn2 () { return 6; }
++  void fn3 (int, double);
++  B (bool = true);
++  B (int, int);
++};
++template <typename T>
++void
++foo (B &x, A &y, A &z)
++{
++  y.fn2 ();
++  z.fn2 ();
++  int i = baz ();
++  int j = (y.fn3 ())[i];
++  x.fn3 (j, (y.fn4 ())[i] + (z.fn4 ())[z.fn5 (j)]);
++}
++inline B
++operator+ (A &y, A &z)
++{
++  B x;
++  foo<int> (x, y, z);
++  return x;
++}
++void
++bar ()
++{
++  B a, b, c (4, 0), d;
++  a.fn1 (b, .6);
++  baz ();
++  c + d;
++}
++/* While inlining function called once we should devirtualize a new call to fn2
++   and two to fn3. While doing so the new symbol for fn2 needs to be
++   introduced.  */
++/* { dg-final { scan-ipa-dump-times "Discovered a virtual call to a known target" 3 "inline"  } } */
++/* { dg-final { scan-ipa-dump-times "and turned into root of the clone tree" 1 "inline"  } } */
++/* { dg-final { cleanup-ipa-dump "inline" } } */

diff --git a/gcc48-pr56405.patch b/gcc48-pr56405.patch
new file mode 100644
index 0000000..d1cddb1
--- /dev/null
+++ b/gcc48-pr56405.patch
@@ -0,0 +1,36 @@
+2013-02-20  Jakub Jelinek  <jakub@redhat.com>
+
+	PR inline-asm/56405
+	* expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
+	use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
+
+	* gcc.c-torture/compile/pr56405.c: New test.
+
+--- gcc/expr.c.jj	2013-01-18 18:09:40.000000000 +0100
++++ gcc/expr.c	2013-02-20 10:29:34.513143634 +0100
+@@ -9551,6 +9551,7 @@ expand_expr_real_1 (tree exp, rtx target
+ 	set_mem_addr_space (temp, as);
+ 	align = get_object_alignment (exp);
+ 	if (modifier != EXPAND_WRITE
++	    && modifier != EXPAND_MEMORY
+ 	    && mode != BLKmode
+ 	    && align < GET_MODE_ALIGNMENT (mode)
+ 	    /* If the target does not have special handling for unaligned
+@@ -9639,6 +9640,7 @@ expand_expr_real_1 (tree exp, rtx target
+ 	if (TREE_THIS_VOLATILE (exp))
+ 	  MEM_VOLATILE_P (temp) = 1;
+ 	if (modifier != EXPAND_WRITE
++	    && modifier != EXPAND_MEMORY
+ 	    && mode != BLKmode
+ 	    && align < GET_MODE_ALIGNMENT (mode))
+ 	  {
+--- gcc/testsuite/gcc.c-torture/compile/pr56405.c.jj	2013-02-20 10:32:17.807250979 +0100
++++ gcc/testsuite/gcc.c-torture/compile/pr56405.c	2013-02-20 10:32:46.963090873 +0100
+@@ -0,0 +1,7 @@
++/* PR inline-asm/56405 */
++
++void
++foo (void)
++{
++  asm volatile ("" : "+m" (*(volatile unsigned short *) 0x1001UL));
++}

diff --git a/gcc48-unused-locals.patch b/gcc48-unused-locals.patch
new file mode 100644
index 0000000..dff16de
--- /dev/null
+++ b/gcc48-unused-locals.patch
@@ -0,0 +1,297 @@
+2013-02-20  Richard Biener  <rguenther@suse.de>
+
+	* tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
+	* tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
+	* tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
+	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
+	not return anything.
+	(rename_ssa_copies): Do not remove unused locals.
+	* tree-ssa-ccp.c (do_ssa_ccp): Likewise.
+	* tree-ssanames.c (pass_release_ssa_names): Remove unused
+	locals first.
+	* passes.c (execute_function_todo): Do not schedule unused locals
+	removal if cleanup_tree_cfg did something.
+	* tree-ssa-live.c (remove_unused_locals): Dump statistics
+	about the number of removed locals.
+
+	* gcc.dg/tree-ssa/forwprop-8.c: Adjust.
+
+--- gcc/tree-ssa-copyrename.c	(revision 196173)
++++ gcc/tree-ssa-copyrename.c	(revision 196174)
+@@ -113,7 +113,7 @@ static struct
+ /* Coalesce the partitions in MAP representing VAR1 and VAR2 if it is valid.
+    Choose a representative for the partition, and send debug info to DEBUG.  */
+ 
+-static bool
++static void
+ copy_rename_partition_coalesce (var_map map, tree var1, tree var2, FILE *debug)
+ {
+   int p1, p2, p3;
+@@ -146,7 +146,7 @@ copy_rename_partition_coalesce (var_map
+     {
+       if (debug)
+ 	fprintf (debug, " : Already coalesced.\n");
+-      return false;
++      return;
+     }
+ 
+   rep1 = partition_to_var (map, p1);
+@@ -154,7 +154,7 @@ copy_rename_partition_coalesce (var_map
+   root1 = SSA_NAME_VAR (rep1);
+   root2 = SSA_NAME_VAR (rep2);
+   if (!root1 && !root2)
+-    return false;
++    return;
+ 
+   /* Don't coalesce if one of the variables occurs in an abnormal PHI.  */
+   abnorm = (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (rep1)
+@@ -163,7 +163,7 @@ copy_rename_partition_coalesce (var_map
+     {
+       if (debug)
+ 	fprintf (debug, " : Abnormal PHI barrier.  No coalesce.\n");
+-      return false;
++      return;
+     }
+ 
+   /* Partitions already have the same root, simply merge them.  */
+@@ -172,7 +172,7 @@ copy_rename_partition_coalesce (var_map
+       p1 = partition_union (map->var_partition, p1, p2);
+       if (debug)
+ 	fprintf (debug, " : Same root, coalesced --> P%d.\n", p1);
+-      return false;
++      return;
+     }
+ 
+   /* Never attempt to coalesce 2 different parameters.  */
+@@ -181,7 +181,7 @@ copy_rename_partition_coalesce (var_map
+     {
+       if (debug)
+         fprintf (debug, " : 2 different PARM_DECLS. No coalesce.\n");
+-      return false;
++      return;
+     }
+ 
+   if ((root1 && TREE_CODE (root1) == RESULT_DECL)
+@@ -189,7 +189,7 @@ copy_rename_partition_coalesce (var_map
+     {
+       if (debug)
+         fprintf (debug, " : One root a RESULT_DECL. No coalesce.\n");
+-      return false;
++      return;
+     }
+ 
+   ign1 = !root1 || (TREE_CODE (root1) == VAR_DECL && DECL_IGNORED_P (root1));
+@@ -206,7 +206,7 @@ copy_rename_partition_coalesce (var_map
+ 	{
+ 	  if (debug)
+ 	    fprintf (debug, " : 2 different USER vars. No coalesce.\n");
+-	  return false;
++	  return;
+ 	}
+       else
+ 	ign2 = true;
+@@ -220,7 +220,7 @@ copy_rename_partition_coalesce (var_map
+ 	{
+ 	  if (debug)
+ 	    fprintf (debug, " : 2 default defs. No coalesce.\n");
+-	  return false;
++	  return;
+ 	}
+       else
+         {
+@@ -240,7 +240,7 @@ copy_rename_partition_coalesce (var_map
+     {
+       if (debug)
+ 	fprintf (debug, " : Choosen variable has no root.  No coalesce.\n");
+-      return false;
++      return;
+     }
+ 
+   /* Don't coalesce if the new chosen root variable would be read-only.
+@@ -253,7 +253,7 @@ copy_rename_partition_coalesce (var_map
+     {
+       if (debug)
+ 	fprintf (debug, " : Readonly variable.  No coalesce.\n");
+-      return false;
++      return;
+     }
+ 
+   /* Don't coalesce if the two variables aren't type compatible .  */
+@@ -266,7 +266,7 @@ copy_rename_partition_coalesce (var_map
+     {
+       if (debug)
+ 	fprintf (debug, " : Incompatible types.  No coalesce.\n");
+-      return false;
++      return;
+     }
+ 
+   /* Merge the two partitions.  */
+@@ -288,7 +288,6 @@ copy_rename_partition_coalesce (var_map
+ 			  TDF_SLIM);
+       fprintf (debug, "\n");
+     }
+-  return true;
+ }
+ 
+ 
+@@ -308,7 +307,6 @@ rename_ssa_copies (void)
+   gimple stmt, phi;
+   unsigned x;
+   FILE *debug;
+-  bool updated = false;
+ 
+   memset (&stats, 0, sizeof (stats));
+ 
+@@ -330,7 +328,7 @@ rename_ssa_copies (void)
+ 	      tree lhs = gimple_assign_lhs (stmt);
+ 	      tree rhs = gimple_assign_rhs1 (stmt);
+ 
+-	      updated |= copy_rename_partition_coalesce (map, lhs, rhs, debug);
++	      copy_rename_partition_coalesce (map, lhs, rhs, debug);
+ 	    }
+ 	}
+     }
+@@ -358,8 +356,8 @@ rename_ssa_copies (void)
+ 	      {
+ 		tree arg = PHI_ARG_DEF (phi, i);
+ 		if (TREE_CODE (arg) == SSA_NAME)
+-		  updated |= copy_rename_partition_coalesce (map, res, arg,
+-							     debug);
++		  copy_rename_partition_coalesce (map, res, arg,
++						  debug);
+ 	      }
+ 	  /* Else if all arguments are in the same partition try to merge
+ 	     it with the result.  */
+@@ -390,9 +388,9 @@ rename_ssa_copies (void)
+ 		    }
+ 		}
+ 	      if (all_p_same == 1)
+-		updated |= copy_rename_partition_coalesce (map, res,
+-							   PHI_ARG_DEF (phi, 0),
+-							   debug);
++		copy_rename_partition_coalesce (map, res,
++						PHI_ARG_DEF (phi, 0),
++						debug);
+ 	    }
+         }
+     }
+@@ -426,7 +424,7 @@ rename_ssa_copies (void)
+   statistics_counter_event (cfun, "copies coalesced",
+ 			    stats.coalesced);
+   delete_var_map (map);
+-  return updated ? TODO_remove_unused_locals : 0;
++  return 0;
+ }
+ 
+ /* Return true if copy rename is to be performed.  */
+--- gcc/tree-ssa-ccp.c	(revision 196173)
++++ gcc/tree-ssa-ccp.c	(revision 196174)
+@@ -2108,7 +2108,7 @@ do_ssa_ccp (void)
+   ccp_initialize ();
+   ssa_propagate (ccp_visit_stmt, ccp_visit_phi_node);
+   if (ccp_finalize ())
+-    todo = (TODO_cleanup_cfg | TODO_update_ssa | TODO_remove_unused_locals);
++    todo = (TODO_cleanup_cfg | TODO_update_ssa);
+   free_dominance_info (CDI_DOMINATORS);
+   return todo;
+ }
+--- gcc/tree-call-cdce.c	(revision 196173)
++++ gcc/tree-call-cdce.c	(revision 196174)
+@@ -898,11 +898,10 @@ tree_call_cdce (void)
+       /* As we introduced new control-flow we need to insert PHI-nodes
+          for the call-clobbers of the remaining call.  */
+       mark_virtual_operands_for_renaming (cfun);
+-      return (TODO_update_ssa | TODO_cleanup_cfg | TODO_ggc_collect
+-              | TODO_remove_unused_locals);
++      return TODO_update_ssa;
+     }
+-  else
+-    return 0;
++
++  return 0;
+ }
+ 
+ static bool
+--- gcc/tree-ssa-live.c	(revision 196173)
++++ gcc/tree-ssa-live.c	(revision 196174)
+@@ -889,7 +889,10 @@ remove_unused_locals (void)
+       dstidx++;
+     }
+   if (dstidx != num)
+-    cfun->local_decls->truncate (dstidx);
++    {
++      statistics_counter_event (cfun, "unused VAR_DECLs removed", num - dstidx);
++      cfun->local_decls->truncate (dstidx);
++    }
+ 
+   remove_unused_scope_block_p (DECL_INITIAL (current_function_decl));
+   clear_unused_block_pointer ();
+--- gcc/tree-ssa-forwprop.c	(revision 196173)
++++ gcc/tree-ssa-forwprop.c	(revision 196174)
+@@ -2936,7 +2936,6 @@ ssa_forward_propagate_and_combine (void)
+ 		  && forward_propagate_addr_expr (lhs, rhs))
+ 		{
+ 		  release_defs (stmt);
+-		  todoflags |= TODO_remove_unused_locals;
+ 		  gsi_remove (&gsi, true);
+ 		}
+ 	      else
+@@ -2961,7 +2960,6 @@ ssa_forward_propagate_and_combine (void)
+ 							       off)))))
+ 		{
+ 		  release_defs (stmt);
+-		  todoflags |= TODO_remove_unused_locals;
+ 		  gsi_remove (&gsi, true);
+ 		}
+ 	      else if (is_gimple_min_invariant (rhs))
+--- gcc/tree-ssa-dce.c	(revision 196173)
++++ gcc/tree-ssa-dce.c	(revision 196174)
+@@ -1607,10 +1607,8 @@ perform_tree_ssa_dce (bool aggressive)
+   free_edge_list (el);
+ 
+   if (something_changed)
+-    return (TODO_update_ssa | TODO_cleanup_cfg | TODO_ggc_collect
+-	    | TODO_remove_unused_locals);
+-  else
+-    return 0;
++    return TODO_update_ssa | TODO_cleanup_cfg;
++  return 0;
+ }
+ 
+ /* Pass entry points.  */
+--- gcc/passes.c	(revision 196173)
++++ gcc/passes.c	(revision 196174)
+@@ -1918,10 +1918,7 @@ execute_function_todo (void *data)
+   /* Always cleanup the CFG before trying to update SSA.  */
+   if (flags & TODO_cleanup_cfg)
+     {
+-      bool cleanup = cleanup_tree_cfg ();
+-
+-      if (cleanup && (cfun->curr_properties & PROP_ssa))
+-	flags |= TODO_remove_unused_locals;
++      cleanup_tree_cfg ();
+ 
+       /* When cleanup_tree_cfg merges consecutive blocks, it may
+ 	 perform some simplistic propagation when removing single
+--- gcc/tree-ssanames.c	(revision 196173)
++++ gcc/tree-ssanames.c	(revision 196174)
+@@ -455,7 +455,7 @@ struct gimple_opt_pass pass_release_ssa_
+   PROP_ssa,				/* properties_required */
+   0,					/* properties_provided */
+   0,					/* properties_destroyed */
+-  0,					/* todo_flags_start */
+-  0              			/* todo_flags_finish */
++  TODO_remove_unused_locals,		/* todo_flags_start */
++  0					/* todo_flags_finish */
+  }
+ };
+--- gcc/testsuite/gcc.dg/tree-ssa/forwprop-8.c	(revision 196173)
++++ gcc/testsuite/gcc.dg/tree-ssa/forwprop-8.c	(revision 196174)
+@@ -11,6 +11,5 @@ int foo(struct X *q)
+ 
+ 
+ /* We should have propragated &q->a into (*pointer).  */
+-/* { dg-final { scan-tree-dump-times "pointer" 0 "forwprop1"} } */
+-/* { dg-final { scan-tree-dump "\\\[0\\\]" "forwprop1" } } */
++/* { dg-final { scan-tree-dump "q_.\\\(D\\\)\\\]\\\[0\\\];" "forwprop1" } } */
+ /* { dg-final { cleanup-tree-dump "forwprop1" } } */

diff --git a/sources b/sources
index 032d95c..73225ef 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
 be78a47bd82523250eb3e91646db5b3d  cloog-0.18.0.tar.gz
 2659f09c2e43ef8b7d4406321753f1b2  fastjar-0.97.tar.gz
+d18630509460934dfd7163a884b63ecd  gcc-4.8.0-20130220.tar.bz2
 bce1586384d8635a76d2f017fb067cd2  isl-0.11.1.tar.bz2
-4fa6cbda8e98ae790212c6b7b00fb939  gcc-4.8.0-20130215.tar.bz2

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

A new commit has been pushed.

Repo   : rpms/gcc
Branch : rhel-f41-base
Commit : 48c4d3a12f6334774317f2e0ef6fda8d66048db5
Author : Jakub Jelinek <jakub@redhat.com>
Date   : 2013-02-20T17:50:11+01:00
Stats  : +46/-9 in 1 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/48c4d3a12f6334774317f2e0ef6fda8d66048db5?branch=rhel-f41-base

Log:
4.8.0-0.14

---
diff --git a/gcc48-pr56258.patch b/gcc48-pr56258.patch
index f8af4c0..0874988 100644
--- a/gcc48-pr56258.patch
+++ b/gcc48-pr56258.patch
@@ -5,7 +5,20 @@
 	instead of @itemx.
 
 	* gnat-style.texi (@title): Remove @hfill.
+	* projects.texi: Avoid line wrapping inside of @pxref or
+	@xref.
 
+--- gcc/doc/invoke.texi.jj	2013-01-31 22:57:22.000000000 +0100
++++ gcc/doc/invoke.texi	2013-02-20 13:06:47.516405739 +0100
+@@ -5612,7 +5612,7 @@ Dump after the peephole pass.
+ @opindex fdump-rtl-postreload
+ Dump after post-reload optimizations.
+ 
+-@itemx -fdump-rtl-pro_and_epilogue
++@item -fdump-rtl-pro_and_epilogue
+ @opindex fdump-rtl-pro_and_epilogue
+ Dump after generating the function prologues and epilogues.
+ 
 --- gcc/ada/gnat-style.texi.jj	2012-08-10 12:57:33.000000000 +0200
 +++ gcc/ada/gnat-style.texi	2013-02-20 13:06:03.042667300 +0100
 @@ -42,7 +42,7 @@ Texts.  A copy of the license is include
@@ -17,14 +30,38 @@
  @subtitle GNAT, The GNU Ada Compiler
  @versionsubtitle
  @author Ada Core Technologies, Inc.
---- gcc/doc/invoke.texi.jj	2013-01-31 22:57:22.000000000 +0100
-+++ gcc/doc/invoke.texi	2013-02-20 13:06:47.516405739 +0100
-@@ -5612,7 +5612,7 @@ Dump after the peephole pass.
- @opindex fdump-rtl-postreload
- Dump after post-reload optimizations.
+--- gcc/ada/projects.texi.jj	2013-01-04 11:16:24.000000000 +0100
++++ gcc/ada/projects.texi	2013-02-20 17:48:41.582645159 +0100
+@@ -48,8 +48,7 @@ project files allow you to specify:
+ @item Source file naming conventions; you can specify these either globally or for
+   individual compilation units (@pxref{Naming Schemes}).
+ @item Change any of the above settings depending on external values, thus enabling
+-  the reuse of the projects in various @b{scenarios} (@pxref{Scenarios
+-  in Projects}).
++  the reuse of the projects in various @b{scenarios} (@pxref{Scenarios in Projects}).
+ @item Automatically build libraries as part of the build process
+   (@pxref{Library Projects}).
  
--@itemx -fdump-rtl-pro_and_epilogue
-+@item -fdump-rtl-pro_and_epilogue
- @opindex fdump-rtl-pro_and_epilogue
- Dump after generating the function prologues and epilogues.
+@@ -360,8 +359,8 @@ locating the specified source files in t
+ 
+ @item For various reasons, it is sometimes useful to have a project with no
+   sources (most of the time because the attributes defined in the project
+-  file will be reused in other projects, as explained in @pxref{Organizing
+-  Projects into Subsystems}. To do this, the attribute
++  file will be reused in other projects, as explained in
++  @pxref{Organizing Projects into Subsystems}. To do this, the attribute
+   @emph{Source_Files} is set to the empty list, i.e. @code{()}. Alternatively,
+   @emph{Source_Dirs} can be set to the empty list, with the same
+   result.
+@@ -388,8 +387,9 @@ locating the specified source files in t
+   This can be done thanks to the attribute @b{Excluded_Source_Files}
+   (or its synonym @b{Locally_Removed_Files}).
+   Its value is the list of file names that should not be taken into account.
+-  This attribute is often used when extending a project, @xref{Project
+-  Extension}. A similar attribute @b{Excluded_Source_List_File} plays the same
++  This attribute is often used when extending a project,
++  @xref{Project Extension}. A similar attribute
++  @b{Excluded_Source_List_File} plays the same
+   role but takes the name of file containing file names similarly to
+   @code{Source_List_File}.
  

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

A new commit has been pushed.

Repo   : rpms/gcc
Branch : rhel-f41-base
Commit : 7c033670819a0c6c50a3edd7a8dade0649d847f2
Author : Jakub Jelinek <jakub@redhat.com>
Date   : 2013-02-20T17:12:51+01:00
Stats  : +525/-405 in 9 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/7c033670819a0c6c50a3edd7a8dade0649d847f2?branch=rhel-f41-base

Log:
4.8.0-0.14

---
diff --git a/.gitignore b/.gitignore
index 57f0aa9..7f5d205 100644
--- a/.gitignore
+++ b/.gitignore
@@ -62,3 +62,4 @@
 /gcc-4.8.0-20130211.tar.bz2
 /gcc-4.8.0-20130213.tar.bz2
 /gcc-4.8.0-20130215.tar.bz2
+/gcc-4.8.0-20130220.tar.bz2

diff --git a/gcc.spec b/gcc.spec
index bfab4b8..8861297 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,9 +1,9 @@
-%global DATE 20130215
-%global SVNREV 196084
+%global DATE 20130220
+%global SVNREV 196173
 %global gcc_version 4.8.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.13
+%global gcc_release 0.14
 %global _unpackaged_files_terminate_build 0
 %global multilib_64_archs sparc64 ppc64 s390x x86_64
 %ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha
@@ -102,7 +102,7 @@ BuildRequires: binutils >= 2.20.51.0.2-12
 # -static is used several times.
 BuildRequires: glibc-static
 BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, sharutils
-BuildRequires: texinfo, texinfo-tex
+BuildRequires: texinfo, texinfo-tex, /usr/bin/pod2man
 BuildRequires: systemtap-sdt-devel >= 1.3
 %if %{build_go}
 BuildRequires: hostname
@@ -194,9 +194,11 @@ Patch10: gcc48-pr38757.patch
 Patch11: gcc48-libstdc++-docs.patch
 Patch12: gcc48-no-add-needed.patch
 Patch13: gcc48-pr55608.patch
-Patch14: gcc48-asan-fix.patch
-Patch15: gcc48-pr54117.patch
-Patch16: gcc48-asan-speedup.patch
+Patch14: gcc48-asan-speedup.patch
+Patch15: gcc48-pr56258.patch
+Patch16: gcc48-pr56405.patch
+Patch17: gcc48-unused-locals.patch
+Patch18: gcc48-pr56265.patch
 
 Patch1000: fastjar-0.97-segfault.patch
 Patch1001: fastjar-0.97-len1.patch
@@ -749,9 +751,11 @@ package or when debugging this package.
 %endif
 %patch12 -p0 -b .no-add-needed~
 %patch13 -p0 -b .pr55608~
-%patch14 -p0 -b .asan-fix~
-%patch15 -p0 -b .pr54117~
-%patch16 -p0 -b .asan-speedup~
+%patch14 -p0 -b .asan-speedup~
+%patch15 -p0 -b .pr56258~
+%patch16 -p0 -b .pr56405~
+%patch17 -p0 -b .unused-locals~
+%patch18 -p0 -b .pr56265~
 
 %if 0%{?_enable_debug_packages}
 cat > split-debuginfo.sh <<\EOF
@@ -2975,6 +2979,20 @@ fi
 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
 
 %changelog
+* Wed Feb 20 2013 Jakub Jelinek <jakub@redhat.com> 4.8.0-0.14
+- updated from trunk
+  - PRs asan/56330, c++/51242, c++/54276, c++/56373, libquadmath/56379,
+	middle-end/55889, middle-end/56349, pch/54117,
+	rtl-optimization/56348, target/52555, target/54685, target/56214,
+	target/56347, tree-optimization/55334, tree-optimization/56321,
+	tree-optimization/56350, tree-optimization/56366,
+	tree-optimization/56381, tree-optimization/56384,
+	tree-optimization/56396, tree-optimization/56398
+- add BuildRequires: /usr/bin/pod2man to fix man pages generation
+- don't ICE on bogus inline asm in kernel (#912857, PR inline-asm/56405)
+- fix up info page building with texinfo 5.0 (PR bootstrap/56258)
+- devirtualization ICE fix (PR tree-optimization/56265)
+
 * Fri Feb 15 2013 Jakub Jelinek <jakub@redhat.com> 4.8.0-0.13
 - updated from trunk
   - PRs bootstrap/56327, c++/52026, c++/54922, c++/55003, c++/55220,

diff --git a/gcc48-asan-fix.patch b/gcc48-asan-fix.patch
deleted file mode 100644
index 3bc7852..0000000
--- a/gcc48-asan-fix.patch
+++ /dev/null
@@ -1,196 +0,0 @@
-2013-02-15  Jakub Jelinek  <jakub@redhat.com>
-
-	PR sanitizer/56330
-	* asan.c (get_mem_refs_of_builtin_call): Fix up indentation.
-	(instrument_mem_region_access): Create conditional even when
-	the start has been already instrumented.  Don't record
-	conditional instrumentation in the hash table.  Update *iter
-	after second build_check_stmt call.
-	(instrument_builtin_call): For consistency test != NULL_TREE
-	in all start checks.
-
-	* c-c++-common/asan/no-redundant-instrumentation-1.c: Pass
-	3 instead of sizeof (tab) - 1 as last argument.
-	* c-c++-common/asan/pr56330.c: New test.
-
---- gcc/asan.c.jj	2013-02-14 14:45:01.428038792 +0100
-+++ gcc/asan.c	2013-02-15 09:37:18.614963383 +0100
-@@ -747,20 +747,17 @@ get_mem_refs_of_builtin_call (const gimp
- 
-       got_reference_p = true;
-     }
--    else
--      {
--	if (dest)
--	  {
--	    dst->start = dest;
--	    dst->access_size = access_size;
--	    *dst_len = NULL_TREE;
--	    *dst_is_store = is_store;
--	    *dest_is_deref = true;
--	    got_reference_p = true;
--	  }
--      }
-+  else if (dest)
-+    {
-+      dst->start = dest;
-+      dst->access_size = access_size;
-+      *dst_len = NULL_TREE;
-+      *dst_is_store = is_store;
-+      *dest_is_deref = true;
-+      got_reference_p = true;
-+    }
- 
--    return got_reference_p;
-+  return got_reference_p;
- }
- 
- /* Return true iff a given gimple statement has been instrumented.
-@@ -1535,8 +1532,15 @@ instrument_mem_region_access (tree base,
- 
-   /* If the beginning of the memory region has already been
-      instrumented, do not instrument it.  */
--  if (has_mem_ref_been_instrumented (base, 1))
--    goto after_first_instrumentation;
-+  bool start_instrumented = has_mem_ref_been_instrumented (base, 1);
-+
-+  /* If the end of the memory region has already been instrumented, do
-+     not instrument it. */
-+  tree end = asan_mem_ref_get_end (base, len);
-+  bool end_instrumented = has_mem_ref_been_instrumented (end, 1);
-+
-+  if (start_instrumented && end_instrumented)
-+    return;
- 
-   if (!is_gimple_constant (len))
-     {
-@@ -1565,34 +1569,36 @@ instrument_mem_region_access (tree base,
-       gsi = gsi_start_bb (then_bb);
-     }
- 
--  /* Instrument the beginning of the memory region to be accessed,
--     and arrange for the rest of the intrumentation code to be
--     inserted in the then block *after* the current gsi.  */
--  build_check_stmt (location, base, &gsi, /*before_p=*/true, is_store, 1);
--
--  if (then_bb)
--    /* We are in the case where the length of the region is not
--       constant; so instrumentation code is being generated in the
--       'then block' of the 'if (len != 0) condition.  Let's arrange
--       for the subsequent instrumentation statements to go in the
--       'then block'.  */
--    gsi = gsi_last_bb (then_bb);
--  else
--    *iter = gsi;
--
--  update_mem_ref_hash_table (base, 1);
-+  if (!start_instrumented)
-+    {
-+      /* Instrument the beginning of the memory region to be accessed,
-+	 and arrange for the rest of the intrumentation code to be
-+	 inserted in the then block *after* the current gsi.  */
-+      build_check_stmt (location, base, &gsi, /*before_p=*/true, is_store, 1);
-+
-+      if (then_bb)
-+	/* We are in the case where the length of the region is not
-+	   constant; so instrumentation code is being generated in the
-+	   'then block' of the 'if (len != 0) condition.  Let's arrange
-+	   for the subsequent instrumentation statements to go in the
-+	   'then block'.  */
-+	gsi = gsi_last_bb (then_bb);
-+      else
-+        {
-+          *iter = gsi;
-+	  /* Don't remember this access as instrumented, if length
-+	     is unknown.  It might be zero and not being actually
-+	     instrumented, so we can't rely on it being instrumented.  */
-+          update_mem_ref_hash_table (base, 1);
-+	}
-+    }
- 
-- after_first_instrumentation:
-+  if (end_instrumented)
-+    return;
- 
-   /* We want to instrument the access at the end of the memory region,
-      which is at (base + len - 1).  */
- 
--  /* If the end of the memory region has already been instrumented, do
--     not instrument it. */
--  tree end = asan_mem_ref_get_end (base, len);
--  if (has_mem_ref_been_instrumented (end, 1))
--    return;
--
-   /* offset = len - 1;  */
-   len = unshare_expr (len);
-   tree offset;
-@@ -1640,7 +1646,10 @@ instrument_mem_region_access (tree base,
-   gimple_set_location (region_end, location);
-   gimple_seq_add_stmt_without_update (&seq, region_end);
-   gsi_insert_seq_before (&gsi, seq, GSI_SAME_STMT);
--  gsi_prev (&gsi);
-+  if (!start_instrumented || then_bb == NULL)
-+    gsi_prev (&gsi);
-+  else
-+    gsi = gsi_last_bb (then_bb);
- 
-   /* _2 = _1 + offset;  */
-   region_end =
-@@ -1655,7 +1664,10 @@ instrument_mem_region_access (tree base,
-   build_check_stmt (location, gimple_assign_lhs (region_end),
- 		    &gsi, /*before_p=*/false, is_store, 1);
- 
--  update_mem_ref_hash_table (end, 1);
-+  if (then_bb == NULL)
-+    update_mem_ref_hash_table (end, 1);
-+
-+  *iter = gsi_for_stmt (gsi_stmt (*iter));
- }
- 
- /* Instrument the call (to the builtin strlen function) pointed to by
-@@ -1783,7 +1795,7 @@ instrument_builtin_call (gimple_stmt_ite
- 	    }
- 	  else if (src0_len || src1_len || dest_len)
- 	    {
--	      if (src0.start)
-+	      if (src0.start != NULL_TREE)
- 		instrument_mem_region_access (src0.start, src0_len,
- 					      iter, loc, /*is_store=*/false);
- 	      if (src1.start != NULL_TREE)
---- gcc/testsuite/c-c++-common/asan/no-redundant-instrumentation-1.c.jj	2013-02-13 11:53:41.000000000 +0100
-+++ gcc/testsuite/c-c++-common/asan/no-redundant-instrumentation-1.c	2013-02-15 09:51:47.485080706 +0100
-@@ -45,7 +45,7 @@ test1 ()
-   /* There are 2 calls to __builtin___asan_report_store1 and 2 calls
-      to __builtin___asan_report_load1 to instrument the store to
-      (subset of) the memory region of tab.  */
--  __builtin_memcpy (&tab[1], foo, sizeof (tab) - 1);
-+  __builtin_memcpy (&tab[1], foo, 3);
- 
-   /* This should not generate a __builtin___asan_report_load1 because
-      the reference to tab[1] has been already instrumented above.  */
---- gcc/testsuite/c-c++-common/asan/pr56330.c.jj	2013-02-15 09:43:19.293845146 +0100
-+++ gcc/testsuite/c-c++-common/asan/pr56330.c	2013-02-15 09:42:58.000000000 +0100
-@@ -0,0 +1,23 @@
-+/* PR sanitizer/56330 */
-+/* { dg-do compile } */
-+
-+char e[200];
-+
-+struct S
-+{
-+  char a[100];
-+  char b[100];
-+} s;
-+
-+void
-+foo (void)
-+{
-+  __builtin_memcmp (s.a, e, 100);
-+  __builtin_memcmp (s.a, e, 200);
-+}
-+
-+void
-+bar (int *a, char *b, char *c)
-+{
-+  __builtin_memmove (c, b, a[b[0]]);
-+}

diff --git a/gcc48-pr54117.patch b/gcc48-pr54117.patch
deleted file mode 100644
index 5be2b07..0000000
--- a/gcc48-pr54117.patch
+++ /dev/null
@@ -1,198 +0,0 @@
-2013-02-15  Jakub Jelinek  <jakub@redhat.com>
-	    Steven Bosscher  <steven@gcc.gnu.org>
-
-	PR pch/54117
-	* c-opts.c (c_common_post_options): If debug info is enabled
-	and non-dwarf*, refuse to load PCH files and when writing PCH
-	file warn.
-
-	* lib/dg-pch.exp (pch-init, pch-finish,
-	check_effective_target_pch_supported_debug): New procs.
-	(dg-flags-pch): If $pch_unsupported, make tests UNSUPPORTED.
-	Likewise if $pch_unsupported_debug and $flags include -g.
-	Skip FAILs about missing *.gch file if $pch_unsupported_debug
-	and dg-require-effective-target pch_unsupported_debug.
-	* g++.dg/pch/pch.exp: Call pch-init and pch-finish.
-	* objc.dg/pch/pch.exp: Likewise.
-	* gcc.dg/pch/pch.exp: Likewise.
-	* gcc.dg/pch/valid-1.c: Add dg-require-effective-target
-	pch_unsupported_debug.
-	* gcc.dg/pch/valid-1.hs: Likewise.
-	* gcc.dg/pch/valid-1b.c: Likewise.
-	* gcc.dg/pch/valid-1b.hs: Likewise.
-
---- gcc/c-family/c-opts.c.jj	2013-02-14 14:45:01.000000000 +0100
-+++ gcc/c-family/c-opts.c	2013-02-15 12:44:48.936535118 +0100
-@@ -945,6 +945,16 @@ c_common_post_options (const char **pfil
- 	 because the default address space slot then can't be used
- 	 for the output PCH file.  */
-       if (pch_file)
-+	{
-+	  c_common_no_more_pch ();
-+	  /* Only -g0 and -gdwarf* are supported with PCH, for other
-+	     debug formats we warn here and refuse to load any PCH files.  */
-+	  if (write_symbols != NO_DEBUG && write_symbols != DWARF2_DEBUG)
-+	    warning (OPT_Wdeprecated,
-+		     "the \"%s\" debug format cannot be used with "
-+		     "pre-compiled headers", debug_type_names[write_symbols]);
-+	}
-+      else if (write_symbols != NO_DEBUG && write_symbols != DWARF2_DEBUG)
- 	c_common_no_more_pch ();
- 
-       /* Yuk.  WTF is this?  I do know ObjC relies on it somewhere.  */
---- gcc/testsuite/lib/dg-pch.exp.jj	2013-01-11 09:02:39.000000000 +0100
-+++ gcc/testsuite/lib/dg-pch.exp	2013-02-15 15:45:53.747855529 +0100
-@@ -16,8 +16,49 @@
- 
- load_lib copy-file.exp
- 
-+proc pch-init { args } {
-+    global pch_unsupported_debug pch_unsupported
-+
-+    if [info exists pch_unsupported_debug] {
-+	error "pch-init: pch_unsupported_debug is not empty as expected"
-+    }
-+    if [info exists pch_unsupported] {
-+	error "pch-init: pch_unsupported is not empty as expected"
-+    }
-+
-+    set result [check_compile pchtest object "int i;" "-g -x c-header"]
-+    set pch_unsupported_debug \
-+	[regexp "debug format cannot be used with pre-compiled headers" \
-+		[lindex $result 0]]
-+
-+    set pch_unsupported 0
-+    if { $pch_unsupported_debug } {
-+	verbose -log "pch is unsupported with the debug info format"
-+
-+	set result [check_compile pchtest object "int i;" "-x c-header"]
-+	    set pch_unsupported \
-+		[regexp "debug format cannot be used with pre-compiled headers" \
-+			[lindex $result 0]]
-+    }
-+}
-+
-+proc pch-finish { args } {
-+    global pch_unsupported_debug pch_unsupported
-+    unset pch_unsupported_debug
-+    unset pch_unsupported
-+}
-+
-+proc check_effective_target_pch_supported_debug { } {
-+    global pch_unsupported_debug
-+    if { $pch_unsupported_debug } {
-+	return 0
-+    }
-+    return 1
-+}
-+
- proc dg-flags-pch { subdir test otherflags options suffix } {
-     global runtests dg-do-what-default
-+    global pch_unsupported_debug pch_unsupported
- 
-     # If we're only testing specific files and this isn't one of them, skip it.
-     if ![runtest_file_p $runtests $test] {
-@@ -35,6 +76,13 @@ proc dg-flags-pch { subdir test otherfla
-     foreach flags $options {
- 	verbose "Testing $nshort, $otherflags $flags" 1
- 
-+	if { $pch_unsupported != 0 \
-+	     || ( $pch_unsupported_debug != 0 && [regexp " -g" " $flags"] ) } {
-+	    verbose -log "$nshort unsupported because debug format conflicts with PCH"
-+	    unsupported "$nshort $flags"
-+	    continue
-+	}
-+
- 	# For the header files, the default is to precompile.
- 	set dg-do-what-default precompile
- 	catch { file_on_host delete "$bname$suffix" }
-@@ -78,7 +126,8 @@ proc dg-flags-pch { subdir test otherfla
-  		    fail "$nshort $flags assembly comparison"
- 		}
- 	    }
--	} else {
-+	} elseif { $pch_unsupported_debug == 0 \
-+		   || [llength [grep $test "{\[ \t\]\+dg-require-effective-target\[ \t\]\+pch_supported_debug\[ \t\]\+.*\[ \t\]\+}"]] > 0 } {
- 	    verbose -log "pch file '$bname$suffix.gch' missing"
- 	    fail "$nshort $flags"
- 	    if { !$have_errs } {
---- gcc/testsuite/g++.dg/pch/pch.exp.jj	2013-01-11 09:02:44.000000000 +0100
-+++ gcc/testsuite/g++.dg/pch/pch.exp	2013-02-15 14:53:03.517106464 +0100
-@@ -23,6 +23,7 @@ load_lib dg-pch.exp
- 
- # Initialize `dg'.
- dg-init
-+pch-init
- 
- set old_dg_do_what_default "${dg-do-what-default}"
- 
-@@ -36,4 +37,5 @@ foreach test [lsort [glob -nocomplain $s
- set dg-do-what-default "$old_dg_do_what_default"
- 
- # All done.
-+pch-finish
- dg-finish
---- gcc/testsuite/objc.dg/pch/pch.exp.jj	2013-01-11 09:02:44.000000000 +0100
-+++ gcc/testsuite/objc.dg/pch/pch.exp	2013-02-15 14:53:30.063951051 +0100
-@@ -24,8 +24,8 @@ load_lib torture-options.exp
- 
- # Initialize `dg'.
- dg-init
--
- torture-init
-+pch-init
- 
- set-torture-options $DG_TORTURE_OPTIONS
- 
-@@ -59,5 +59,6 @@ if [istarget "*-*-darwin*" ] {
- set dg-do-what-default "$old_dg_do_what_default"
- 
- # All done.
-+pch-finish
- torture-finish
- dg-finish
---- gcc/testsuite/gcc.dg/pch/pch.exp.jj	2013-01-11 09:02:42.000000000 +0100
-+++ gcc/testsuite/gcc.dg/pch/pch.exp	2013-02-15 14:11:27.053896809 +0100
-@@ -26,6 +26,7 @@ load_lib torture-options.exp
- dg-init
- torture-init
- set-torture-options $DG_TORTURE_OPTIONS
-+pch-init
- 
- set old_dg_do_what_default "${dg-do-what-default}"
- 
-@@ -59,5 +60,6 @@ file delete $testh
- set dg-do-what-default "$old_dg_do_what_default"
- 
- # All done.
-+pch-finish
- torture-finish
- dg-finish
---- gcc/testsuite/gcc.dg/pch/valid-1.c.jj	2009-06-08 11:53:48.000000000 +0200
-+++ gcc/testsuite/gcc.dg/pch/valid-1.c	2013-02-15 15:19:44.124833259 +0100
-@@ -1,3 +1,4 @@
-+/* { dg-require-effective-target pch_supported_debug } */
- /* { dg-options "-I. -Winvalid-pch -g" } */
- 
- #include "valid-1.h"/* { dg-warning "created with -gnone, but used with -g" } */
---- gcc/testsuite/gcc.dg/pch/valid-1.hs.jj	2008-09-05 12:54:26.000000000 +0200
-+++ gcc/testsuite/gcc.dg/pch/valid-1.hs	2013-02-15 15:19:50.686794340 +0100
-@@ -1,3 +1,4 @@
-+/* { dg-require-effective-target pch_supported_debug } */
- /* { dg-options "-I. -Winvalid-pch -g0" } */
- 
- extern int x;
---- gcc/testsuite/gcc.dg/pch/valid-1b.c.jj	2008-09-05 12:54:26.000000000 +0200
-+++ gcc/testsuite/gcc.dg/pch/valid-1b.c	2013-02-15 15:19:55.935763631 +0100
-@@ -1,3 +1,4 @@
-+/* { dg-require-effective-target pch_supported_debug } */
- /* { dg-options "-I. -Winvalid-pch -g0" } */
- 
- #include "valid-1b.h"
---- gcc/testsuite/gcc.dg/pch/valid-1b.hs.jj	2008-09-05 12:54:26.000000000 +0200
-+++ gcc/testsuite/gcc.dg/pch/valid-1b.hs	2013-02-15 15:20:02.214727794 +0100
-@@ -1,3 +1,4 @@
-+/* { dg-require-effective-target pch_supported_debug } */
- /* { dg-options "-I. -Winvalid-pch -g" } */
- 
- extern int x;

diff --git a/gcc48-pr56258.patch b/gcc48-pr56258.patch
new file mode 100644
index 0000000..f8af4c0
--- /dev/null
+++ b/gcc48-pr56258.patch
@@ -0,0 +1,30 @@
+2013-02-20  Jakub Jelinek  <jakub@redhat.com>
+
+	PR bootstrap/56258
+	* doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
+	instead of @itemx.
+
+	* gnat-style.texi (@title): Remove @hfill.
+
+--- gcc/ada/gnat-style.texi.jj	2012-08-10 12:57:33.000000000 +0200
++++ gcc/ada/gnat-style.texi	2013-02-20 13:06:03.042667300 +0100
+@@ -42,7 +42,7 @@ Texts.  A copy of the license is include
+ @titlepage
+ @titlefont{GNAT Coding Style:}
+ @sp 1
+-@title @hfill A Guide for GNAT Developers
++@title A Guide for GNAT Developers
+ @subtitle GNAT, The GNU Ada Compiler
+ @versionsubtitle
+ @author Ada Core Technologies, Inc.
+--- gcc/doc/invoke.texi.jj	2013-01-31 22:57:22.000000000 +0100
++++ gcc/doc/invoke.texi	2013-02-20 13:06:47.516405739 +0100
+@@ -5612,7 +5612,7 @@ Dump after the peephole pass.
+ @opindex fdump-rtl-postreload
+ Dump after post-reload optimizations.
+ 
+-@itemx -fdump-rtl-pro_and_epilogue
++@item -fdump-rtl-pro_and_epilogue
+ @opindex fdump-rtl-pro_and_epilogue
+ Dump after generating the function prologues and epilogues.
+ 

diff --git a/gcc48-pr56265.patch b/gcc48-pr56265.patch
new file mode 100644
index 0000000..d651da6
--- /dev/null
+++ b/gcc48-pr56265.patch
@@ -0,0 +1,132 @@
+2013-02-20  Jan Hubicka  <jh@suse.cz>
+
+	PR tree-optimization/56265
+	* ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph when target is
+	referenced for firs ttime.
+
+	* testsuite/g++.dg/ipa/devirt-11.C: New testcase.
+
+--- gcc/ipa-prop.c	(revision 196176)
++++ gcc/ipa-prop.c	(revision 196177)
+@@ -2100,10 +2100,65 @@ ipa_make_edge_direct_to_target (struct c
+   if (TREE_CODE (target) == ADDR_EXPR)
+     target = TREE_OPERAND (target, 0);
+   if (TREE_CODE (target) != FUNCTION_DECL)
+-    return NULL;
++    {
++      target = canonicalize_constructor_val (target, NULL);
++      if (!target || TREE_CODE (target) != FUNCTION_DECL)
++	{
++	  if (dump_file)
++	    fprintf (dump_file, "ipa-prop: Discovered direct call to non-function"
++				" in (%s/%i).\n",
++		     cgraph_node_name (ie->caller), ie->caller->uid);
++	  return NULL;
++	}
++    }
+   callee = cgraph_get_node (target);
+-  if (!callee)
+-    return NULL;
++
++  /* Because may-edges are not explicitely represented and vtable may be external,
++     we may create the first reference to the object in the unit.  */
++  if (!callee || callee->global.inlined_to)
++    {
++      struct cgraph_node *first_clone = callee;
++
++      /* We are better to ensure we can refer to it.
++	 In the case of static functions we are out of luck, since we already	
++	 removed its body.  In the case of public functions we may or may
++	 not introduce the reference.  */
++      if (!canonicalize_constructor_val (target, NULL)
++	  || !TREE_PUBLIC (target))
++	{
++	  if (dump_file)
++	    fprintf (dump_file, "ipa-prop: Discovered call to a known target "
++		     "(%s/%i -> %s/%i) but can not refer to it. Giving up.\n",
++		     xstrdup (cgraph_node_name (ie->caller)), ie->caller->uid,
++		     xstrdup (cgraph_node_name (ie->callee)), ie->callee->uid);
++	  return NULL;
++	}
++
++      /* Create symbol table node.  Even if inline clone exists, we can not take
++	 it as a target of non-inlined call.  */
++      callee = cgraph_create_node (target);
++
++      /* OK, we previously inlined the function, then removed the offline copy and
++	 now we want it back for external call.  This can happen when devirtualizing
++	 while inlining function called once that happens after extern inlined and
++	 virtuals are already removed.  In this case introduce the external node
++	 and make it available for call.  */
++      if (first_clone)
++	{
++	  first_clone->clone_of = callee;
++	  callee->clones = first_clone;
++	  symtab_prevail_in_asm_name_hash ((symtab_node)callee);
++	  symtab_insert_node_to_hashtable ((symtab_node)callee);
++	  if (dump_file)
++	    fprintf (dump_file, "ipa-prop: Introduced new external node "
++		     "(%s/%i) and turned into root of the clone tree.\n",
++		     xstrdup (cgraph_node_name (callee)), callee->uid);
++	}
++      else if (dump_file)
++	fprintf (dump_file, "ipa-prop: Introduced new external node "
++		 "(%s/%i).\n",
++		 xstrdup (cgraph_node_name (callee)), callee->uid);
++    }
+   ipa_check_create_node_params ();
+ 
+   /* We can not make edges to inline clones.  It is bug that someone removed
+--- gcc/testsuite/g++.dg/ipa/devirt-11.C	(revision 0)
++++ gcc/testsuite/g++.dg/ipa/devirt-11.C	(revision 196177)
+@@ -0,0 +1,50 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -fdump-ipa-inline" } */
++int baz ();
++struct A
++{
++  virtual int fn2 () = 0;
++  virtual int *fn3 ();
++  double *fn4 ();
++  int fn5 (int);
++  template <class T>
++  void fn1 (A &, T) { fn3 (); fn4 (); fn2 (); }
++};
++struct B : A
++{
++  int fn2 () { return 6; }
++  void fn3 (int, double);
++  B (bool = true);
++  B (int, int);
++};
++template <typename T>
++void
++foo (B &x, A &y, A &z)
++{
++  y.fn2 ();
++  z.fn2 ();
++  int i = baz ();
++  int j = (y.fn3 ())[i];
++  x.fn3 (j, (y.fn4 ())[i] + (z.fn4 ())[z.fn5 (j)]);
++}
++inline B
++operator+ (A &y, A &z)
++{
++  B x;
++  foo<int> (x, y, z);
++  return x;
++}
++void
++bar ()
++{
++  B a, b, c (4, 0), d;
++  a.fn1 (b, .6);
++  baz ();
++  c + d;
++}
++/* While inlining function called once we should devirtualize a new call to fn2
++   and two to fn3. While doing so the new symbol for fn2 needs to be
++   introduced.  */
++/* { dg-final { scan-ipa-dump-times "Discovered a virtual call to a known target" 3 "inline"  } } */
++/* { dg-final { scan-ipa-dump-times "and turned into root of the clone tree" 1 "inline"  } } */
++/* { dg-final { cleanup-ipa-dump "inline" } } */

diff --git a/gcc48-pr56405.patch b/gcc48-pr56405.patch
new file mode 100644
index 0000000..d1cddb1
--- /dev/null
+++ b/gcc48-pr56405.patch
@@ -0,0 +1,36 @@
+2013-02-20  Jakub Jelinek  <jakub@redhat.com>
+
+	PR inline-asm/56405
+	* expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
+	use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
+
+	* gcc.c-torture/compile/pr56405.c: New test.
+
+--- gcc/expr.c.jj	2013-01-18 18:09:40.000000000 +0100
++++ gcc/expr.c	2013-02-20 10:29:34.513143634 +0100
+@@ -9551,6 +9551,7 @@ expand_expr_real_1 (tree exp, rtx target
+ 	set_mem_addr_space (temp, as);
+ 	align = get_object_alignment (exp);
+ 	if (modifier != EXPAND_WRITE
++	    && modifier != EXPAND_MEMORY
+ 	    && mode != BLKmode
+ 	    && align < GET_MODE_ALIGNMENT (mode)
+ 	    /* If the target does not have special handling for unaligned
+@@ -9639,6 +9640,7 @@ expand_expr_real_1 (tree exp, rtx target
+ 	if (TREE_THIS_VOLATILE (exp))
+ 	  MEM_VOLATILE_P (temp) = 1;
+ 	if (modifier != EXPAND_WRITE
++	    && modifier != EXPAND_MEMORY
+ 	    && mode != BLKmode
+ 	    && align < GET_MODE_ALIGNMENT (mode))
+ 	  {
+--- gcc/testsuite/gcc.c-torture/compile/pr56405.c.jj	2013-02-20 10:32:17.807250979 +0100
++++ gcc/testsuite/gcc.c-torture/compile/pr56405.c	2013-02-20 10:32:46.963090873 +0100
+@@ -0,0 +1,7 @@
++/* PR inline-asm/56405 */
++
++void
++foo (void)
++{
++  asm volatile ("" : "+m" (*(volatile unsigned short *) 0x1001UL));
++}

diff --git a/gcc48-unused-locals.patch b/gcc48-unused-locals.patch
new file mode 100644
index 0000000..dff16de
--- /dev/null
+++ b/gcc48-unused-locals.patch
@@ -0,0 +1,297 @@
+2013-02-20  Richard Biener  <rguenther@suse.de>
+
+	* tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
+	* tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
+	* tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
+	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
+	not return anything.
+	(rename_ssa_copies): Do not remove unused locals.
+	* tree-ssa-ccp.c (do_ssa_ccp): Likewise.
+	* tree-ssanames.c (pass_release_ssa_names): Remove unused
+	locals first.
+	* passes.c (execute_function_todo): Do not schedule unused locals
+	removal if cleanup_tree_cfg did something.
+	* tree-ssa-live.c (remove_unused_locals): Dump statistics
+	about the number of removed locals.
+
+	* gcc.dg/tree-ssa/forwprop-8.c: Adjust.
+
+--- gcc/tree-ssa-copyrename.c	(revision 196173)
++++ gcc/tree-ssa-copyrename.c	(revision 196174)
+@@ -113,7 +113,7 @@ static struct
+ /* Coalesce the partitions in MAP representing VAR1 and VAR2 if it is valid.
+    Choose a representative for the partition, and send debug info to DEBUG.  */
+ 
+-static bool
++static void
+ copy_rename_partition_coalesce (var_map map, tree var1, tree var2, FILE *debug)
+ {
+   int p1, p2, p3;
+@@ -146,7 +146,7 @@ copy_rename_partition_coalesce (var_map
+     {
+       if (debug)
+ 	fprintf (debug, " : Already coalesced.\n");
+-      return false;
++      return;
+     }
+ 
+   rep1 = partition_to_var (map, p1);
+@@ -154,7 +154,7 @@ copy_rename_partition_coalesce (var_map
+   root1 = SSA_NAME_VAR (rep1);
+   root2 = SSA_NAME_VAR (rep2);
+   if (!root1 && !root2)
+-    return false;
++    return;
+ 
+   /* Don't coalesce if one of the variables occurs in an abnormal PHI.  */
+   abnorm = (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (rep1)
+@@ -163,7 +163,7 @@ copy_rename_partition_coalesce (var_map
+     {
+       if (debug)
+ 	fprintf (debug, " : Abnormal PHI barrier.  No coalesce.\n");
+-      return false;
++      return;
+     }
+ 
+   /* Partitions already have the same root, simply merge them.  */
+@@ -172,7 +172,7 @@ copy_rename_partition_coalesce (var_map
+       p1 = partition_union (map->var_partition, p1, p2);
+       if (debug)
+ 	fprintf (debug, " : Same root, coalesced --> P%d.\n", p1);
+-      return false;
++      return;
+     }
+ 
+   /* Never attempt to coalesce 2 different parameters.  */
+@@ -181,7 +181,7 @@ copy_rename_partition_coalesce (var_map
+     {
+       if (debug)
+         fprintf (debug, " : 2 different PARM_DECLS. No coalesce.\n");
+-      return false;
++      return;
+     }
+ 
+   if ((root1 && TREE_CODE (root1) == RESULT_DECL)
+@@ -189,7 +189,7 @@ copy_rename_partition_coalesce (var_map
+     {
+       if (debug)
+         fprintf (debug, " : One root a RESULT_DECL. No coalesce.\n");
+-      return false;
++      return;
+     }
+ 
+   ign1 = !root1 || (TREE_CODE (root1) == VAR_DECL && DECL_IGNORED_P (root1));
+@@ -206,7 +206,7 @@ copy_rename_partition_coalesce (var_map
+ 	{
+ 	  if (debug)
+ 	    fprintf (debug, " : 2 different USER vars. No coalesce.\n");
+-	  return false;
++	  return;
+ 	}
+       else
+ 	ign2 = true;
+@@ -220,7 +220,7 @@ copy_rename_partition_coalesce (var_map
+ 	{
+ 	  if (debug)
+ 	    fprintf (debug, " : 2 default defs. No coalesce.\n");
+-	  return false;
++	  return;
+ 	}
+       else
+         {
+@@ -240,7 +240,7 @@ copy_rename_partition_coalesce (var_map
+     {
+       if (debug)
+ 	fprintf (debug, " : Choosen variable has no root.  No coalesce.\n");
+-      return false;
++      return;
+     }
+ 
+   /* Don't coalesce if the new chosen root variable would be read-only.
+@@ -253,7 +253,7 @@ copy_rename_partition_coalesce (var_map
+     {
+       if (debug)
+ 	fprintf (debug, " : Readonly variable.  No coalesce.\n");
+-      return false;
++      return;
+     }
+ 
+   /* Don't coalesce if the two variables aren't type compatible .  */
+@@ -266,7 +266,7 @@ copy_rename_partition_coalesce (var_map
+     {
+       if (debug)
+ 	fprintf (debug, " : Incompatible types.  No coalesce.\n");
+-      return false;
++      return;
+     }
+ 
+   /* Merge the two partitions.  */
+@@ -288,7 +288,6 @@ copy_rename_partition_coalesce (var_map
+ 			  TDF_SLIM);
+       fprintf (debug, "\n");
+     }
+-  return true;
+ }
+ 
+ 
+@@ -308,7 +307,6 @@ rename_ssa_copies (void)
+   gimple stmt, phi;
+   unsigned x;
+   FILE *debug;
+-  bool updated = false;
+ 
+   memset (&stats, 0, sizeof (stats));
+ 
+@@ -330,7 +328,7 @@ rename_ssa_copies (void)
+ 	      tree lhs = gimple_assign_lhs (stmt);
+ 	      tree rhs = gimple_assign_rhs1 (stmt);
+ 
+-	      updated |= copy_rename_partition_coalesce (map, lhs, rhs, debug);
++	      copy_rename_partition_coalesce (map, lhs, rhs, debug);
+ 	    }
+ 	}
+     }
+@@ -358,8 +356,8 @@ rename_ssa_copies (void)
+ 	      {
+ 		tree arg = PHI_ARG_DEF (phi, i);
+ 		if (TREE_CODE (arg) == SSA_NAME)
+-		  updated |= copy_rename_partition_coalesce (map, res, arg,
+-							     debug);
++		  copy_rename_partition_coalesce (map, res, arg,
++						  debug);
+ 	      }
+ 	  /* Else if all arguments are in the same partition try to merge
+ 	     it with the result.  */
+@@ -390,9 +388,9 @@ rename_ssa_copies (void)
+ 		    }
+ 		}
+ 	      if (all_p_same == 1)
+-		updated |= copy_rename_partition_coalesce (map, res,
+-							   PHI_ARG_DEF (phi, 0),
+-							   debug);
++		copy_rename_partition_coalesce (map, res,
++						PHI_ARG_DEF (phi, 0),
++						debug);
+ 	    }
+         }
+     }
+@@ -426,7 +424,7 @@ rename_ssa_copies (void)
+   statistics_counter_event (cfun, "copies coalesced",
+ 			    stats.coalesced);
+   delete_var_map (map);
+-  return updated ? TODO_remove_unused_locals : 0;
++  return 0;
+ }
+ 
+ /* Return true if copy rename is to be performed.  */
+--- gcc/tree-ssa-ccp.c	(revision 196173)
++++ gcc/tree-ssa-ccp.c	(revision 196174)
+@@ -2108,7 +2108,7 @@ do_ssa_ccp (void)
+   ccp_initialize ();
+   ssa_propagate (ccp_visit_stmt, ccp_visit_phi_node);
+   if (ccp_finalize ())
+-    todo = (TODO_cleanup_cfg | TODO_update_ssa | TODO_remove_unused_locals);
++    todo = (TODO_cleanup_cfg | TODO_update_ssa);
+   free_dominance_info (CDI_DOMINATORS);
+   return todo;
+ }
+--- gcc/tree-call-cdce.c	(revision 196173)
++++ gcc/tree-call-cdce.c	(revision 196174)
+@@ -898,11 +898,10 @@ tree_call_cdce (void)
+       /* As we introduced new control-flow we need to insert PHI-nodes
+          for the call-clobbers of the remaining call.  */
+       mark_virtual_operands_for_renaming (cfun);
+-      return (TODO_update_ssa | TODO_cleanup_cfg | TODO_ggc_collect
+-              | TODO_remove_unused_locals);
++      return TODO_update_ssa;
+     }
+-  else
+-    return 0;
++
++  return 0;
+ }
+ 
+ static bool
+--- gcc/tree-ssa-live.c	(revision 196173)
++++ gcc/tree-ssa-live.c	(revision 196174)
+@@ -889,7 +889,10 @@ remove_unused_locals (void)
+       dstidx++;
+     }
+   if (dstidx != num)
+-    cfun->local_decls->truncate (dstidx);
++    {
++      statistics_counter_event (cfun, "unused VAR_DECLs removed", num - dstidx);
++      cfun->local_decls->truncate (dstidx);
++    }
+ 
+   remove_unused_scope_block_p (DECL_INITIAL (current_function_decl));
+   clear_unused_block_pointer ();
+--- gcc/tree-ssa-forwprop.c	(revision 196173)
++++ gcc/tree-ssa-forwprop.c	(revision 196174)
+@@ -2936,7 +2936,6 @@ ssa_forward_propagate_and_combine (void)
+ 		  && forward_propagate_addr_expr (lhs, rhs))
+ 		{
+ 		  release_defs (stmt);
+-		  todoflags |= TODO_remove_unused_locals;
+ 		  gsi_remove (&gsi, true);
+ 		}
+ 	      else
+@@ -2961,7 +2960,6 @@ ssa_forward_propagate_and_combine (void)
+ 							       off)))))
+ 		{
+ 		  release_defs (stmt);
+-		  todoflags |= TODO_remove_unused_locals;
+ 		  gsi_remove (&gsi, true);
+ 		}
+ 	      else if (is_gimple_min_invariant (rhs))
+--- gcc/tree-ssa-dce.c	(revision 196173)
++++ gcc/tree-ssa-dce.c	(revision 196174)
+@@ -1607,10 +1607,8 @@ perform_tree_ssa_dce (bool aggressive)
+   free_edge_list (el);
+ 
+   if (something_changed)
+-    return (TODO_update_ssa | TODO_cleanup_cfg | TODO_ggc_collect
+-	    | TODO_remove_unused_locals);
+-  else
+-    return 0;
++    return TODO_update_ssa | TODO_cleanup_cfg;
++  return 0;
+ }
+ 
+ /* Pass entry points.  */
+--- gcc/passes.c	(revision 196173)
++++ gcc/passes.c	(revision 196174)
+@@ -1918,10 +1918,7 @@ execute_function_todo (void *data)
+   /* Always cleanup the CFG before trying to update SSA.  */
+   if (flags & TODO_cleanup_cfg)
+     {
+-      bool cleanup = cleanup_tree_cfg ();
+-
+-      if (cleanup && (cfun->curr_properties & PROP_ssa))
+-	flags |= TODO_remove_unused_locals;
++      cleanup_tree_cfg ();
+ 
+       /* When cleanup_tree_cfg merges consecutive blocks, it may
+ 	 perform some simplistic propagation when removing single
+--- gcc/tree-ssanames.c	(revision 196173)
++++ gcc/tree-ssanames.c	(revision 196174)
+@@ -455,7 +455,7 @@ struct gimple_opt_pass pass_release_ssa_
+   PROP_ssa,				/* properties_required */
+   0,					/* properties_provided */
+   0,					/* properties_destroyed */
+-  0,					/* todo_flags_start */
+-  0              			/* todo_flags_finish */
++  TODO_remove_unused_locals,		/* todo_flags_start */
++  0					/* todo_flags_finish */
+  }
+ };
+--- gcc/testsuite/gcc.dg/tree-ssa/forwprop-8.c	(revision 196173)
++++ gcc/testsuite/gcc.dg/tree-ssa/forwprop-8.c	(revision 196174)
+@@ -11,6 +11,5 @@ int foo(struct X *q)
+ 
+ 
+ /* We should have propragated &q->a into (*pointer).  */
+-/* { dg-final { scan-tree-dump-times "pointer" 0 "forwprop1"} } */
+-/* { dg-final { scan-tree-dump "\\\[0\\\]" "forwprop1" } } */
++/* { dg-final { scan-tree-dump "q_.\\\(D\\\)\\\]\\\[0\\\];" "forwprop1" } } */
+ /* { dg-final { cleanup-tree-dump "forwprop1" } } */

diff --git a/sources b/sources
index 032d95c..73225ef 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
 be78a47bd82523250eb3e91646db5b3d  cloog-0.18.0.tar.gz
 2659f09c2e43ef8b7d4406321753f1b2  fastjar-0.97.tar.gz
+d18630509460934dfd7163a884b63ecd  gcc-4.8.0-20130220.tar.bz2
 bce1586384d8635a76d2f017fb067cd2  isl-0.11.1.tar.bz2
-4fa6cbda8e98ae790212c6b7b00fb939  gcc-4.8.0-20130215.tar.bz2

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

end of thread, other threads:[~2026-06-29 12:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-29 12:25 [rpms/gcc] rhel-f41-base: 4.8.0-0.14 Jakub Jelinek
  -- strict thread matches above, loose matches on Subject: below --
2026-06-29 12:25 Jakub Jelinek
2026-06-29 12:25 Jakub Jelinek
2026-06-29 12:25 Jakub Jelinek

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