From 9fceea184483b48a36d6459ccf7e5e3a5707c9e7 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 17 Feb 2009 17:56:57 +0000 Subject: [PATCH] 4.4.0-0.20 --- gcc.spec | 15 +- gcc44-diff.patch | 353 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 365 insertions(+), 3 deletions(-) create mode 100644 gcc44-diff.patch diff --git a/gcc.spec b/gcc.spec index eed14dc..f08367f 100644 --- a/gcc.spec +++ b/gcc.spec @@ -3,7 +3,7 @@ %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.19 +%define gcc_release 0.20 %define _unpackaged_files_terminate_build 0 %define multilib_64_archs sparc64 ppc64 s390x x86_64 %define include_gappletviewer 1 @@ -30,7 +30,7 @@ %define multilib_32_arch ppc %endif %ifarch x86_64 -%define multilib_32_arch i386 +%define multilib_32_arch i586 %endif Summary: Various compilers (C, C++, Objective-C, Java, ...) Name: gcc @@ -141,6 +141,7 @@ Patch20: gcc44-libtool-no-rpath.patch Patch21: gcc44-cloog-dl.patch Patch22: gcc44-raw-string.patch Patch23: gcc44-pr39175.patch +Patch24: gcc44-diff.patch Patch1000: fastjar-0.97-segfault.patch @@ -428,6 +429,7 @@ which are required to compile with the GNAT. %endif %patch22 -p0 -b .raw-string~ %patch23 -p0 -b .pr39175~ +%patch24 -p0 -b .diff~ # This testcase doesn't compile. rm libjava/testsuite/libjava.lang/PR35020* @@ -540,7 +542,7 @@ OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mcpu=ultrasparc/-mtune=ultrasparc/g;s/-mcpu=v[78]//g'` %endif %ifarch %{ix86} -OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-march=i386//g'` +OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-march=i.86//g'` %endif %ifarch sparc64 cat > gcc64 <<"EOF" @@ -1762,6 +1764,13 @@ fi %doc rpm.doc/changelogs/libmudflap/ChangeLog* %changelog +* Tue Feb 17 2009 Jakub Jelinek 4.4.0-0.20 +- update from trunk + - PRs c/35446, middle-end/39214, tree-optimization/39202 + - fix ICE in compute_attic (#485708, PR tree-optimization/39204) + - fix bogus aliasing warning (#485463, tree-optimization/39207) +- update for i386.rpm -> i586.rpm switch + * Mon Feb 16 2009 Jakub Jelinek 4.4.0-0.19 - update from trunk - PRs c++/39070, fortran/36528, fortran/36703, fortran/38259, diff --git a/gcc44-diff.patch b/gcc44-diff.patch new file mode 100644 index 0000000..b3cc285 --- /dev/null +++ b/gcc44-diff.patch @@ -0,0 +1,353 @@ +--- gcc/DATESTAMP (revision 144236) ++++ gcc/DATESTAMP (revision 144237) +@@ -1 +1 @@ +-20090216 ++20090217 +--- gcc/ChangeLog (revision 144236) ++++ gcc/ChangeLog (revision 144237) +@@ -1,3 +1,36 @@ ++2009-02-17 Richard Guenther ++ ++ PR tree-optimization/39202 ++ * tree-ssa-structalias.c (do_structure_copy): Before collapsing ++ a var make sure to follow existing collapses. ++ ++2009-02-17 Richard Guenther ++ ++ PR middle-end/39214 ++ * langhooks.c (lhd_print_error_function): Check for NULL block. ++ ++2009-02-17 Richard Guenther ++ ++ PR tree-optimization/39204 ++ * tree-ssa-pre.c (phi_translate_1): Lookup the value-number ++ of the PHI arg. ++ ++2009-02-17 Uros Bizjak ++ ++ * config/soft-fp/double.h: Update from glibc CVS. ++ ++2009-02-17 Richard Guenther ++ ++ PR tree-optimization/39207 ++ * tree-ssa-structalias.c (find_what_p_points_to): Do not emit ++ strict-aliasing warnings for pointers pointing to NULL. ++ ++2009-02-16 Joseph Myers ++ ++ PR c/35446 ++ * c-parser.c (c_parser_braced_init): Call pop_init_level when ++ skipping until next close brace. ++ + 2009-02-16 H.J. Lu + + PR target/37049 +--- gcc/testsuite/gcc.c-torture/compile/pr39202.c (revision 0) ++++ gcc/testsuite/gcc.c-torture/compile/pr39202.c (revision 144237) +@@ -0,0 +1,33 @@ ++typedef struct ++{ ++ union ++ { ++ int * aaa; ++ } u; ++} t_a; ++ ++typedef struct ++{ ++ unsigned bbb : 1; ++} t_b; ++ ++typedef struct ++{ ++ int ccc; ++ t_a ddd; ++ t_b eee; ++ int fff; ++} t_c; ++ ++typedef struct t_d ++{ ++ t_c f1; ++ t_c f2; ++} t_d; ++ ++void foo (void) ++{ ++ t_d ggg; ++ ggg.f1 = ggg.f2; ++} ++ +--- gcc/testsuite/gcc.dg/torture/pr39204.c (revision 0) ++++ gcc/testsuite/gcc.dg/torture/pr39204.c (revision 144237) +@@ -0,0 +1,131 @@ ++/* { dg-do compile } */ ++/* { dg-options "-w" } */ ++ ++typedef unsigned int size_t; ++typedef unsigned char __u_char; ++typedef unsigned short int __u_short; ++typedef unsigned int __u_int; ++typedef unsigned long int __u_long; ++typedef signed char __int8_t; ++typedef unsigned char __uint8_t; ++typedef signed short int __int16_t; ++typedef unsigned short int __uint16_t; ++typedef signed int __int32_t; ++typedef unsigned int __uint32_t; ++__extension__ typedef signed long long int __int64_t; ++__extension__ typedef unsigned long long int __uint64_t; ++__extension__ typedef long long int __quad_t; ++__extension__ typedef unsigned long long int __u_quad_t; ++__extension__ typedef __u_quad_t __dev_t; ++__extension__ typedef unsigned int __uid_t; ++__extension__ typedef unsigned int __gid_t; ++__extension__ typedef unsigned long int __ino_t; ++__extension__ typedef __u_quad_t __ino64_t; ++__extension__ typedef unsigned int __mode_t; ++__extension__ typedef unsigned int __nlink_t; ++__extension__ typedef long int __off_t; ++__extension__ typedef __quad_t __off64_t; ++__extension__ typedef int __pid_t; ++__extension__ typedef struct { ++ int __val[2]; ++} __fsid_t; ++__extension__ typedef long int __clock_t; ++__extension__ typedef unsigned int __id_t; ++typedef struct _IO_FILE FILE; ++typedef struct _IO_FILE __FILE; ++typedef struct { ++ int __count; ++ union { ++ unsigned int __wch; ++ char __wchb[4]; ++ } ++ __value; ++} __mbstate_t; ++typedef struct { ++ __off_t __pos; ++ __mbstate_t __state; ++} _G_fpos_t; ++typedef struct { ++ __off64_t __pos; ++ __mbstate_t __state; ++} _G_fpos64_t; ++typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); ++typedef struct _IO_FILE _IO_FILE; ++extern struct _IO_FILE_plus _IO_2_1_stderr_; ++extern int fputs (__const char *__restrict __s, FILE * __restrict __stream); ++extern char *strstr (__const char *__haystack, __const char *__needle) ++ __attribute__ ((__nonnull__ (1, 2))); ++ extern char *rindex (__const char *__s, int __c) __attribute__ ((__nonnull__ (1))); ++extern size_t strlen (__const char *__s) __attribute__ ((__nothrow__)) ++ __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); ++ char *mystrlwr (char *string); ++ char *m_replace_filename (const char *path, const char *filename); ++ typedef struct LINE { ++ char *text; ++ struct LINE *next; ++ int flags; ++ } LINE; ++typedef struct TOC { ++ char *text; ++ char *alt; ++ struct TOC *next; ++ int root; ++ int texinfoable; ++ int htmlable; ++ int otherfile; ++} TOC; ++static int _empty_count; ++extern char *_word_substitution[256]; ++static void _output_sorted_nested_toc (TOC ** list, unsigned int num_items); ++static char *_do_text_substitution (char *input); ++static int _toc_scmp (const void *e1, const void *e2) ++{ ++ TOC *t1 = *((TOC **) e1); ++ TOC *t2 = *((TOC **) e2); ++ return mystricmp (t1->text, t2->text); ++} ++static void _output_buffered_text (void) { if (_empty_count) ; } ++void _post_process_filename (char *filename) ++{ ++ int code_scanning = 0; ++ char *new_filename, *p; ++ char *line; ++ FILE *f1 = 0, *f2 = 0; ++ if (!new_filename || strlen (new_filename) < 2) ++ new_filename[strlen (filename) - 1] = 'x'; ++ if (!f1 || !f2) ++ while ((line = m_fgets (f1))) ++ { ++ line = _do_text_substitution (line); ++ fputs (line, f2); ++ } ++ if (remove (filename)) ++ cancel: ++ if (f1) ++ if (f2) ++ if (new_filename) ++ ; ++} ++static void _close_html_file (FILE * file) ++{ ++ int f; ++ for (f = 0; _word_substitution[f]; f++) ++ ; ++} ++static __attribute__((always_inline)) ++char * _do_text_substitution (char *input) ++{ ++ int start, end, middle, f; ++ char *temp, *found, *reader; ++ for (f = 0; _word_substitution[f]; f++) ++ { ++ reader = input; ++ while ((found = strstr (reader, _word_substitution[f]))) ++ { ++ start = found - input; ++ input = temp; ++ reader = temp + start + middle; ++ } ++ } ++ return input; ++} +--- gcc/testsuite/gcc.dg/noncompile/init-5.c (revision 0) ++++ gcc/testsuite/gcc.dg/noncompile/init-5.c (revision 144237) +@@ -0,0 +1,4 @@ ++/* Test for ICE after syntax error in initializer with range ++ designator: PR 35446. */ ++ ++int a[2][2] = { [0 ... 1] = { ; } }; /* { dg-error "expected expression" } */ +--- gcc/testsuite/gcc.dg/init-bad-4.c (revision 144236) ++++ gcc/testsuite/gcc.dg/init-bad-4.c (revision 144237) +@@ -2,4 +2,4 @@ + /* Origin: Richard Guenther */ + /* { dg-do compile } */ + +-struct A { } a = (struct A) {{ (X)0 }}; /* { dg-error "no members|extra brace|near|undeclared|constant|compound" } */ ++struct A { } a = (struct A) {{ (X)0 }}; /* { dg-error "no members|extra brace|near|undeclared|constant|compound|excess" } */ +--- gcc/testsuite/gcc.dg/vect/vect-outer-5.c (revision 144236) ++++ gcc/testsuite/gcc.dg/vect/vect-outer-5.c (revision 144237) +@@ -1,4 +1,4 @@ +-/* { dg-require-effective-target vect_int } */ ++/* { dg-require-effective-target vect_float } */ + + #include + #include +--- gcc/testsuite/gcc.dg/vect/vect-outer-6.c (revision 144236) ++++ gcc/testsuite/gcc.dg/vect/vect-outer-6.c (revision 144237) +@@ -1,4 +1,4 @@ +-/* { dg-require-effective-target vect_int } */ ++/* { dg-require-effective-target vect_float } */ + + #include + #include +--- gcc/testsuite/ChangeLog (revision 144236) ++++ gcc/testsuite/ChangeLog (revision 144237) +@@ -1,3 +1,24 @@ ++2009-02-17 Richard Guenther ++ ++ PR tree-optimization/39202 ++ * gcc.c-torture/compile/pr39202.c: New testcase. ++ ++2009-02-17 Richard Guenther ++ ++ PR tree-optimization/39204 ++ * gcc.dg/torture/pr39204.c: New testcase. ++ ++2009-02-17 Bingfeng Mei ++ ++ * gcc.dg/vect/vect-outer-5.c: Require vect_float support. ++ * gcc.dg/vect/vect-outer-6.c: Ditto. ++ ++2009-02-16 Joseph Myers ++ ++ PR c/35446 ++ * gcc.dg/noncompile/init-5.c: New test. ++ * gcc.dg/init-bad-4.c: Adjust expected errors. ++ + 2009-02-16 H.J. Lu + + PR target/37049 +--- gcc/langhooks.c (revision 144236) ++++ gcc/langhooks.c (revision 144237) +@@ -437,7 +437,7 @@ lhd_print_error_function (diagnostic_con + while (block && TREE_CODE (block) == BLOCK) + block = BLOCK_SUPERCONTEXT (block); + +- if (TREE_CODE (block) == FUNCTION_DECL) ++ if (block && TREE_CODE (block) == FUNCTION_DECL) + fndecl = block; + abstract_origin = NULL; + } +--- gcc/tree-ssa-pre.c (revision 144236) ++++ gcc/tree-ssa-pre.c (revision 144237) +@@ -1707,6 +1707,9 @@ phi_translate_1 (pre_expr expr, bitmap_s + tree def = PHI_ARG_DEF (phi, e->dest_idx); + pre_expr newexpr; + ++ if (TREE_CODE (def) == SSA_NAME) ++ def = VN_INFO (def)->valnum; ++ + /* Handle constant. */ + if (is_gimple_min_invariant (def)) + return get_or_alloc_expr_for_constant (def); +--- gcc/tree-ssa-structalias.c (revision 144236) ++++ gcc/tree-ssa-structalias.c (revision 144237) +@@ -3405,8 +3405,8 @@ do_structure_copy (tree lhsop, tree rhso + { + if (!do_simple_structure_copy (lhs, rhs, MIN (lhssize, rhssize))) + { +- lhs.var = collapse_rest_of_var (lhs.var); +- rhs.var = collapse_rest_of_var (rhs.var); ++ lhs.var = collapse_rest_of_var (get_varinfo_fc (lhs.var)->id); ++ rhs.var = collapse_rest_of_var (get_varinfo_fc (rhs.var)->id); + lhs.offset = 0; + rhs.offset = 0; + lhs.type = SCALAR; +@@ -4935,6 +4935,7 @@ find_what_p_points_to (tree p) + { + pi->pt_vars = NULL; + if (pruned > 0 ++ && !pi->pt_null + && pi->is_dereferenced + && warn_strict_aliasing > 0 + && !SSA_NAME_IS_DEFAULT_DEF (p)) +--- gcc/c-parser.c (revision 144236) ++++ gcc/c-parser.c (revision 144237) +@@ -3036,6 +3036,7 @@ c_parser_braced_init (c_parser *parser, + ret.value = error_mark_node; + ret.original_code = ERROR_MARK; + c_parser_skip_until_found (parser, CPP_CLOSE_BRACE, "expected %<}%>"); ++ pop_init_level (0); + return ret; + } + c_parser_consume_token (parser); +--- gcc/config/soft-fp/double.h (revision 144236) ++++ gcc/config/soft-fp/double.h (revision 144237) +@@ -1,6 +1,7 @@ + /* Software floating-point emulation. + Definitions for IEEE Double Precision +- Copyright (C) 1997,1998,1999,2006,2007 Free Software Foundation, Inc. ++ Copyright (C) 1997, 1998, 1999, 2006, 2007, 2008, 2009 ++ Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Richard Henderson (rth@cygnus.com), + Jakub Jelinek (jj@ultra.linux.cz), +@@ -203,13 +204,13 @@ union _FP_UNION_D + + #define FP_UNPACK_SEMIRAW_D(X,val) \ + do { \ +- _FP_UNPACK_RAW_2(1,X,val); \ ++ _FP_UNPACK_RAW_1(D,X,val); \ + _FP_UNPACK_SEMIRAW(D,1,X); \ + } while (0) + + #define FP_UNPACK_SEMIRAW_DP(X,val) \ + do { \ +- _FP_UNPACK_RAW_2_P(1,X,val); \ ++ _FP_UNPACK_RAW_1_P(D,X,val); \ + _FP_UNPACK_SEMIRAW(D,1,X); \ + } while (0) +