public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Jakub Jelinek <jakub@fedoraproject.org>
To: git-commits@fedoraproject.org
Subject: [rpms/gcc] rhel-f41-base: 4.4.0-0.25
Date: Mon, 29 Jun 2026 12:24:14 GMT [thread overview]
Message-ID: <178273585456.1.6615187003978343133.rpms-gcc-d5e437095234@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/gcc
Branch : rhel-f41-base
Commit : d5e4370952347addc29a86f8de63f1f7606bd26c
Author : Jakub Jelinek <jakub@fedoraproject.org>
Date : 2009-03-13T15:22:25+00:00
Stats : +397/-12 in 6 file(s)
URL : https://src.fedoraproject.org/rpms/gcc/c/d5e4370952347addc29a86f8de63f1f7606bd26c?branch=rhel-f41-base
Log:
4.4.0-0.25
---
diff --git a/.cvsignore b/.cvsignore
index 234ab48..61aad16 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1,2 +1,2 @@
fastjar-0.97.tar.gz
-gcc-4.4.0-20090310.tar.bz2
+gcc-4.4.0-20090313.tar.bz2
diff --git a/gcc.spec b/gcc.spec
index 2def515..c5cd968 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,9 +1,9 @@
-%define DATE 20090310
-%define SVNREV 144741
+%define DATE 20090313
+%define SVNREV 144837
%define gcc_version 4.4.0
# Note, gcc_release must be integer, if you want to add suffixes to
# %{release}, append them after %{gcc_release} on Release: line.
-%define gcc_release 0.24
+%define gcc_release 0.25
%define _unpackaged_files_terminate_build 0
%define multilib_64_archs sparc64 ppc64 s390x x86_64
%define include_gappletviewer 1
@@ -152,6 +152,9 @@ Patch22: gcc44-raw-string.patch
Patch24: gcc44-atom.patch
Patch25: gcc44-pr39226.patch
Patch26: gcc44-power7.patch
+Patch27: gcc44-pr39412.patch
+Patch28: gcc44-pr39443.patch
+Patch29: gcc44-pr39454.patch
Patch1000: fastjar-0.97-segfault.patch
@@ -441,6 +444,9 @@ which are required to compile with the GNAT.
%patch24 -p0 -b .atom~
%patch25 -p0 -b .pr39226~
%patch26 -p0 -b .power7~
+%patch27 -p0 -b .pr39412~
+%patch28 -p0 -b .pr39443~
+%patch29 -p0 -b .pr39454~
# This testcase doesn't compile.
rm libjava/testsuite/libjava.lang/PR35020*
@@ -631,11 +637,7 @@ CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`"
%endif
#GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap
-%ifarch sparcv9
-GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap
-%else
GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap
-%endif
# run the tests.
make %{?_smp_mflags} -k check ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector}'" || :
@@ -1755,10 +1757,18 @@ fi
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
%changelog
+* Fri Mar 13 2009 Jakub Jelinek <jakub@redhat.com> 4.4.0-0.25
+- update from trunk
+ - PRs debug/39086, debug/39432, libobjc/27466, middle-end/37850,
+ target/39137, target/39181, target/39431, target/39445, target/5362,
+ testsuite/39451, tree-optimization/39422
+- fix ICE in gen_tagged_type_instantiation_die (#489308, PR debug/39412)
+- fix memcmp builtin asm redirection (PR middle-end/39443)
+- fix sparcv9 profiledbootstrap (PR bootstrap/39454)
+
* Thu Mar 12 2009 Dennis Gilmore <dennis@ausil.us>
-- don't build cloog support on sparc arches
-- missing some deps still
-- build sparcv9 with bootstrap not profiledbootstrap
+- don't build with graphite support on sparc arches
+ - still missing some deps
* Tue Mar 10 2009 Jakub Jelinek <jakub@redhat.com> 4.4.0-0.24
- update from trunk
diff --git a/gcc44-pr39412.patch b/gcc44-pr39412.patch
new file mode 100644
index 0000000..f45c3ea
--- /dev/null
+++ b/gcc44-pr39412.patch
@@ -0,0 +1,170 @@
+2009-03-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/39412
+ * dwarf2out.c (gen_inlined_enumeration_type_die,
+ gen_inlined_structure_type_die, gen_inlined_union_type_die,
+ gen_tagged_type_instantiation_die): Removed.
+ (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
+ do nothing.
+
+ * gcc.dg/debug/pr39412.c: New test.
+
+--- gcc/dwarf2out.c.jj 2009-03-09 11:38:55.000000000 +0100
++++ gcc/dwarf2out.c 2009-03-11 11:12:02.000000000 +0100
+@@ -5149,9 +5149,6 @@ static void gen_descr_array_type_die (tr
+ #if 0
+ static void gen_entry_point_die (tree, dw_die_ref);
+ #endif
+-static void gen_inlined_enumeration_type_die (tree, dw_die_ref);
+-static void gen_inlined_structure_type_die (tree, dw_die_ref);
+-static void gen_inlined_union_type_die (tree, dw_die_ref);
+ static dw_die_ref gen_enumeration_type_die (tree, dw_die_ref);
+ static dw_die_ref gen_formal_parameter_die (tree, tree, dw_die_ref);
+ static void gen_unspecified_parameters_die (tree, dw_die_ref);
+@@ -5172,7 +5169,6 @@ static void gen_struct_or_union_type_die
+ static void gen_subroutine_type_die (tree, dw_die_ref);
+ static void gen_typedef_die (tree, dw_die_ref);
+ static void gen_type_die (tree, dw_die_ref);
+-static void gen_tagged_type_instantiation_die (tree, dw_die_ref);
+ static void gen_block_die (tree, dw_die_ref, int);
+ static void decls_for_scope (tree, dw_die_ref, int);
+ static int is_redundant_typedef (const_tree);
+@@ -13149,18 +13145,6 @@ retry_incomplete_types (void)
+ gen_type_die (VEC_index (tree, incomplete_types, i), comp_unit_die);
+ }
+
+-/* Generate a DIE to represent an inlined instance of an enumeration type. */
+-
+-static void
+-gen_inlined_enumeration_type_die (tree type, dw_die_ref context_die)
+-{
+- dw_die_ref type_die = new_die (DW_TAG_enumeration_type, context_die, type);
+-
+- /* We do not check for TREE_ASM_WRITTEN (type) being set, as the type may
+- be incomplete and such types are not marked. */
+- add_abstract_origin_attribute (type_die, type);
+-}
+-
+ /* Determine what tag to use for a record type. */
+
+ static enum dwarf_tag
+@@ -13185,30 +13169,6 @@ record_type_tag (tree type)
+ }
+ }
+
+-/* Generate a DIE to represent an inlined instance of a structure type. */
+-
+-static void
+-gen_inlined_structure_type_die (tree type, dw_die_ref context_die)
+-{
+- dw_die_ref type_die = new_die (record_type_tag (type), context_die, type);
+-
+- /* We do not check for TREE_ASM_WRITTEN (type) being set, as the type may
+- be incomplete and such types are not marked. */
+- add_abstract_origin_attribute (type_die, type);
+-}
+-
+-/* Generate a DIE to represent an inlined instance of a union type. */
+-
+-static void
+-gen_inlined_union_type_die (tree type, dw_die_ref context_die)
+-{
+- dw_die_ref type_die = new_die (DW_TAG_union_type, context_die, type);
+-
+- /* We do not check for TREE_ASM_WRITTEN (type) being set, as the type may
+- be incomplete and such types are not marked. */
+- add_abstract_origin_attribute (type_die, type);
+-}
+-
+ /* Generate a DIE to represent an enumeration type. Note that these DIEs
+ include all of the information about the enumeration values also. Each
+ enumerated type name/value is listed as a child of the enumerated type
+@@ -14835,46 +14795,6 @@ gen_type_die (tree type, dw_die_ref cont
+ gen_type_die_with_usage (type, context_die, DINFO_USAGE_DIR_USE);
+ }
+
+-/* Generate a DIE for a tagged type instantiation. */
+-
+-static void
+-gen_tagged_type_instantiation_die (tree type, dw_die_ref context_die)
+-{
+- if (type == NULL_TREE || type == error_mark_node)
+- return;
+-
+- /* We are going to output a DIE to represent the unqualified version of
+- this type (i.e. without any const or volatile qualifiers) so make sure
+- that we have the main variant (i.e. the unqualified version) of this
+- type now. */
+- gcc_assert (type == type_main_variant (type));
+-
+- /* Do not check TREE_ASM_WRITTEN (type) as it may not be set if this is
+- an instance of an unresolved type. */
+-
+- switch (TREE_CODE (type))
+- {
+- case ERROR_MARK:
+- break;
+-
+- case ENUMERAL_TYPE:
+- gen_inlined_enumeration_type_die (type, context_die);
+- break;
+-
+- case RECORD_TYPE:
+- gen_inlined_structure_type_die (type, context_die);
+- break;
+-
+- case UNION_TYPE:
+- case QUAL_UNION_TYPE:
+- gen_inlined_union_type_die (type, context_die);
+- break;
+-
+- default:
+- gcc_unreachable ();
+- }
+-}
+-
+ /* Generate a DW_TAG_lexical_block DIE followed by DIEs to represent all of the
+ things which are local to the given block. */
+
+@@ -15315,14 +15235,14 @@ gen_decl_die (tree decl, tree origin, dw
+ of some type tag, if the given TYPE_DECL is marked as having been
+ instantiated from some other (original) TYPE_DECL node (e.g. one which
+ was generated within the original definition of an inline function) we
+- have to generate a special (abbreviated) DW_TAG_structure_type,
+- DW_TAG_union_type, or DW_TAG_enumeration_type DIE here. */
+- if (TYPE_DECL_IS_STUB (decl) && decl_ultimate_origin (decl) != NULL_TREE
+- && is_tagged_type (TREE_TYPE (decl)))
+- {
+- gen_tagged_type_instantiation_die (TREE_TYPE (decl), context_die);
+- break;
+- }
++ used to generate a special (abbreviated) DW_TAG_structure_type,
++ DW_TAG_union_type, or DW_TAG_enumeration_type DIE here. But nothing
++ should be actually referencing those DIEs, as variable DIEs with that
++ type would be emitted already in the abstract origin, so it was always
++ removed during unused type prunning. Don't add anything in this
++ case. */
++ if (TYPE_DECL_IS_STUB (decl) && decl_ultimate_origin (decl) != NULL_TREE)
++ break;
+
+ if (is_redundant_typedef (decl))
+ gen_type_die (TREE_TYPE (decl), context_die);
+--- gcc/testsuite/gcc.dg/debug/pr39412.c.jj 2009-03-11 11:14:32.000000000 +0100
++++ gcc/testsuite/gcc.dg/debug/pr39412.c 2009-03-11 11:14:39.000000000 +0100
+@@ -0,0 +1,16 @@
++/* PR debug/39412 */
++/* { dg-do compile } */
++
++struct S { int i; };
++
++inline void
++bar (const void *x, unsigned long y)
++{
++ const union { struct S a[y]; } *u = x;
++}
++
++void
++foo (const void *x, unsigned long y)
++{
++ bar (x, y);
++}
diff --git a/gcc44-pr39443.patch b/gcc44-pr39443.patch
new file mode 100644
index 0000000..e16aa7e
--- /dev/null
+++ b/gcc44-pr39443.patch
@@ -0,0 +1,131 @@
+2009-03-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/39443
+ * optabs.c (set_user_assembler_libfunc): New function.
+ * expr.h (set_user_assembler_libfunc): New prototype.
+ * c-common.c: Include libfuncs.h.
+ (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
+ for memcmp, memset, memcpy, memmove and abort.
+
+ * gcc.dg/pr39443.c: New test.
+
+--- gcc/optabs.c.jj 2008-11-18 19:24:09.000000000 +0100
++++ gcc/optabs.c 2009-03-12 16:16:56.000000000 +0100
+@@ -6072,6 +6072,24 @@ init_one_libfunc (const char *name)
+ return XEXP (DECL_RTL (decl), 0);
+ }
+
++/* Adjust the assembler name of libfunc NAME to ASMSPEC. */
++
++rtx
++set_user_assembler_libfunc (const char *name, const char *asmspec)
++{
++ tree id, decl;
++ void **slot;
++ hashval_t hash;
++
++ id = get_identifier (name);
++ hash = htab_hash_string (name);
++ slot = htab_find_slot_with_hash (libfunc_decls, id, hash, INSERT);
++ decl = (tree) *slot;
++ gcc_assert (decl);
++ set_user_assembler_name (decl, asmspec);
++ return XEXP (DECL_RTL (decl), 0);
++}
++
+ /* Call this to reset the function entry for one optab (OPTABLE) in mode
+ MODE to NAME, which should be either 0 or a string constant. */
+ void
+--- gcc/expr.h.jj 2009-02-20 15:33:46.000000000 +0100
++++ gcc/expr.h 2009-03-12 16:17:41.000000000 +0100
+@@ -1,6 +1,6 @@
+ /* Definitions for code generation pass of GNU compiler.
+ Copyright (C) 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+- 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
++ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+ Free Software Foundation, Inc.
+
+ This file is part of GCC.
+@@ -786,6 +786,7 @@ extern void init_all_optabs (void);
+
+ /* Call this to initialize an optab function entry. */
+ extern rtx init_one_libfunc (const char *);
++extern rtx set_user_assembler_libfunc (const char *, const char *);
+
+ extern int vector_mode_valid_p (enum machine_mode);
+
+--- gcc/c-common.c.jj 2009-03-02 09:45:47.000000000 +0100
++++ gcc/c-common.c 2009-03-12 16:20:37.000000000 +0100
+@@ -51,6 +51,7 @@ along with GCC; see the file COPYING3.
+ #include "target-def.h"
+ #include "gimple.h"
+ #include "fixed-value.h"
++#include "libfuncs.h"
+
+ cpp_reader *parse_in; /* Declared in c-pragma.h. */
+
+@@ -4401,10 +4402,28 @@ set_builtin_user_assembler_name (tree de
+
+ builtin = built_in_decls [DECL_FUNCTION_CODE (decl)];
+ set_user_assembler_name (builtin, asmspec);
+- if (DECL_FUNCTION_CODE (decl) == BUILT_IN_MEMCPY)
+- init_block_move_fn (asmspec);
+- else if (DECL_FUNCTION_CODE (decl) == BUILT_IN_MEMSET)
+- init_block_clear_fn (asmspec);
++ switch (DECL_FUNCTION_CODE (decl))
++ {
++ case BUILT_IN_MEMCPY:
++ init_block_move_fn (asmspec);
++ memcpy_libfunc = set_user_assembler_libfunc ("memcpy", asmspec);
++ break;
++ case BUILT_IN_MEMSET:
++ init_block_clear_fn (asmspec);
++ memset_libfunc = set_user_assembler_libfunc ("memset", asmspec);
++ break;
++ case BUILT_IN_MEMMOVE:
++ memmove_libfunc = set_user_assembler_libfunc ("memmove", asmspec);
++ break;
++ case BUILT_IN_MEMCMP:
++ memcmp_libfunc = set_user_assembler_libfunc ("memcmp", asmspec);
++ break;
++ case BUILT_IN_ABORT:
++ abort_libfunc = set_user_assembler_libfunc ("abort", asmspec);
++ break;
++ default:
++ break;
++ }
+ }
+
+ /* The number of named compound-literals generated thus far. */
+--- gcc/Makefile.in.jj 2009-02-20 15:49:01.000000000 +0100
++++ gcc/Makefile.in 2009-03-12 16:42:47.000000000 +0100
+@@ -1890,7 +1890,7 @@ c-common.o : c-common.c $(CONFIG_H) $(SY
+ $(TARGET_H) $(C_TREE_H) tree-iterator.h langhooks.h tree-mudflap.h \
+ intl.h opts.h $(REAL_H) $(CPPLIB_H) $(TREE_INLINE_H) $(HASHTAB_H) \
+ $(BUILTINS_DEF) $(CGRAPH_H) $(BASIC_BLOCK_H) $(TARGET_DEF_H) \
+- $(GIMPLE_H)
++ $(GIMPLE_H) libfuncs.h
+
+ c-pretty-print.o : c-pretty-print.c $(C_PRETTY_PRINT_H) \
+ $(C_TREE_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(REAL_H) \
+--- gcc/testsuite/gcc.dg/pr39443.c.jj 2009-03-12 16:33:41.000000000 +0100
++++ gcc/testsuite/gcc.dg/pr39443.c 2009-03-12 16:33:22.000000000 +0100
+@@ -0,0 +1,18 @@
++/* PR middle-end/39443 */
++/* { dg-do compile } */
++/* { dg-options "-O2" } */
++/* { dg-final { scan-assembler-not "memcmp" } } */
++
++typedef __SIZE_TYPE__ size_t;
++
++extern int memcmp (const void *s1, const void *s2, size_t n)
++ __attribute__ ((__nothrow__, __pure__));
++extern __typeof (memcmp) memcmp __asm__ ("memory_compare");
++
++int
++test (char *s, char *t, int cnt)
++{
++ if (__builtin_expect (cnt, 0))
++ return memcmp (s, t, cnt);
++ return 0;
++}
diff --git a/gcc44-pr39454.patch b/gcc44-pr39454.patch
new file mode 100644
index 0000000..cb82106
--- /dev/null
+++ b/gcc44-pr39454.patch
@@ -0,0 +1,74 @@
+2009-03-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/39454
+ * cse.c (fold_rtx): Don't modify original const_arg1 when
+ canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
+ separate variable instead.
+ * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
+ from out of range shift counts.
+ (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
+
+--- gcc/cse.c.jj 2009-03-06 20:29:07.000000000 +0100
++++ gcc/cse.c 2009-03-13 11:44:11.000000000 +0100
+@@ -3464,6 +3464,7 @@ fold_rtx (rtx x, rtx insn)
+ int is_shift
+ = (code == ASHIFT || code == ASHIFTRT || code == LSHIFTRT);
+ rtx y, inner_const, new_const;
++ rtx canon_const_arg1 = const_arg1;
+ enum rtx_code associate_code;
+
+ if (is_shift
+@@ -3471,8 +3472,9 @@ fold_rtx (rtx x, rtx insn)
+ || INTVAL (const_arg1) < 0))
+ {
+ if (SHIFT_COUNT_TRUNCATED)
+- const_arg1 = GEN_INT (INTVAL (const_arg1)
+- & (GET_MODE_BITSIZE (mode) - 1));
++ canon_const_arg1 = GEN_INT (INTVAL (const_arg1)
++ & (GET_MODE_BITSIZE (mode)
++ - 1));
+ else
+ break;
+ }
+@@ -3531,7 +3533,8 @@ fold_rtx (rtx x, rtx insn)
+ associate_code = (is_shift || code == MINUS ? PLUS : code);
+
+ new_const = simplify_binary_operation (associate_code, mode,
+- const_arg1, inner_const);
++ canon_const_arg1,
++ inner_const);
+
+ if (new_const == 0)
+ break;
+--- gcc/rtlanal.c.jj 2009-02-20 15:55:28.000000000 +0100
++++ gcc/rtlanal.c 2009-03-13 13:30:55.000000000 +0100
+@@ -4061,7 +4061,8 @@ nonzero_bits1 (const_rtx x, enum machine
+ low-order bits by left shifts. */
+ if (GET_CODE (XEXP (x, 1)) == CONST_INT
+ && INTVAL (XEXP (x, 1)) >= 0
+- && INTVAL (XEXP (x, 1)) < HOST_BITS_PER_WIDE_INT)
++ && INTVAL (XEXP (x, 1)) < HOST_BITS_PER_WIDE_INT
++ && INTVAL (XEXP (x, 1)) < GET_MODE_BITSIZE (GET_MODE (x)))
+ {
+ enum machine_mode inner_mode = GET_MODE (x);
+ unsigned int width = GET_MODE_BITSIZE (inner_mode);
+@@ -4542,7 +4543,8 @@ num_sign_bit_copies1 (const_rtx x, enum
+ num0 = cached_num_sign_bit_copies (XEXP (x, 0), mode,
+ known_x, known_mode, known_ret);
+ if (GET_CODE (XEXP (x, 1)) == CONST_INT
+- && INTVAL (XEXP (x, 1)) > 0)
++ && INTVAL (XEXP (x, 1)) > 0
++ && INTVAL (XEXP (x, 1)) < GET_MODE_BITSIZE (GET_MODE (x)))
+ num0 = MIN ((int) bitwidth, num0 + INTVAL (XEXP (x, 1)));
+
+ return num0;
+@@ -4551,7 +4553,8 @@ num_sign_bit_copies1 (const_rtx x, enum
+ /* Left shifts destroy copies. */
+ if (GET_CODE (XEXP (x, 1)) != CONST_INT
+ || INTVAL (XEXP (x, 1)) < 0
+- || INTVAL (XEXP (x, 1)) >= (int) bitwidth)
++ || INTVAL (XEXP (x, 1)) >= (int) bitwidth
++ || INTVAL (XEXP (x, 1)) >= GET_MODE_BITSIZE (GET_MODE (x)))
+ return 1;
+
+ num0 = cached_num_sign_bit_copies (XEXP (x, 0), mode,
diff --git a/sources b/sources
index 56fca36..c6d98e6 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz
-f6c306d03c8512974488b21eee60a438 gcc-4.4.0-20090310.tar.bz2
+6dca5ece6628cb31123bf1fba7b1cd1e gcc-4.4.0-20090313.tar.bz2
reply other threads:[~2026-06-29 12:24 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178273585456.1.6615187003978343133.rpms-gcc-d5e437095234@fedoraproject.org \
--to=jakub@fedoraproject.org \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox