diff --git a/gcc.spec b/gcc.spec index 9ce314a..a145392 100644 --- a/gcc.spec +++ b/gcc.spec @@ -79,7 +79,7 @@ Summary: Various compilers (C, C++, Objective-C, Java, ...) Name: gcc Version: %{gcc_version} -Release: %{gcc_release}%{?dist} +Release: %{gcc_release}%{?dist}.1 # libgcc, libgfortran, libgomp, libstdc++ and crtstuff have # GCC Runtime Exception. License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD @@ -199,6 +199,9 @@ Patch16: gcc49-libgo-p224.patch Patch17: gcc49-aarch64-async-unw-tables.patch Patch18: gcc49-aarch64-GNU_STACK.patch +# backport from trunk +Patch100: gcc49-rh1117799.patch + Patch1100: cloog-%{cloog_version}-ppc64le-config.patch # On ARM EABI systems, we do want -gnueabi to be part of the @@ -726,6 +729,7 @@ package or when debugging this package. rm -f libgo/go/crypto/elliptic/p224{,_test}.go %patch17 -p0 -b .aarch64-async-unw-tables~ %patch18 -p0 -b .aarch64-GNU_STACK~ +%patch100 -p1 -b .rh1117799~ %if 0%{?_enable_debug_packages} cat > split-debuginfo.sh <<\EOF @@ -2798,6 +2802,9 @@ fi %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin %changelog +* Thu Jul 24 2014 Dan HorĂ¡k 4.9.1-2.1 +- update from trunk with fix for #1117799 + * Thu Jul 17 2014 Jakub Jelinek 4.9.1-2 - update from the 4.9 branch - PRs c-family/61741, rtl-optimization/61801, target/61737, diff --git a/gcc49-rh1117799.patch b/gcc49-rh1117799.patch new file mode 100644 index 0000000..31212ce --- /dev/null +++ b/gcc49-rh1117799.patch @@ -0,0 +1,39 @@ +commit ef76edc2e27e49e7e148894948c8dda394b796c1 +Author: vmakarov +Date: Fri Jul 11 17:19:53 2014 +0000 + + 2014-07-11 Vladimir Makarov + + * lra-constraints.c (remove_inheritance_pseudos): Process + destination pseudo too. + + + + git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212464 138bc75d-0d04-0410-961f-82ee72b054a4 + + * gcov-tool.c (gcov_output_files): Fix build error introduced in +diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c +index baed7e7..a43f8dc 100644 +--- a/gcc/lra-constraints.c ++++ b/gcc/lra-constraints.c +@@ -5697,6 +5697,20 @@ remove_inheritance_pseudos (bitmap remove_pseudos) + SUBREG_REG (SET_SRC (set)) = SET_SRC (prev_set); + else + SET_SRC (set) = SET_SRC (prev_set); ++ /* As we are finishing with processing the insn ++ here, check the destination too as it might ++ inheritance pseudo for another pseudo. */ ++ if (bitmap_bit_p (remove_pseudos, dregno) ++ && bitmap_bit_p (&lra_inheritance_pseudos, dregno) ++ && (restore_regno ++ = lra_reg_info[dregno].restore_regno) >= 0) ++ { ++ if (GET_CODE (SET_DEST (set)) == SUBREG) ++ SUBREG_REG (SET_DEST (set)) ++ = regno_reg_rtx[restore_regno]; ++ else ++ SET_DEST (set) = regno_reg_rtx[restore_regno]; ++ } + lra_push_insn_and_update_insn_regno_info (curr_insn); + lra_set_used_insn_alternative_by_uid + (INSN_UID (curr_insn), -1);