4.4.1-16
This commit is contained in:
parent
ef4f83143f
commit
b90c67c32e
@ -1,2 +1,2 @@
|
|||||||
fastjar-0.97.tar.gz
|
fastjar-0.97.tar.gz
|
||||||
gcc-4.4.1-20090918.tar.bz2
|
gcc-4.4.1-20090923.tar.bz2
|
||||||
|
30
gcc.spec
30
gcc.spec
@ -1,9 +1,9 @@
|
|||||||
%global DATE 20090918
|
%global DATE 20090923
|
||||||
%global SVNREV 151835
|
%global SVNREV 152092
|
||||||
%global gcc_version 4.4.1
|
%global gcc_version 4.4.1
|
||||||
# Note, gcc_release must be integer, if you want to add suffixes to
|
# Note, gcc_release must be integer, if you want to add suffixes to
|
||||||
# %{release}, append them after %{gcc_release} on Release: line.
|
# %{release}, append them after %{gcc_release} on Release: line.
|
||||||
%global gcc_release 15
|
%global gcc_release 16
|
||||||
%global _unpackaged_files_terminate_build 0
|
%global _unpackaged_files_terminate_build 0
|
||||||
%global multilib_64_archs sparc64 ppc64 s390x x86_64
|
%global multilib_64_archs sparc64 ppc64 s390x x86_64
|
||||||
%global include_gappletviewer 1
|
%global include_gappletviewer 1
|
||||||
@ -159,10 +159,7 @@ Patch15: gcc44-raw-string.patch
|
|||||||
Patch16: gcc44-unwind-debug-hook.patch
|
Patch16: gcc44-unwind-debug-hook.patch
|
||||||
Patch17: gcc44-pr38757.patch
|
Patch17: gcc44-pr38757.patch
|
||||||
Patch18: gcc44-libstdc++-docs.patch
|
Patch18: gcc44-libstdc++-docs.patch
|
||||||
Patch19: gcc44-vta-cfgexpand-ptr-mode-pr41248.patch
|
Patch19: gcc44-ppc64-aixdesc.patch
|
||||||
Patch20: gcc44-powerpc-libgcc_s_so.patch
|
|
||||||
Patch21: gcc44-pr41175.patch
|
|
||||||
Patch22: gcc44-ppc64-aixdesc.patch
|
|
||||||
|
|
||||||
Patch1000: fastjar-0.97-segfault.patch
|
Patch1000: fastjar-0.97-segfault.patch
|
||||||
|
|
||||||
@ -468,10 +465,7 @@ which are required to compile with the GNAT.
|
|||||||
%if %{build_libstdcxx_docs}
|
%if %{build_libstdcxx_docs}
|
||||||
%patch18 -p0 -b .libstdc++-docs~
|
%patch18 -p0 -b .libstdc++-docs~
|
||||||
%endif
|
%endif
|
||||||
%patch19 -p0 -b .vta-cfgexpand-ptr-mode-pr41248~
|
%patch19 -p0 -b .ppc64-aixdesc~
|
||||||
%patch20 -p0 -b .powerpc-libgcc_s_so~
|
|
||||||
%patch21 -p0 -b .pr41175~
|
|
||||||
%patch22 -p0 -b .ppc64-aixdesc~
|
|
||||||
|
|
||||||
# This testcase doesn't compile.
|
# This testcase doesn't compile.
|
||||||
rm libjava/testsuite/libjava.lang/PR35020*
|
rm libjava/testsuite/libjava.lang/PR35020*
|
||||||
@ -1827,6 +1821,20 @@ fi
|
|||||||
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
|
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Sep 23 2009 Jakub Jelinek <jakub@redhat.com> 4.4.1-16
|
||||||
|
- update from gcc-4_4-branch
|
||||||
|
- PRs c/39779, c/41049, debug/41065, libffi/40242, libffi/41443,
|
||||||
|
libgfortran/41328, testsuite/41288
|
||||||
|
- VTA backports
|
||||||
|
- PRs bootstrap/41397, bootstrap/41404, bootstrap/41405, debug/41295,
|
||||||
|
debug/41411, debug/41439
|
||||||
|
- fix ICE caused by reload substitution of const_int into zero_extend
|
||||||
|
in debug_insn (#524439)
|
||||||
|
- fix altivec vec_cmp{lt,gt} (#524273)
|
||||||
|
- fix -mno-sched-epilogue on ppc (#524216, PR target/40473)
|
||||||
|
- don't look at MUDFLAP_OPTIONS env var in suid/sgid programs
|
||||||
|
(PR libmudflap/41433)
|
||||||
|
|
||||||
* Fri Sep 18 2009 Jakub Jelinek <jakub@redhat.com> 4.4.1-15
|
* Fri Sep 18 2009 Jakub Jelinek <jakub@redhat.com> 4.4.1-15
|
||||||
- for now disable out of line gpr/fpr saving on ppc with -m64 -Os -mcall-aixdesc
|
- for now disable out of line gpr/fpr saving on ppc with -m64 -Os -mcall-aixdesc
|
||||||
- fix DW_AT_decl_{file,location} for DW_TAG_structure_type for C structs
|
- fix DW_AT_decl_{file,location} for DW_TAG_structure_type for C structs
|
||||||
|
@ -1,136 +0,0 @@
|
|||||||
svn diff -r151567:151568 svn+ssh://gcc.gnu.org/svn/gcc/trunk
|
|
||||||
|
|
||||||
2009-09-09 Jakub Jelinek <jakub@redhat.com>
|
|
||||||
|
|
||||||
* config/t-slibgcc-elf-ver (SHLIB_MAKE_SOLINK, SHLIB_INSTALL_SOLINK):
|
|
||||||
New variables.
|
|
||||||
(SHLIB_LINK, SHLIB_INSTALL): Use them.
|
|
||||||
* config/t-slibgcc-libgcc: New file.
|
|
||||||
* config.gcc (powerpc*-*-linux*, powerpc*-*-gnu*): Use it.
|
|
||||||
|
|
||||||
--- gcc/config.gcc (revision 151567)
|
|
||||||
+++ gcc/config.gcc (revision 151568)
|
|
||||||
@@ -1738,12 +1738,12 @@ powerpc64-*-linux*)
|
|
||||||
tm_file="rs6000/secureplt.h ${tm_file}"
|
|
||||||
fi
|
|
||||||
extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
|
|
||||||
- tmake_file="t-dfprules rs6000/t-fprules ${tmake_file} rs6000/t-ppccomm rs6000/t-linux64 rs6000/t-fprules-softfp soft-fp/t-softfp"
|
|
||||||
+ tmake_file="t-dfprules rs6000/t-fprules ${tmake_file} t-slibgcc-libgcc rs6000/t-ppccomm rs6000/t-linux64 rs6000/t-fprules-softfp soft-fp/t-softfp"
|
|
||||||
;;
|
|
||||||
powerpc64-*-gnu*)
|
|
||||||
tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux64.h rs6000/gnu.h"
|
|
||||||
extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
|
|
||||||
- tmake_file="rs6000/t-fprules t-slibgcc-elf-ver t-gnu rs6000/t-linux64 rs6000/t-fprules-softfp soft-fp/t-softfp"
|
|
||||||
+ tmake_file="rs6000/t-fprules t-slibgcc-elf-ver t-slibgcc-libgcc t-gnu rs6000/t-linux64 rs6000/t-fprules-softfp soft-fp/t-softfp"
|
|
||||||
;;
|
|
||||||
powerpc-*-darwin*)
|
|
||||||
extra_options="${extra_options} rs6000/darwin.opt"
|
|
||||||
@@ -1820,22 +1820,22 @@ powerpc-*-rtems*)
|
|
||||||
powerpc-*-linux*altivec*)
|
|
||||||
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h"
|
|
||||||
extra_options="${extra_options} rs6000/sysv4.opt"
|
|
||||||
- tmake_file="rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
|
|
||||||
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} t-slibgcc-libgcc rs6000/t-ppccomm"
|
|
||||||
;;
|
|
||||||
powerpc-*-linux*spe*)
|
|
||||||
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxspe.h rs6000/e500.h"
|
|
||||||
extra_options="${extra_options} rs6000/sysv4.opt"
|
|
||||||
- tmake_file="t-dfprules rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
|
|
||||||
+ tmake_file="t-dfprules rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} t-slibgcc-libgcc rs6000/t-ppccomm"
|
|
||||||
;;
|
|
||||||
powerpc-*-linux*paired*)
|
|
||||||
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/750cl.h"
|
|
||||||
extra_options="${extra_options} rs6000/sysv4.opt"
|
|
||||||
- tmake_file="rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
|
|
||||||
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} t-slibgcc-libgcc rs6000/t-ppccomm"
|
|
||||||
;;
|
|
||||||
powerpc-*-linux*)
|
|
||||||
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h"
|
|
||||||
extra_options="${extra_options} rs6000/sysv4.opt"
|
|
||||||
- tmake_file="t-dfprules rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
|
|
||||||
+ tmake_file="t-dfprules rs6000/t-fprules rs6000/t-ppcos ${tmake_file} t-slibgcc-libgcc rs6000/t-ppccomm"
|
|
||||||
case ${enable_targets}:${cpu_is_64bit} in
|
|
||||||
*powerpc64* | all:* | *:yes)
|
|
||||||
if test x$cpu_is_64bit = xyes; then
|
|
||||||
@@ -1857,14 +1857,14 @@ powerpc-*-linux*)
|
|
||||||
powerpc-*-gnu-gnualtivec*)
|
|
||||||
tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h rs6000/gnu.h"
|
|
||||||
extra_options="${extra_options} rs6000/sysv4.opt"
|
|
||||||
- tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos t-slibgcc-elf-ver t-gnu rs6000/t-ppccomm"
|
|
||||||
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos t-slibgcc-elf-ver t-slibgcc-libgcc t-gnu rs6000/t-ppccomm"
|
|
||||||
if test x$enable_threads = xyes; then
|
|
||||||
thread_file='posix'
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
powerpc-*-gnu*)
|
|
||||||
tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/gnu.h"
|
|
||||||
- tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos t-slibgcc-elf-ver t-gnu rs6000/t-ppccomm"
|
|
||||||
+ tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos t-slibgcc-elf-ver t-slibgcc-libgcc t-gnu rs6000/t-ppccomm"
|
|
||||||
extra_options="${extra_options} rs6000/sysv4.opt"
|
|
||||||
if test x$enable_threads = xyes; then
|
|
||||||
thread_file='posix'
|
|
||||||
--- gcc/config/t-slibgcc-libgcc (revision 0)
|
|
||||||
+++ gcc/config/t-slibgcc-libgcc (revision 151568)
|
|
||||||
@@ -0,0 +1,32 @@
|
|
||||||
+# Copyright (C) 2009 Free Software Foundation, Inc.
|
|
||||||
+#
|
|
||||||
+# This file is part of GCC.
|
|
||||||
+#
|
|
||||||
+# GCC is free software; you can redistribute it and/or modify
|
|
||||||
+# it under the terms of the GNU General Public License as published by
|
|
||||||
+# the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
+# any later version.
|
|
||||||
+#
|
|
||||||
+# GCC is distributed in the hope that it will be useful,
|
|
||||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
+# GNU General Public License for more details.
|
|
||||||
+#
|
|
||||||
+# You should have received a copy of the GNU General Public License
|
|
||||||
+# along with GCC; see the file COPYING3. If not see
|
|
||||||
+# <http://www.gnu.org/licenses/>.
|
|
||||||
+
|
|
||||||
+# Instead of creating $(SHLIB_SOLINK) symlink create a GNU ld
|
|
||||||
+# linker script which sources in both $(SHLIB_SONAME) and libgcc.a.
|
|
||||||
+# This is needed on targets where libgcc.a contains routines that aren't in
|
|
||||||
+# $(SHLIB_SONAME) and are needed for shared libraries.
|
|
||||||
+
|
|
||||||
+SHLIB_MAKE_SOLINK = \
|
|
||||||
+ (echo "/* GNU ld script"; \
|
|
||||||
+ echo " Use the shared library, but some functions are only in"; \
|
|
||||||
+ echo " the static library. */"; \
|
|
||||||
+ echo "GROUP ( $(SHLIB_SONAME) libgcc.a )" \
|
|
||||||
+ ) > $(SHLIB_DIR)/$(SHLIB_SOLINK)
|
|
||||||
+SHLIB_INSTALL_SOLINK = \
|
|
||||||
+ $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SOLINK) \
|
|
||||||
+ $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
|
|
||||||
--- gcc/config/t-slibgcc-elf-ver (revision 151567)
|
|
||||||
+++ gcc/config/t-slibgcc-elf-ver (revision 151568)
|
|
||||||
@@ -28,6 +28,9 @@ SHLIB_OBJS = @shlib_objs@
|
|
||||||
SHLIB_DIR = @multilib_dir@
|
|
||||||
SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
|
|
||||||
SHLIB_LC = -lc
|
|
||||||
+SHLIB_MAKE_SOLINK = $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
|
|
||||||
+SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \
|
|
||||||
+ $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
|
|
||||||
|
|
||||||
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
|
|
||||||
-Wl,--soname=$(SHLIB_SONAME) \
|
|
||||||
@@ -40,7 +43,7 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2
|
|
||||||
$(SHLIB_DIR)/$(SHLIB_SONAME).backup; \
|
|
||||||
else true; fi && \
|
|
||||||
mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \
|
|
||||||
- $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
|
|
||||||
+ $(SHLIB_MAKE_SOLINK)
|
|
||||||
# $(slibdir) double quoted to protect it from expansion while building
|
|
||||||
# libgcc.mk. We want this delayed until actual install time.
|
|
||||||
SHLIB_INSTALL = \
|
|
||||||
@@ -48,7 +51,6 @@ SHLIB_INSTALL = \
|
|
||||||
$(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SONAME) \
|
|
||||||
$$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
|
|
||||||
rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
|
|
||||||
- $(LN_S) $(SHLIB_SONAME) \
|
|
||||||
- $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
|
|
||||||
+ $(SHLIB_INSTALL_SOLINK)
|
|
||||||
SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
|
|
||||||
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
|
|
1205
gcc44-pr41175.patch
1205
gcc44-pr41175.patch
File diff suppressed because it is too large
Load Diff
@ -1,151 +0,0 @@
|
|||||||
for gcc/ChangeLog
|
|
||||||
from Alexandre Oliva <aoliva@redhat.com>
|
|
||||||
|
|
||||||
PR debug/41248
|
|
||||||
* cfgexpand.c (convert_debug_memory_address): New.
|
|
||||||
(expand_debug_expr): Convert base address and offset to the same
|
|
||||||
mode. Use it to convert addresses to other modes. Accept
|
|
||||||
ptr_mode addresses.
|
|
||||||
|
|
||||||
for gcc/testsuite/ChangeLog
|
|
||||||
from Alexandre Oliva <aoliva@redhat.com>
|
|
||||||
|
|
||||||
PR debug/41248
|
|
||||||
* gcc.dg/pr41248.c: New.
|
|
||||||
|
|
||||||
Index: gcc/cfgexpand.c
|
|
||||||
===================================================================
|
|
||||||
--- gcc/cfgexpand.c.orig 2009-09-07 19:00:20.000000000 -0300
|
|
||||||
+++ gcc/cfgexpand.c 2009-09-07 19:17:27.000000000 -0300
|
|
||||||
@@ -1966,6 +1966,38 @@ unwrap_constant (rtx x)
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
+/* Convert X to MODE, that must be Pmode or ptr_mode, without emitting
|
|
||||||
+ any rtl. */
|
|
||||||
+
|
|
||||||
+static rtx
|
|
||||||
+convert_debug_memory_address (enum machine_mode mode, rtx x)
|
|
||||||
+{
|
|
||||||
+ enum machine_mode xmode = GET_MODE (x);
|
|
||||||
+
|
|
||||||
+#ifndef POINTERS_EXTEND_UNSIGNED
|
|
||||||
+ gcc_assert (mode == Pmode);
|
|
||||||
+ gcc_assert (xmode == mode || xmode == VOIDmode);
|
|
||||||
+#else
|
|
||||||
+ gcc_assert (mode == Pmode || mode == ptr_mode);
|
|
||||||
+
|
|
||||||
+ if (GET_MODE (x) == mode || GET_MODE (x) == VOIDmode)
|
|
||||||
+ return x;
|
|
||||||
+
|
|
||||||
+ if (GET_MODE_BITSIZE (mode) < GET_MODE_BITSIZE (xmode))
|
|
||||||
+ x = simplify_gen_subreg (mode, x, xmode,
|
|
||||||
+ subreg_lowpart_offset
|
|
||||||
+ (mode, xmode));
|
|
||||||
+ else if (POINTERS_EXTEND_UNSIGNED > 0)
|
|
||||||
+ x = gen_rtx_ZERO_EXTEND (mode, x);
|
|
||||||
+ else if (!POINTERS_EXTEND_UNSIGNED)
|
|
||||||
+ x = gen_rtx_SIGN_EXTEND (mode, x);
|
|
||||||
+ else
|
|
||||||
+ gcc_unreachable ();
|
|
||||||
+#endif /* POINTERS_EXTEND_UNSIGNED */
|
|
||||||
+
|
|
||||||
+ return x;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/* Return an RTX equivalent to the value of the tree expression
|
|
||||||
EXP. */
|
|
||||||
|
|
||||||
@@ -2141,6 +2173,7 @@ expand_debug_expr (tree exp)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
gcc_assert (GET_MODE (op0) == Pmode
|
|
||||||
+ || GET_MODE (op0) == ptr_mode
|
|
||||||
|| GET_CODE (op0) == CONST_INT
|
|
||||||
|| GET_CODE (op0) == CONST_DOUBLE);
|
|
||||||
|
|
||||||
@@ -2167,6 +2200,7 @@ expand_debug_expr (tree exp)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
gcc_assert (GET_MODE (op0) == Pmode
|
|
||||||
+ || GET_MODE (op0) == ptr_mode
|
|
||||||
|| GET_CODE (op0) == CONST_INT
|
|
||||||
|| GET_CODE (op0) == CONST_DOUBLE);
|
|
||||||
|
|
||||||
@@ -2199,13 +2233,32 @@ expand_debug_expr (tree exp)
|
|
||||||
|
|
||||||
if (offset)
|
|
||||||
{
|
|
||||||
+ enum machine_mode addrmode, offmode;
|
|
||||||
+
|
|
||||||
gcc_assert (MEM_P (op0));
|
|
||||||
|
|
||||||
+ op0 = XEXP (op0, 0);
|
|
||||||
+ addrmode = GET_MODE (op0);
|
|
||||||
+ if (addrmode == VOIDmode)
|
|
||||||
+ addrmode = Pmode;
|
|
||||||
+
|
|
||||||
op1 = expand_debug_expr (offset);
|
|
||||||
if (!op1)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
- op0 = gen_rtx_MEM (mode, gen_rtx_PLUS (Pmode, XEXP (op0, 0), op1));
|
|
||||||
+ offmode = GET_MODE (op1);
|
|
||||||
+ if (offmode == VOIDmode)
|
|
||||||
+ offmode = TYPE_MODE (TREE_TYPE (offset));
|
|
||||||
+
|
|
||||||
+ if (addrmode != offmode)
|
|
||||||
+ op1 = simplify_gen_subreg (addrmode, op1, offmode,
|
|
||||||
+ subreg_lowpart_offset (addrmode,
|
|
||||||
+ offmode));
|
|
||||||
+
|
|
||||||
+ /* Don't use offset_address here, we don't need a
|
|
||||||
+ recognizable address, and we don't want to generate
|
|
||||||
+ code. */
|
|
||||||
+ op0 = gen_rtx_MEM (mode, gen_rtx_PLUS (addrmode, op0, op1));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (MEM_P (op0))
|
|
||||||
@@ -2525,7 +2578,9 @@ expand_debug_expr (tree exp)
|
|
||||||
if (!op0 || !MEM_P (op0))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
- return XEXP (op0, 0);
|
|
||||||
+ op0 = convert_debug_memory_address (mode, XEXP (op0, 0));
|
|
||||||
+
|
|
||||||
+ return op0;
|
|
||||||
|
|
||||||
case VECTOR_CST:
|
|
||||||
exp = build_constructor_from_list (TREE_TYPE (exp),
|
|
||||||
Index: gcc/testsuite/gcc.dg/pr41248.c
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
|
||||||
+++ gcc/testsuite/gcc.dg/pr41248.c 2009-09-07 19:17:27.000000000 -0300
|
|
||||||
@@ -0,0 +1,27 @@
|
|
||||||
+/* { dg-do compile } */
|
|
||||||
+/* { dg-options "-O2 -g" } */
|
|
||||||
+
|
|
||||||
+struct __gcov_var {
|
|
||||||
+ unsigned int offset;
|
|
||||||
+ unsigned int buffer[(1 << 10) + 1];
|
|
||||||
+} __gcov_var;
|
|
||||||
+unsigned int * gcov_write_words (unsigned int words) {
|
|
||||||
+ unsigned int *result;
|
|
||||||
+ result = &__gcov_var.buffer[__gcov_var.offset];
|
|
||||||
+ return result;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+struct gcov_ctr_summary { };
|
|
||||||
+struct gcov_summary {
|
|
||||||
+ unsigned int checksum;
|
|
||||||
+ struct gcov_ctr_summary ctrs[1];
|
|
||||||
+};
|
|
||||||
+void __gcov_write_unsigned (unsigned int);
|
|
||||||
+void __gcov_write_summary (unsigned int tag,
|
|
||||||
+ const struct gcov_summary *summary)
|
|
||||||
+{
|
|
||||||
+ unsigned ix;
|
|
||||||
+ const struct gcov_ctr_summary *csum;
|
|
||||||
+ __gcov_write_unsigned (summary->checksum);
|
|
||||||
+ for (csum = summary->ctrs, ix = 1; ix--; csum++) { }
|
|
||||||
+}
|
|
Loading…
Reference in New Issue
Block a user