c-decl.c (c_push_function_context): Always create a new language function.
authorMeador Inge <meadori@codesourcery.com>
Tue, 29 May 2012 19:07:04 +0000 (19:07 +0000)
committerJoseph Myers <jsm28@gcc.gnu.org>
Tue, 29 May 2012 19:07:04 +0000 (20:07 +0100)
2012-05-29  Meador Inge  <meadori@codesourcery.com>

* c-decl.c (c_push_function_context): Always create a new language
function.
(c_pop_function_context): Clear the language function created in
c_push_function_context.

From-SVN: r187979

gcc/ChangeLog
gcc/c-decl.c

index 5d87541d295b283e7f978fea83b72ab93f62c6a3..e2ebe2f54ca05717ca3b57c2f23f8be1e64c2144 100644 (file)
@@ -1,3 +1,10 @@
+2012-05-29  Meador Inge  <meadori@codesourcery.com>
+
+       * c-decl.c (c_push_function_context): Always create a new language
+       function.
+       (c_pop_function_context): Clear the language function created in
+       c_push_function_context.
+
 2012-05-29  Matt Turner  <mattst88@gmail.com>
 
        * config/alpha/ev6.md: (define_bypass "ev6_fmul,ev6_fadd"): New.
index 29cd18c7dcd414a9d2d62d093392b98e794e7d5d..0c7e80e13c5e39000deb2af64127e0d3dae2a831 100644 (file)
@@ -8577,11 +8577,9 @@ check_for_loop_decls (location_t loc, bool turn_off_iso_c99_error)
 void
 c_push_function_context (void)
 {
-  struct language_function *p = cfun->language;
-  /* cfun->language might have been already allocated by the use of
-     -Wunused-local-typedefs.  In that case, just re-use it.  */
-  if (p == NULL)
-    cfun->language = p = ggc_alloc_cleared_language_function ();
+  struct language_function *p;
+  p = ggc_alloc_language_function ();
+  cfun->language = p;
 
   p->base.x_stmt_tree = c_stmt_tree;
   c_stmt_tree.x_cur_stmt_list
@@ -8607,11 +8605,7 @@ c_pop_function_context (void)
 
   pop_function_context ();
   p = cfun->language;
-  /* When -Wunused-local-typedefs is in effect, cfun->languages is
-     used to store data throughout the life time of the current cfun,
-     So don't deallocate it.  */
-  if (!warn_unused_local_typedefs)
-    cfun->language = NULL;
+  cfun->language = NULL;
 
   if (DECL_STRUCT_FUNCTION (current_function_decl) == 0
       && DECL_SAVED_TREE (current_function_decl) == NULL_TREE)