rpms/gcc/devel gcc41-pr29241.patch, NONE, 1.1 gcc41-pr29299.patch, NONE, 1.1 .cvsignore, 1.177, 1.178 gcc41.spec, 1.111, 1.112 sources, 1.179, 1.180 gcc41-pr26881.patch, 1.2, NONE gcc41-pr29091.patch, 1.1, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Wed Oct 25 14:24:10 UTC 2006


Author: jakub

Update of /cvs/dist/rpms/gcc/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv30568

Modified Files:
	.cvsignore gcc41.spec sources 
Added Files:
	gcc41-pr29241.patch gcc41-pr29299.patch 
Removed Files:
	gcc41-pr26881.patch gcc41-pr29091.patch 
Log Message:
4.1.1-31

gcc41-pr29241.patch:
 0 files changed

--- NEW FILE gcc41-pr29241.patch ---
2006-10-15  Jan Hubicka  <jh at suse.cz>

	PR middle-end/29241
	* cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
	declared always_inline even when not inlining.

	* gcc.c-torture/compile/pr29241.c: New testcase.

--- gcc/cgraphunit.c	(revision 117745)
+++ gcc/cgraphunit.c	(revision 117863)
@@ -1486,7 +1494,9 @@ cgraph_preserve_function_body_p (tree de
 {
   struct cgraph_node *node;
   if (!cgraph_global_info_ready)
-    return (DECL_INLINE (decl) && !flag_really_no_inline);
+    return (flag_really_no_inline
+	    ? lang_hooks.tree_inlining.disregard_inline_limits (decl)
+	    : DECL_INLINE (decl));
   /* Look if there is any clone around.  */
   for (node = cgraph_node (decl); node; node = node->next_clone)
     if (node->global.inlined_to)
--- gcc/testsuite/gcc.c-torture/compile/pr29241.c	(revision 0)
+++ gcc/testsuite/gcc.c-torture/compile/pr29241.c	(revision 117863)
@@ -0,0 +1,15 @@
+static inline __attribute__((always_inline)) void ip_finish_output2(){}
+void ip_fragment(void (*)(void));
+static inline __attribute__((always_inline)) void ip_finish_output()
+{
+ ip_fragment(ip_finish_output2);
+ ip_finish_output2();
+}
+void ip_mc_output()
+{
+ ip_finish_output();
+}
+void ip_output()
+{
+ ip_finish_output();
+}

gcc41-pr29299.patch:
 0 files changed

--- NEW FILE gcc41-pr29299.patch ---
2006-10-18  Jan Hubicka  <jh at suse.cz>

	PR middle-end/29299
	* cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
	are used.

2006-10-15  Jan Hubicka  <jh at suse.cz>
            Richard Guenther  <rguenther at suse.de>

	PR middle-end/29299
	* cgraphunit.c (cgraph_finalize_compilation_unit): Call
	process_function_and_variable_attributes on all variables, including
	those discovered during cgraph construction phase.

	* gcc.dg/pr29299.c: New testcase.

--- gcc/cgraphunit.c	(revision 117745)
+++ gcc/cgraphunit.c	(revision 117863)
@@ -1055,6 +1055,7 @@ cgraph_finalize_compilation_unit (void)
   /* Keep track of already processed nodes when called multiple times for
      intermodule optimization.  */
   static struct cgraph_node *first_analyzed;
+  struct cgraph_node *first_processed = first_analyzed;
   static struct cgraph_varpool_node *first_analyzed_var;
 
   if (errorcount || sorrycount)
@@ -1077,7 +1078,10 @@ cgraph_finalize_compilation_unit (void)
     }
 
   timevar_push (TV_CGRAPH);
-  process_function_and_variable_attributes (first_analyzed, first_analyzed_var);
+  process_function_and_variable_attributes (first_processed,
+					    first_analyzed_var);
+  first_processed = cgraph_nodes;
+  first_analyzed_var = cgraph_varpool_nodes;
   cgraph_varpool_analyze_pending_decls ();
   if (cgraph_dump_file)
     {
@@ -1119,11 +1123,16 @@ cgraph_finalize_compilation_unit (void)
 	if (!edge->callee->reachable)
 	  cgraph_mark_reachable_node (edge->callee);
 
+      /* We finalize local static variables during constructing callgraph
+         edges.  Process their attributes too.  */
+      process_function_and_variable_attributes (first_processed,
+						first_analyzed_var);
+      first_processed = cgraph_nodes;
+      first_analyzed_var = cgraph_varpool_nodes;
       cgraph_varpool_analyze_pending_decls ();
     }
 
   /* Collect entry points to the unit.  */
-
   if (cgraph_dump_file)
     {
       fprintf (cgraph_dump_file, "Unit entry points:");
@@ -1163,7 +1172,6 @@ cgraph_finalize_compilation_unit (void)
       dump_cgraph (cgraph_dump_file);
     }
   first_analyzed = cgraph_nodes;
-  first_analyzed_var = cgraph_varpool_nodes;
   ggc_collect ();
   timevar_pop (TV_CGRAPH);
 }
