Hello community,
here is the log from the commit of package gcc41
checked in at Wed Nov 15 16:23:06 CET 2006.
--------
--- gcc41/cross-alpha-gcc-icecream-backend.changes 2006-11-09 10:42:24.000000000 +0100
+++ /mounts/work_src_done/STABLE/gcc41/cross-alpha-gcc-icecream-backend.changes 2006-11-15 15:44:58.000000000 +0100
@@ -1,0 +2,15 @@
+Wed Nov 15 13:18:19 CET 2006 - rguenther@suse.de
+
+- Update to SVN branch head, fixes PR21032.
+- Add patches for PR28217, PR28888, PR29753 and PR29788.
+- Make gcc41-java and libgcj41-devel cross-dependencies independent
+ of release numbers. [#214268]
+- Remove left-over dependency from libstdc++41-devel on gcc41.
+
+-------------------------------------------------------------------
+Mon Nov 13 15:16:47 CET 2006 - rguenther@suse.de
+
+- Add patch for PR29797, fixes OpenOffice miscompilation on
+ ppc. [#198243]
+
+-------------------------------------------------------------------
cross-arm-gcc-icecream-backend.changes: same change
cross-avr-gcc.changes: same change
cross-hppa-gcc-icecream-backend.changes: same change
cross-i386-gcc-icecream-backend.changes: same change
cross-ia64-gcc-icecream-backend.changes: same change
cross-ppc-gcc-icecream-backend.changes: same change
cross-ppc64-gcc-icecream-backend.changes: same change
cross-s390-gcc-icecream-backend.changes: same change
cross-s390x-gcc-icecream-backend.changes: same change
cross-x86_64-gcc-icecream-backend.changes: same change
gcc41.changes: same change
libgcj41.changes: same change
Old:
----
gcc-4.1.2-20061109.tar.bz2
pr28545.patch
New:
----
gcc-4.1.2-20061115.tar.bz2
pr28217.patch
pr28888.patch
pr29753.patch
pr29788.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cross-alpha-gcc-icecream-backend.spec ++++++
--- /var/tmp/diff_new_pack.eVJp8I/_old 2006-11-15 16:21:32.000000000 +0100
+++ /var/tmp/diff_new_pack.eVJp8I/_new 2006-11-15 16:21:32.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package cross-alpha-gcc-icecream-backend (Version 4.1.2_20061109)
+# spec file for package cross-alpha-gcc-icecream-backend (Version 4.1.2_20061115)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -28,8 +28,8 @@
# COMMON-BEGIN
%define biarch_targets x86_64 s390x powerpc64 powerpc
URL: http://gcc.gnu.org/
-License: BSD License and BSD-like, GNU General Public License (GPL) - all versions
-Version: 4.1.2_20061109
+License: BSD License and BSD-like, GNU General Public License (GPL)
+Version: 4.1.2_20061115
Release: 1
%define gcc_version %(echo %version | sed 's/_.*//')
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
@@ -73,7 +73,10 @@
Patch98: nvl199137.patch
Patch100: pr28755.patch
Patch101: revert-pr28506.patch
-Patch102: pr28545.patch
+Patch104: pr28217.patch
+Patch105: pr28888.patch
+Patch106: pr29788.patch
+Patch108: pr29753.patch
# A set of patches from the RH srpm
Patch51: gcc41-ia64-stack-protector.patch
Patch55: gcc41-java-slow_pthread_self.patch
@@ -158,7 +161,12 @@
%patch98 -p1
%patch100
%patch101
-%patch102
+cd gcc
+%patch104
+%patch105
+%patch106
+%patch108
+cd ..
%patch51
%patch55
%patch57
@@ -376,6 +384,15 @@
/usr/share/icecream-envs
%changelog -n cross-alpha-gcc-icecream-backend
+* Wed Nov 15 2006 - rguenther@suse.de
+- Update to SVN branch head, fixes PR21032.
+- Add patches for PR28217, PR28888, PR29753 and PR29788.
+- Make gcc41-java and libgcj41-devel cross-dependencies independent
+ of release numbers. [#214268]
+- Remove left-over dependency from libstdc++41-devel on gcc41.
+* Mon Nov 13 2006 - rguenther@suse.de
+- Add patch for PR29797, fixes OpenOffice miscompilation on
+ ppc. [#198243]
* Thu Nov 09 2006 - rguenther@suse.de
- Update to SVN branch head, fixes PR29695.
* Wed Nov 01 2006 - rguenther@suse.de
cross-arm-gcc-icecream-backend.spec: same change
++++++ cross-avr-gcc.spec ++++++
--- /var/tmp/diff_new_pack.eVJp8I/_old 2006-11-15 16:21:32.000000000 +0100
+++ /var/tmp/diff_new_pack.eVJp8I/_new 2006-11-15 16:21:32.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package cross-avr-gcc (Version 4.1.2_20061109)
+# spec file for package cross-avr-gcc (Version 4.1.2_20061115)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -25,8 +25,8 @@
# COMMON-BEGIN
%define biarch_targets x86_64 s390x powerpc64 powerpc
URL: http://gcc.gnu.org/
-License: BSD License and BSD-like, GNU General Public License (GPL) - all versions
-Version: 4.1.2_20061109
+License: BSD License and BSD-like, GNU General Public License (GPL)
+Version: 4.1.2_20061115
Release: 1
%define gcc_version %(echo %version | sed 's/_.*//')
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
@@ -70,7 +70,10 @@
Patch98: nvl199137.patch
Patch100: pr28755.patch
Patch101: revert-pr28506.patch
-Patch102: pr28545.patch
+Patch104: pr28217.patch
+Patch105: pr28888.patch
+Patch106: pr29788.patch
+Patch108: pr29753.patch
# A set of patches from the RH srpm
Patch51: gcc41-ia64-stack-protector.patch
Patch55: gcc41-java-slow_pthread_self.patch
@@ -152,7 +155,12 @@
%patch98 -p1
%patch100
%patch101
-%patch102
+cd gcc
+%patch104
+%patch105
+%patch106
+%patch108
+cd ..
%patch51
%patch55
%patch57
@@ -339,6 +347,15 @@
%{_prefix}
%changelog -n cross-avr-gcc
+* Wed Nov 15 2006 - rguenther@suse.de
+- Update to SVN branch head, fixes PR21032.
+- Add patches for PR28217, PR28888, PR29753 and PR29788.
+- Make gcc41-java and libgcj41-devel cross-dependencies independent
+ of release numbers. [#214268]
+- Remove left-over dependency from libstdc++41-devel on gcc41.
+* Mon Nov 13 2006 - rguenther@suse.de
+- Add patch for PR29797, fixes OpenOffice miscompilation on
+ ppc. [#198243]
* Thu Nov 09 2006 - rguenther@suse.de
- Update to SVN branch head, fixes PR29695.
* Wed Nov 01 2006 - rguenther@suse.de
++++++ cross-hppa-gcc-icecream-backend.spec ++++++
--- /var/tmp/diff_new_pack.eVJp8I/_old 2006-11-15 16:21:32.000000000 +0100
+++ /var/tmp/diff_new_pack.eVJp8I/_new 2006-11-15 16:21:32.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package cross-hppa-gcc-icecream-backend (Version 4.1.2_20061109)
+# spec file for package cross-hppa-gcc-icecream-backend (Version 4.1.2_20061115)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -28,8 +28,8 @@
# COMMON-BEGIN
%define biarch_targets x86_64 s390x powerpc64 powerpc
URL: http://gcc.gnu.org/
-License: BSD License and BSD-like, GNU General Public License (GPL) - all versions
-Version: 4.1.2_20061109
+License: BSD License and BSD-like, GNU General Public License (GPL)
+Version: 4.1.2_20061115
Release: 1
%define gcc_version %(echo %version | sed 's/_.*//')
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
@@ -73,7 +73,10 @@
Patch98: nvl199137.patch
Patch100: pr28755.patch
Patch101: revert-pr28506.patch
-Patch102: pr28545.patch
+Patch104: pr28217.patch
+Patch105: pr28888.patch
+Patch106: pr29788.patch
+Patch108: pr29753.patch
# A set of patches from the RH srpm
Patch51: gcc41-ia64-stack-protector.patch
Patch55: gcc41-java-slow_pthread_self.patch
@@ -158,7 +161,12 @@
%patch98 -p1
%patch100
%patch101
-%patch102
+cd gcc
+%patch104
+%patch105
+%patch106
+%patch108
+cd ..
%patch51
%patch55
%patch57
@@ -376,6 +384,15 @@
/usr/share/icecream-envs
%changelog -n cross-hppa-gcc-icecream-backend
+* Wed Nov 15 2006 - rguenther@suse.de
+- Update to SVN branch head, fixes PR21032.
+- Add patches for PR28217, PR28888, PR29753 and PR29788.
+- Make gcc41-java and libgcj41-devel cross-dependencies independent
+ of release numbers. [#214268]
+- Remove left-over dependency from libstdc++41-devel on gcc41.
+* Mon Nov 13 2006 - rguenther@suse.de
+- Add patch for PR29797, fixes OpenOffice miscompilation on
+ ppc. [#198243]
* Thu Nov 09 2006 - rguenther@suse.de
- Update to SVN branch head, fixes PR29695.
* Wed Nov 01 2006 - rguenther@suse.de
cross-i386-gcc-icecream-backend.spec: same change
cross-ia64-gcc-icecream-backend.spec: same change
cross-ppc-gcc-icecream-backend.spec: same change
cross-ppc64-gcc-icecream-backend.spec: same change
cross-s390-gcc-icecream-backend.spec: same change
cross-s390x-gcc-icecream-backend.spec: same change
cross-x86_64-gcc-icecream-backend.spec: same change
++++++ gcc41.spec ++++++
--- /var/tmp/diff_new_pack.eVJp8I/_old 2006-11-15 16:21:33.000000000 +0100
+++ /var/tmp/diff_new_pack.eVJp8I/_new 2006-11-15 16:21:33.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package gcc41 (Version 4.1.2_20061109)
+# spec file for package gcc41 (Version 4.1.2_20061115)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -109,8 +109,8 @@
# COMMON-BEGIN
%define biarch_targets x86_64 s390x powerpc64 powerpc
URL: http://gcc.gnu.org/
-License: GNU General Public License (GPL) - all versions
-Version: 4.1.2_20061109
+License: GNU General Public License (GPL)
+Version: 4.1.2_20061115
Release: 1
%define gcc_version %(echo %version | sed 's/_.*//')
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
@@ -161,7 +161,10 @@
Patch98: nvl199137.patch
Patch100: pr28755.patch
Patch101: revert-pr28506.patch
-Patch102: pr28545.patch
+Patch104: pr28217.patch
+Patch105: pr28888.patch
+Patch106: pr29788.patch
+Patch108: pr29753.patch
# A set of patches from the RH srpm
Patch51: gcc41-ia64-stack-protector.patch
Patch55: gcc41-java-slow_pthread_self.patch
@@ -254,7 +257,6 @@
Group: System/Libraries
Autoreqprov: on
Requires: libstdc++ >= %{version}-%{release}
-Requires: gcc41 = %{version}-%{release}
Requires: glibc-devel
%ifarch ia64
Requires: libunwind-devel
@@ -273,7 +275,6 @@
Group: System/Libraries
Autoreqprov: on
Requires: libstdc++-32bit >= %{version}-%{release}
-Requires: gcc41 = %{version}-%{release}
Requires: glibc-devel-32bit
%ifarch ia64
Requires: libunwind-devel
@@ -287,7 +288,6 @@
Group: System/Libraries
Autoreqprov: on
Requires: libstdc++-64bit >= %{version}-%{release}
-Requires: gcc41 = %{version}-%{release}
Requires: glibc-devel-64bit
%ifarch ia64
Requires: libunwind-devel
@@ -662,7 +662,7 @@
Group: Development/Languages/Java
Autoreqprov: on
Requires: gcc41 = %{version}-%{release}
-Requires: libgcj41-devel = %{version}-%{release}
+Requires: libgcj41-devel = %{version}
%description java
The Java compiler from the GCC-tools-suite.
@@ -687,7 +687,7 @@
Summary: Include Files and Libraries mandatory for Development.
Group: Development/Libraries/Java
Autoreqprov: on
-Requires: libstdc++41-devel = %{version}-%{release}
+Requires: libstdc++41-devel = %{version}
Requires: libgcj >= %{version}-%{release}
Requires: gtk2-devel
Requires: libart_lgpl-devel
@@ -969,7 +969,12 @@
%patch98 -p1
%patch100
%patch101
-%patch102
+cd gcc
+%patch104
+%patch105
+%patch106
+%patch108
+cd ..
%patch51
%patch55
%patch57
@@ -1992,6 +1997,15 @@
%endif
%changelog -n gcc41
+* Wed Nov 15 2006 - rguenther@suse.de
+- Update to SVN branch head, fixes PR21032.
+- Add patches for PR28217, PR28888, PR29753 and PR29788.
+- Make gcc41-java and libgcj41-devel cross-dependencies independent
+ of release numbers. [#214268]
+- Remove left-over dependency from libstdc++41-devel on gcc41.
+* Mon Nov 13 2006 - rguenther@suse.de
+- Add patch for PR29797, fixes OpenOffice miscompilation on
+ ppc. [#198243]
* Thu Nov 09 2006 - rguenther@suse.de
- Update to SVN branch head, fixes PR29695.
* Wed Nov 01 2006 - rguenther@suse.de
++++++ libgcj41.spec ++++++
--- /var/tmp/diff_new_pack.eVJp8I/_old 2006-11-15 16:21:33.000000000 +0100
+++ /var/tmp/diff_new_pack.eVJp8I/_new 2006-11-15 16:21:33.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package libgcj41 (Version 4.1.2_20061109)
+# spec file for package libgcj41 (Version 4.1.2_20061115)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -123,8 +123,8 @@
# COMMON-BEGIN
%define biarch_targets x86_64 s390x powerpc64 powerpc
Url: http://gcc.gnu.org/
-License: GNU General Public License (GPL) - all versions, GNU Library General Public License v. 2.0 and 2.1 (LGPL)
-Version: 4.1.2_20061109
+License: GNU General Public License (GPL), GNU Library General Public License v. 2.0 and 2.1 (LGPL)
+Version: 4.1.2_20061115
Release: 1
%define gcc_version %(echo %version | sed 's/_.*//')
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
@@ -175,7 +175,10 @@
Patch98: nvl199137.patch
Patch100: pr28755.patch
Patch101: revert-pr28506.patch
-Patch102: pr28545.patch
+Patch104: pr28217.patch
+Patch105: pr28888.patch
+Patch106: pr29788.patch
+Patch108: pr29753.patch
# A set of patches from the RH srpm
Patch51: gcc41-ia64-stack-protector.patch
Patch55: gcc41-java-slow_pthread_self.patch
@@ -213,7 +216,7 @@
Summary: Include Files and Libraries mandatory for Development.
Group: Development/Libraries/Java
Autoreqprov: on
-Requires: libstdc++41-devel = %{version}-%{release}
+Requires: libstdc++41-devel = %{version}
Requires: libgcj >= %{version}-%{release}
Requires: gtk2-devel
Requires: libart_lgpl-devel
@@ -495,7 +498,12 @@
%patch98 -p1
%patch100
%patch101
-%patch102
+cd gcc
+%patch104
+%patch105
+%patch106
+%patch108
+cd ..
%patch51
%patch55
%patch57
@@ -1032,6 +1040,15 @@
%endif
%changelog -n libgcj41
+* Wed Nov 15 2006 - rguenther@suse.de
+- Update to SVN branch head, fixes PR21032.
+- Add patches for PR28217, PR28888, PR29753 and PR29788.
+- Make gcc41-java and libgcj41-devel cross-dependencies independent
+ of release numbers. [#214268]
+- Remove left-over dependency from libstdc++41-devel on gcc41.
+* Mon Nov 13 2006 - rguenther@suse.de
+- Add patch for PR29797, fixes OpenOffice miscompilation on
+ ppc. [#198243]
* Thu Nov 09 2006 - rguenther@suse.de
- Update to SVN branch head, fixes PR29695.
* Wed Nov 01 2006 - rguenther@suse.de
++++++ gcc-4.1.2-20061109.tar.bz2 -> gcc-4.1.2-20061115.tar.bz2 ++++++
gcc41/gcc-4.1.2-20061109.tar.bz2 /mounts/work_src_done/STABLE/gcc41/gcc-4.1.2-20061115.tar.bz2 differ: char 11, line 1
++++++ gcc.spec.in ++++++
--- gcc41/gcc.spec.in 2006-11-09 10:33:37.000000000 +0100
+++ /mounts/work_src_done/STABLE/gcc41/gcc.spec.in 2006-11-15 15:29:31.000000000 +0100
@@ -133,7 +133,7 @@
URL: http://gcc.gnu.org/
License: GPL
-Version: 4.1.2_20061109
+Version: 4.1.2_20061115
Release: 1
%define gcc_version %(echo %version | sed 's/_.*//')
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
@@ -186,7 +186,10 @@
Patch98: nvl199137.patch
Patch100: pr28755.patch
Patch101: revert-pr28506.patch
-Patch102: pr28545.patch
+Patch104: pr28217.patch
+Patch105: pr28888.patch
+Patch106: pr29788.patch
+Patch108: pr29753.patch
# A set of patches from the RH srpm
Patch51: gcc41-ia64-stack-protector.patch
Patch55: gcc41-java-slow_pthread_self.patch
@@ -268,7 +271,6 @@
Group: System/Libraries
Autoreqprov: on
Requires: libstdc++@gcc_suffix@@variant@ >= %{version}-%{release}
-Requires: gcc@base_ver@@gcc_suffix@ = %{version}-%{release}
Requires: glibc-devel@variant@
%ifarch ia64
Requires: libunwind-devel
@@ -457,7 +459,7 @@
Group: Development/Languages/Java
Autoreqprov: on
Requires: gcc@base_ver@@gcc_suffix@ = %{version}-%{release}
-Requires: libgcj@base_ver@-devel@gcc_suffix@ = %{version}-%{release}
+Requires: libgcj@base_ver@-devel@gcc_suffix@ = %{version}
%description java
The Java compiler from the GCC-tools-suite.
@@ -480,7 +482,7 @@
Summary: Include Files and Libraries mandatory for Development.
Group: Development/Libraries/Java
Autoreqprov: on
-Requires: libstdc++@base_ver@-devel@gcc_suffix@ = %{version}-%{release}
+Requires: libstdc++@base_ver@-devel@gcc_suffix@ = %{version}
Requires: libgcj@gcc_suffix@ >= %{version}-%{release}
Requires: gtk2-devel
Requires: libart_lgpl-devel
@@ -744,7 +746,12 @@
%patch98 -p1
%patch100
%patch101
-%patch102
+cd gcc
+%patch104
+%patch105
+%patch106
+%patch108
+cd ..
%patch51
%patch55
%patch57
++++++ pr28545.patch -> pr28217.patch ++++++
--- gcc41/pr28545.patch 2006-10-27 11:21:51.000000000 +0200
+++ /mounts/work_src_done/STABLE/gcc41/pr28217.patch 2006-11-14 14:00:44.000000000 +0100
@@ -1,94 +1,38 @@
-Index: gcc/tree-vrp.c
+Author: jason
+Date: Wed Jul 12 21:57:58 2006
+New Revision: 115399
+
+URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115399
+Log:
+ PR c++/28217
+ * semantics.c (note_decl_for_pch): Don't premangle templates.
+
+Modified:
+ trunk/gcc/cp/ChangeLog
+ trunk/gcc/cp/semantics.c
+
+
+Index: cp/semantics.c
===================================================================
---- gcc/tree-vrp.c (revision 117733)
-+++ gcc/tree-vrp.c (working copy)
-@@ -2972,6 +2972,66 @@ insert_range_assertions (void)
- }
-
-
-+/* Replaces all uses of NAME by VAL. */
-+
-+static void
-+replace_uses_by_vrp (tree name, tree val)
-+{
-+ imm_use_iterator imm_iter;
-+ use_operand_p use;
-+ tree stmt;
-+ edge e;
-+ unsigned i;
-+ VEC(tree,heap) *stmts = VEC_alloc (tree, heap, 20);
-+
-+ FOR_EACH_IMM_USE_SAFE (use, imm_iter, name)
-+ {
-+ stmt = USE_STMT (use);
-+ SET_USE (use, val);
-+
-+ if (TREE_CODE (stmt) == PHI_NODE)
-+ {
-+ e = PHI_ARG_EDGE (stmt, PHI_ARG_INDEX_FROM_USE (use));
-+ if (e->flags & EDGE_ABNORMAL)
-+ {
-+ /* This can only occur for virtual operands, since
-+ for the real ones SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name))
-+ would prevent replacement. */
-+ gcc_assert (!is_gimple_reg (name));
-+ SSA_NAME_OCCURS_IN_ABNORMAL_PHI (val) = 1;
-+ }
-+ }
-+ else
-+ VEC_safe_push (tree, heap, stmts, stmt);
-+ }
-+
-+ /* We do not update the statements in the loop above. Consider
-+ x = w * w;
-+
-+ If we performed the update in the first loop, the statement
-+ would be rescanned after first occurrence of w is replaced,
-+ the new uses would be placed to the beginning of the list,
-+ and we would never process them. */
-+ for (i = 0; VEC_iterate (tree, stmts, i, stmt); i++)
-+ update_stmt (stmt);
-+
-+ VEC_free (tree, heap, stmts);
-+
-+ /* Also update the trees stored in loop structures. */
-+ if (current_loops)
-+ {
-+ struct loop *loop;
-+
-+ for (i = 0; i < current_loops->num; i++)
-+ {
-+ loop = current_loops->parray[i];
-+ if (loop)
-+ substitute_in_loop_info (loop, name, val);
-+ }
-+ }
-+}
-+
-+
- /* Convert range assertion expressions into the implied copies and
- copy propagate away the copies. Doing the trivial copy propagation
- here avoids the need to run the full copy propagation pass after
-@@ -3015,8 +3075,7 @@ remove_range_assertions (void)
- {
- tree rhs = TREE_OPERAND (stmt, 1);
- tree cond = fold (ASSERT_EXPR_COND (rhs));
-- use_operand_p use_p;
-- imm_use_iterator iter;
-+ tree lhs = TREE_OPERAND (stmt, 0);
-
- gcc_assert (cond != boolean_false_node);
- TREE_OPERAND (stmt, 1) = ASSERT_EXPR_VAR (rhs);
-@@ -3024,11 +3083,7 @@ remove_range_assertions (void)
-
- /* The statement is now a copy. Propagate the RHS into
- every use of the LHS. */
-- FOR_EACH_IMM_USE_SAFE (use_p, iter, TREE_OPERAND (stmt, 0))
-- {
-- SET_USE (use_p, ASSERT_EXPR_VAR (rhs));
-- update_stmt (USE_STMT (use_p));
-- }
-+ replace_uses_by_vrp (lhs, ASSERT_EXPR_VAR (rhs));
-
- /* And finally, remove the copy, it is not needed. */
- bsi_remove (&si);
+*** cp/semantics.c (revision 118809)
+--- cp/semantics.c (working copy)
+*************** note_decl_for_pch (tree decl)
+*** 2319,2326 ****
+
+ /* There's a good chance that we'll have to mangle names at some
+ point, even if only for emission in debugging information. */
+! if (TREE_CODE (decl) == VAR_DECL
+! || TREE_CODE (decl) == FUNCTION_DECL)
+ mangle_decl (decl);
+ }
+
+--- 2319,2327 ----
+
+ /* There's a good chance that we'll have to mangle names at some
+ point, even if only for emission in debugging information. */
+! if ((TREE_CODE (decl) == VAR_DECL
+! || TREE_CODE (decl) == FUNCTION_DECL)
+! && !processing_template_decl)
+ mangle_decl (decl);
+ }
+
++++++ pr28545.patch -> pr28888.patch ++++++
--- gcc41/pr28545.patch 2006-10-27 11:21:51.000000000 +0200
+++ /mounts/work_src_done/STABLE/gcc41/pr28888.patch 2006-11-14 13:58:47.000000000 +0100
@@ -1,94 +1,252 @@
-Index: gcc/tree-vrp.c
+Author: rakdver
+Date: Fri Sep 22 10:02:47 2006
+New Revision: 117135
+
+URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=117135
+Log:
+ PR tree-optimization/28888
+ * tree-if-conv.c (combine_blocks): Rewritten.
+ * tree-cfg.c (tree_verify_flow_info): Check that edges with
+ EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
+
+ * gcc.dg/pr28888.c: New test.
+
+Index: tree-if-conv.c
===================================================================
---- gcc/tree-vrp.c (revision 117733)
-+++ gcc/tree-vrp.c (working copy)
-@@ -2972,6 +2972,66 @@ insert_range_assertions (void)
- }
-
-
-+/* Replaces all uses of NAME by VAL. */
-+
-+static void
-+replace_uses_by_vrp (tree name, tree val)
-+{
-+ imm_use_iterator imm_iter;
-+ use_operand_p use;
-+ tree stmt;
-+ edge e;
-+ unsigned i;
-+ VEC(tree,heap) *stmts = VEC_alloc (tree, heap, 20);
-+
-+ FOR_EACH_IMM_USE_SAFE (use, imm_iter, name)
-+ {
-+ stmt = USE_STMT (use);
-+ SET_USE (use, val);
-+
-+ if (TREE_CODE (stmt) == PHI_NODE)
-+ {
-+ e = PHI_ARG_EDGE (stmt, PHI_ARG_INDEX_FROM_USE (use));
-+ if (e->flags & EDGE_ABNORMAL)
-+ {
-+ /* This can only occur for virtual operands, since
-+ for the real ones SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name))
-+ would prevent replacement. */
-+ gcc_assert (!is_gimple_reg (name));
-+ SSA_NAME_OCCURS_IN_ABNORMAL_PHI (val) = 1;
-+ }
-+ }
-+ else
-+ VEC_safe_push (tree, heap, stmts, stmt);
-+ }
+*** tree-if-conv.c (revision 118809)
+--- tree-if-conv.c (working copy)
+*************** combine_blocks (struct loop *loop)
+*** 866,934 ****
+ basic_block bb, exit_bb, merge_target_bb;
+ unsigned int orig_loop_num_nodes = loop->num_nodes;
+ unsigned int i;
+! unsigned int n_exits;
+
+- get_loop_exit_edges (loop, &n_exits);
+ /* Process phi nodes to prepare blocks for merge. */
+ process_phi_nodes (loop);
+
+ exit_bb = NULL;
+
+- /* Merge basic blocks */
+- merge_target_bb = loop->header;
+ for (i = 1; i < orig_loop_num_nodes; i++)
+ {
+- edge e;
+- block_stmt_iterator bsi;
+- tree_stmt_iterator last;
+-
+ bb = ifc_bbs[i];
+
+! if (!exit_bb && bb_with_exit_edge_p (loop, bb))
+! exit_bb = bb;
+!
+! if (bb == exit_bb)
+ {
+! edge_iterator ei;
+
+ /* Connect this node with loop header. */
+! make_edge (ifc_bbs[0], bb, EDGE_FALLTHRU);
+! set_immediate_dominator (CDI_DOMINATORS, bb, ifc_bbs[0]);
+
+! if (exit_bb != loop->latch)
+! {
+! /* Redirect non-exit edge to loop->latch. */
+! FOR_EACH_EDGE (e, ei, bb->succs)
+! {
+! if (!loop_exit_edge_p (loop, e))
+! {
+! redirect_edge_and_branch (e, loop->latch);
+! set_immediate_dominator (CDI_DOMINATORS, loop->latch, bb);
+! }
+! }
+! }
+! continue;
+ }
+
+! if (bb == loop->latch && empty_block_p (bb))
+! continue;
+
+! /* It is time to remove this basic block. First remove edges. */
+! while (EDGE_COUNT (bb->preds) > 0)
+! remove_edge (EDGE_PRED (bb, 0));
+!
+! /* This is loop latch and loop does not have exit then do not
+! delete this basic block. Just remove its PREDS and reconnect
+! loop->header and loop->latch blocks. */
+! if (bb == loop->latch && n_exits == 0)
+! {
+! make_edge (loop->header, loop->latch, EDGE_FALLTHRU);
+! set_immediate_dominator (CDI_DOMINATORS, loop->latch, loop->header);
+! continue;
+! }
+
+! while (EDGE_COUNT (bb->succs) > 0)
+! remove_edge (EDGE_SUCC (bb, 0));
+
+ /* Remove labels and make stmts member of loop->header. */
+ for (bsi = bsi_start (bb); !bsi_end_p (bsi); )
+--- 866,938 ----
+ basic_block bb, exit_bb, merge_target_bb;
+ unsigned int orig_loop_num_nodes = loop->num_nodes;
+ unsigned int i;
+! edge e;
+! edge_iterator ei;
+
+ /* Process phi nodes to prepare blocks for merge. */
+ process_phi_nodes (loop);
+
++ /* Merge basic blocks. First remove all the edges in the loop, except
++ for those from the exit block. */
+ exit_bb = NULL;
++ for (i = 0; i < orig_loop_num_nodes; i++)
++ {
++ bb = ifc_bbs[i];
++ if (bb_with_exit_edge_p (loop, bb))
++ {
++ exit_bb = bb;
++ break;
++ }
++ }
++ gcc_assert (exit_bb != loop->latch);
+
+ for (i = 1; i < orig_loop_num_nodes; i++)
+ {
+ bb = ifc_bbs[i];
+
+! for (ei = ei_start (bb->preds); (e = ei_safe_edge (ei));)
+ {
+! if (e->src == exit_bb)
+! ei_next (&ei);
+! else
+! remove_edge (e);
+! }
+! }
+
++ if (exit_bb != NULL)
++ {
++ if (exit_bb != loop->header)
++ {
+ /* Connect this node with loop header. */
+! make_edge (loop->header, exit_bb, EDGE_FALLTHRU);
+! set_immediate_dominator (CDI_DOMINATORS, exit_bb, loop->header);
+! }
+
+! /* Redirect non-exit edges to loop->latch. */
+! FOR_EACH_EDGE (e, ei, exit_bb->succs)
+! {
+! if (!loop_exit_edge_p (loop, e))
+! redirect_edge_and_branch (e, loop->latch);
+ }
++ set_immediate_dominator (CDI_DOMINATORS, loop->latch, exit_bb);
++ }
++ else
++ {
++ /* If the loop does not have exit then reconnect header and latch. */
++ make_edge (loop->header, loop->latch, EDGE_FALLTHRU);
++ set_immediate_dominator (CDI_DOMINATORS, loop->latch, loop->header);
++ }
+
+! merge_target_bb = loop->header;
+! for (i = 1; i < orig_loop_num_nodes; i++)
+! {
+! block_stmt_iterator bsi;
+! tree_stmt_iterator last;
+
+! bb = ifc_bbs[i];
+
+! if (bb == exit_bb || bb == loop->latch)
+! continue;
+
+ /* Remove labels and make stmts member of loop->header. */
+ for (bsi = bsi_start (bb); !bsi_end_p (bsi); )
+*************** combine_blocks (struct loop *loop)
+*** 954,961 ****
+ delete_from_dominance_info (CDI_POST_DOMINATORS, bb);
+
+ /* Remove basic block. */
+- if (bb == loop->latch)
+- loop->latch = merge_target_bb;
+ remove_bb_from_loops (bb);
+ expunge_block (bb);
+ }
+--- 958,963 ----
+*************** combine_blocks (struct loop *loop)
+*** 964,978 ****
+ This reduces number of basic blocks to 2. Auto vectorizer addresses
+ loops with two nodes only. FIXME: Use cleanup_tree_cfg(). */
+ if (exit_bb
+! && loop->header != loop->latch
+! && exit_bb != loop->latch
+! && empty_block_p (loop->latch))
+ {
+! if (can_merge_blocks_p (loop->header, exit_bb))
+! {
+! remove_bb_from_loops (exit_bb);
+! merge_blocks (loop->header, exit_bb);
+! }
+ }
+ }
+
+--- 966,976 ----
+ This reduces number of basic blocks to 2. Auto vectorizer addresses
+ loops with two nodes only. FIXME: Use cleanup_tree_cfg(). */
+ if (exit_bb
+! && exit_bb != loop->header
+! && can_merge_blocks_p (loop->header, exit_bb))
+ {
+! remove_bb_from_loops (exit_bb);
+! merge_blocks (loop->header, exit_bb);
+ }
+ }
+
+Index: tree-cfg.c
+===================================================================
+*** tree-cfg.c (revision 118809)
+--- tree-cfg.c (working copy)
+*************** tree_verify_flow_info (void)
+*** 3696,3701 ****
+--- 3696,3714 ----
+ }
+ }
+
++ if (TREE_CODE (stmt) != COND_EXPR)
++ {
++ /* Verify that there are no edges with EDGE_TRUE/FALSE_FLAG set
++ after anything else but if statement. */
++ FOR_EACH_EDGE (e, ei, bb->succs)
++ if (e->flags & (EDGE_TRUE_VALUE | EDGE_FALSE_VALUE))
++ {
++ error ("true/false edge after a non-COND_EXPR in bb %d",
++ bb->index);
++ err = 1;
++ }
++ }
+
-+ /* We do not update the statements in the loop above. Consider
-+ x = w * w;
-+
-+ If we performed the update in the first loop, the statement
-+ would be rescanned after first occurrence of w is replaced,
-+ the new uses would be placed to the beginning of the list,
-+ and we would never process them. */
-+ for (i = 0; VEC_iterate (tree, stmts, i, stmt); i++)
-+ update_stmt (stmt);
-+
-+ VEC_free (tree, heap, stmts);
-+
-+ /* Also update the trees stored in loop structures. */
-+ if (current_loops)
-+ {
-+ struct loop *loop;
-+
-+ for (i = 0; i < current_loops->num; i++)
-+ {
-+ loop = current_loops->parray[i];
-+ if (loop)
-+ substitute_in_loop_info (loop, name, val);
-+ }
-+ }
+ switch (TREE_CODE (stmt))
+ {
+ case COND_EXPR:
+--- /dev/null 2006-05-02 08:46:16.000000000 +0200
++++ testsuite/gcc.dg/pr28888.c 2006-11-14 13:55:50.000000000 +0100
+@@ -0,0 +1,21 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -ftree-vectorize" } */
++
++static const unsigned char _c30[] =
++ "statistic of allocated integer registers:";
++Allocate__WriteStats (void)
++{
++ register int i0, i1, i2, i3, i4, i5;
++l0:i1 = (int) (i5 << 2);
++ if (i0)
++ i4 = i5;
++l1:i2 += i1;
++ if (i1)
++ goto l0;
++l3:i0 = i1 == 255;
++ i1++;
++ Out__LongInt ((int) i0, (int) 0);
++ i0 = i4 >= i1;
++ if (i0)
++ goto l3;
+}
-+
-+
- /* Convert range assertion expressions into the implied copies and
- copy propagate away the copies. Doing the trivial copy propagation
- here avoids the need to run the full copy propagation pass after
-@@ -3015,8 +3075,7 @@ remove_range_assertions (void)
- {
- tree rhs = TREE_OPERAND (stmt, 1);
- tree cond = fold (ASSERT_EXPR_COND (rhs));
-- use_operand_p use_p;
-- imm_use_iterator iter;
-+ tree lhs = TREE_OPERAND (stmt, 0);
-
- gcc_assert (cond != boolean_false_node);
- TREE_OPERAND (stmt, 1) = ASSERT_EXPR_VAR (rhs);
-@@ -3024,11 +3083,7 @@ remove_range_assertions (void)
-
- /* The statement is now a copy. Propagate the RHS into
- every use of the LHS. */
-- FOR_EACH_IMM_USE_SAFE (use_p, iter, TREE_OPERAND (stmt, 0))
-- {
-- SET_USE (use_p, ASSERT_EXPR_VAR (rhs));
-- update_stmt (USE_STMT (use_p));
-- }
-+ replace_uses_by_vrp (lhs, ASSERT_EXPR_VAR (rhs));
-
- /* And finally, remove the copy, it is not needed. */
- bsi_remove (&si);
++++++ pr28545.patch -> pr29753.patch ++++++
--- gcc41/pr28545.patch 2006-10-27 11:21:51.000000000 +0200
+++ /mounts/work_src_done/STABLE/gcc41/pr29753.patch 2006-11-15 09:50:46.000000000 +0100
@@ -1,94 +1,27 @@
-Index: gcc/tree-vrp.c
+2006-11-15 Paolo Bonzini