--- gcc/cfgexpand.c	(revision 117745)
+++ gcc/cfgexpand.c	(revision 117863)
@@ -764,7 +764,12 @@ expand_used_vars_for_block (tree block, 
 
   /* Expand all variables at this level.  */
   for (t = BLOCK_VARS (block); t ; t = TREE_CHAIN (t))
-    if (TREE_USED (t))
+    if (TREE_USED (t)
+	/* Force local static variables to be output when marked by
+	   used attribute.  For unit-at-a-time, cgraph code already takes
+	   care of this.  */
+	|| (!flag_unit_at_a_time && TREE_STATIC (t)
+	    && DECL_PRESERVE_P (t)))
       expand_one_var (t, toplevel);
 
   this_sv_num = stack_vars_num;
--- gcc/testsuite/gcc.dg/pr29299.c	(revision 0)
+++ gcc/testsuite/gcc.dg/pr29299.c	(revision 117863)
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-O" } */
+
+static int bof __attribute__((used));
+int foo()
+{
+	static int barbarbarbar __attribute__((used));
+};
+
+/* { dg-final { scan-assembler "barbarbarbar" } } */


Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/.cvsignore,v
retrieving revision 1.177
retrieving revision 1.178
diff -u -r1.177 -r1.178
--- .cvsignore	11 Oct 2006 11:27:35 -0000	1.177
+++ .cvsignore	25 Oct 2006 14:24:06 -0000	1.178
@@ -1 +1 @@
-gcc-4.1.1-20061011.tar.bz2
+gcc-4.1.1-20061025.tar.bz2


Index: gcc41.spec
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/gcc41.spec,v
retrieving revision 1.111
retrieving revision 1.112
diff -u -r1.111 -r1.112
--- gcc41.spec	11 Oct 2006 11:27:35 -0000	1.111
+++ gcc41.spec	25 Oct 2006 14:24:06 -0000	1.112
@@ -1,6 +1,6 @@
-%define DATE 20061011
+%define DATE 20061025
 %define gcc_version 4.1.1
-%define gcc_release 30
+%define gcc_release 31
 %define _unpackaged_files_terminate_build 0
 %define multilib_64_archs sparc64 ppc64 s390x x86_64
 %ifarch %{ix86} x86_64 ia64
@@ -122,7 +122,7 @@
 Patch14: gcc41-objc-rh185398.patch
 Patch15: gcc41-tests.patch
 Patch16: gcc41-pr25874.patch
-Patch17: gcc41-pr26881.patch
+Patch17: gcc41-pr29241.patch
 Patch18: gcc41-i386-tune-geode.patch
 Patch19: gcc41-hash-style-gnu.patch
 Patch20: gcc41-power6.patch
@@ -136,7 +136,7 @@
 Patch28: gcc41-pr29059.patch
 Patch29: gcc41-strncat-chk.patch
 Patch30: gcc41-power6x.patch
-Patch31: gcc41-pr29091.patch
+Patch31: gcc41-pr29299.patch
 
 %define _gnu %{nil}
 %ifarch sparc
@@ -436,7 +436,7 @@
 %patch14 -p0 -b .objc-rh185398~
 %patch15 -p0 -b .tests~
 %patch16 -p0 -b .pr25874~
-%patch17 -p0 -b .pr26881~
+%patch17 -p0 -b .pr29241~
 %patch18 -p0 -b .i386-tune-geode~
 %patch19 -p0 -b .hash-style-gnu~
 %patch20 -p0 -b .power6~
@@ -450,7 +450,7 @@
 %patch28 -p0 -b .pr29059~
 %patch29 -p0 -b .strncat-chk~
 %patch30 -p0 -b .power6x~
-%patch31 -p0 -b .pr29091~
+%patch31 -p0 -b .pr29299~
 
 sed -i -e 's/4\.1\.2/4.1.1/' gcc/BASE-VER gcc/version.c
 sed -i -e 's/" (Red Hat[^)]*)"/" (Red Hat %{version}-%{gcc_release})"/' gcc/version.c
@@ -1512,6 +1512,20 @@
 %doc rpm.doc/changelogs/libmudflap/ChangeLog*
 
 %changelog
+* Wed Oct 25 2006 Jakub Jelinek <jakub at redhat.com> 4.1.1-31
+- update from gcc-4_1-branch (-r117629:118025)
+  - PRs c++/20647, c++/25878, c++/26884, c++/27787, c++/28506, c++/28906,
+	c++/29020, c++/29175, c++/29318, c++/29408, c++/29435, c/27184,
+	c/29092, fortran/25091, fortran/25092, fortran/29284, fortran/29321,
+	fortran/29322, fortran/29393, fortran/29403, gcov/profile/26570,
+	inline-asm/29119, middle-end/20491, rtl-optimization/29323,
+	target/25519, target/28825, target/28960, target/29300,
+	testsuite/28829, tree-optimization/26969
+  - fix libstdc++.so backwards compatibility with GCC 3.4.x (#210452)
+- fix always_inline attribute at -O0 (Jan Hubicka, PR middle-end/29241)
+- fix function local static vars with used attribute (Jan Hubicka,
+  Richard Guenther, PR middle-end/29299)
+
 * Wed Oct 11 2006 Jakub Jelinek <jakub at redhat.com> 4.1.1-30
 - update from gcc-4_1-branch (-r117464:117629)
   - PRs c++/28302, c++/28349, c++/28450, c++/29002, libstdc++/29095,


Index: sources
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/sources,v
retrieving revision 1.179
retrieving revision 1.180
diff -u -r1.179 -r1.180
--- sources	11 Oct 2006 11:27:35 -0000	1.179
+++ sources	25 Oct 2006 14:24:06 -0000	1.180
@@ -1 +1 @@
-69307646aecf759e4c30ceaba2d05241  gcc-4.1.1-20061011.tar.bz2
+9db4dad4ecc23133d87e4e93d2c47869  gcc-4.1.1-20061025.tar.bz2


--- gcc41-pr26881.patch DELETED ---


--- gcc41-pr29091.patch DELETED ---




More information about the fedora-cvs-commits mailing list