]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Allow compilation with GCC 4.4. releases/gcc-3.2
authorJason Merrill <jason@redhat.com>
Thu, 27 May 2010 18:21:31 +0000 (14:21 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Thu, 27 May 2010 18:21:31 +0000 (14:21 -0400)
include/
* obstack.h: Update to GCC 3.3 version.
gcc/
* system.h: Don't poison malloc.
gcc/cp/
* decl.c (current_binding_level): Add *&.
* parse.y (constructor_declarator): Fix for bison pedantry.

From-SVN: r159937

gcc/ChangeLog
gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/cp/parse.y
gcc/system.h
include/ChangeLog
include/obstack.h

index a6e456c278e1c0fcdc38cb93f9cf6e356d195b91..a0cf654b5390a6e7ffe545cf84db8a728789e720 100644 (file)
@@ -1,3 +1,7 @@
+2010-05-27  Jason Merrill  <jason@redhat.com>
+
+       * system.h: Don't poison malloc.
+
 2003-05-06  Richard Henderson  <rth@redhat.com>
 
         * unwind-dw2.c (uw_update_context_1): Only set cfa as sp if 
index 81ff7e61c4f52ab2a8a7677ed17bbe5a7913e60b..0ae391eefbcd67ec692dee297b9aa64e35beb69b 100644 (file)
@@ -1,3 +1,8 @@
+2010-05-27  Jason Merrill  <jason@redhat.com>
+
+       * decl.c (current_binding_level): Add *&.
+       * parse.y (constructor_declarator): Fix for bison pedantry.
+
 2003-04-22  Release Manager
 
        * GCC 3.2.3 Released.
index 82ea2279ab2469055836f8a79311d899eecc7434..10933024dc336de87530b644fc2bc84aac248b91 100644 (file)
@@ -454,9 +454,9 @@ struct binding_level
 /* The binding level currently in effect.  */
 
 #define current_binding_level                  \
-  (cfun && cp_function_chain->bindings         \
-   ? cp_function_chain->bindings               \
-   : scope_chain->bindings)
+  (*(cfun && cp_function_chain->bindings       \
+     ? &cp_function_chain->bindings            \
+     : &scope_chain->bindings))
 
 /* The binding level of the current class, if any.  */
 
index e929ebe9494f84365e3beb5a8fe1efaf481b8950..5c69c58e90facb47245fdeb630c798cf8be31ac9 100644 (file)
@@ -799,7 +799,7 @@ fndef:
 
 constructor_declarator:
          nested_name_specifier SELFNAME '(' 
-                { $$ = begin_constructor_declarator ($1, $2); }
+                { $<ttype>$ = begin_constructor_declarator ($1, $2); }
          parmlist ')' cv_qualifiers exception_specification_opt
                { $$ = make_call_declarator ($<ttype>4, $5, $7, $8); }
        | nested_name_specifier SELFNAME LEFT_RIGHT cv_qualifiers exception_specification_opt
@@ -807,7 +807,7 @@ constructor_declarator:
                  $$ = make_call_declarator ($$, empty_parms (), $4, $5);
                }
        | global_scope nested_name_specifier SELFNAME '(' 
-                { $$ = begin_constructor_declarator ($2, $3); }
+                { $<ttype>$ = begin_constructor_declarator ($2, $3); }
         parmlist ')' cv_qualifiers exception_specification_opt
                { $$ = make_call_declarator ($<ttype>5, $6, $8, $9); }
        | global_scope nested_name_specifier SELFNAME LEFT_RIGHT cv_qualifiers exception_specification_opt
@@ -815,7 +815,7 @@ constructor_declarator:
                  $$ = make_call_declarator ($$, empty_parms (), $5, $6);
                }
        | nested_name_specifier self_template_type '(' 
-                { $$ = begin_constructor_declarator ($1, $2); }
+                { $<ttype>$ = begin_constructor_declarator ($1, $2); }
          parmlist ')' cv_qualifiers exception_specification_opt
                { $$ = make_call_declarator ($<ttype>4, $5, $7, $8); }
        | nested_name_specifier self_template_type LEFT_RIGHT cv_qualifiers exception_specification_opt
@@ -823,7 +823,7 @@ constructor_declarator:
                  $$ = make_call_declarator ($$, empty_parms (), $4, $5);
                }
        | global_scope nested_name_specifier self_template_type '(' 
-                { $$ = begin_constructor_declarator ($2, $3); }
+                { $<ttype>$ = begin_constructor_declarator ($2, $3); }
         parmlist ')' cv_qualifiers exception_specification_opt
                { $$ = make_call_declarator ($<ttype>5, $6, $8, $9); }
        | global_scope nested_name_specifier self_template_type LEFT_RIGHT cv_qualifiers exception_specification_opt
index 9747fe0e8f52a5e8c0bbb2364e75e49e352ad281..70828606e88025fe9b74b8a6dda6f2ebaf83946d 100644 (file)
@@ -589,7 +589,7 @@ typedef char _Bool;
 #undef realloc
 #undef calloc
 #undef strdup
- #pragma GCC poison malloc realloc calloc strdup
+ #pragma GCC poison realloc calloc strdup
 
 /* Old target macros that have moved to the target hooks structure.  */
  #pragma GCC poison ASM_OPEN_PAREN ASM_CLOSE_PAREN                     \
index 19bc8005a2251dc47337567ff34838d9eedcec80..21a248c5c9b2b428c1060c7e6fbd719064515eb3 100644 (file)
@@ -1,3 +1,7 @@
+2010-05-27  Jason Merrill  <jason@redhat.com>
+
+       * obstack.h: Update to GCC 3.3 version.
+
 2003-04-22  Release Manager
 
        * GCC 3.2.3 Released.
index d86d9f2c4263f772cc8659f923d5948c30a73e33..5496ff24071a6ccf87eaaf319eb8cf08387d8a49 100644 (file)
@@ -343,7 +343,7 @@ extern int obstack_exit_failure;
 
 #endif
 
-#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = achar)
+#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = (achar))
 
 #define obstack_blank_fast(h,n) ((h)->next_free += (n))
 
@@ -411,7 +411,7 @@ __extension__                                                               \
 ({ struct obstack *__o = (OBSTACK);                                    \
    if (__o->next_free + 1 > __o->chunk_limit)                          \
      _obstack_newchunk (__o, 1);                                       \
-   *(__o->next_free)++ = (datum);                                      \
+   obstack_1grow_fast (__o, datum);                                    \
    (void) 0; })
 
 /* These assume that the obstack alignment is good enough for pointers or ints,
@@ -423,19 +423,28 @@ __extension__                                                             \
 ({ struct obstack *__o = (OBSTACK);                                    \
    if (__o->next_free + sizeof (void *) > __o->chunk_limit)            \
      _obstack_newchunk (__o, sizeof (void *));                         \
-   *((void **)__o->next_free)++ = ((void *)datum);                     \
-   (void) 0; })
+   obstack_ptr_grow_fast (__o, datum); })
 
 # define obstack_int_grow(OBSTACK,datum)                               \
 __extension__                                                          \
 ({ struct obstack *__o = (OBSTACK);                                    \
    if (__o->next_free + sizeof (int) > __o->chunk_limit)               \
      _obstack_newchunk (__o, sizeof (int));                            \
-   *((int *)__o->next_free)++ = ((int)datum);                          \
+   obstack_int_grow_fast (__o, datum); })
+
+# define obstack_ptr_grow_fast(OBSTACK,aptr)                           \
+__extension__                                                          \
+({ struct obstack *__o1 = (OBSTACK);                                   \
+   *(const void **) __o1->next_free = (aptr);                          \
+   __o1->next_free += sizeof (const void *);                           \
    (void) 0; })
 
-# define obstack_ptr_grow_fast(h,aptr) (*((void **) (h)->next_free)++ = (void *)aptr)
-# define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint)
+# define obstack_int_grow_fast(OBSTACK,aint)                           \
+__extension__                                                          \
+({ struct obstack *__o1 = (OBSTACK);                                   \
+   *(int *) __o1->next_free = (aint);                                  \
+   __o1->next_free += sizeof (int);                                    \
+   (void) 0; })
 
 # define obstack_blank(OBSTACK,length)                                 \
 __extension__                                                          \
@@ -443,7 +452,7 @@ __extension__                                                               \
    int __len = (length);                                               \
    if (__o->chunk_limit - __o->next_free < __len)                      \
      _obstack_newchunk (__o, __len);                                   \
-   __o->next_free += __len;                                            \
+   obstack_blank_fast (__o, __len);                                    \
    (void) 0; })
 
 # define obstack_alloc(OBSTACK,length)                                 \
@@ -530,26 +539,29 @@ __extension__                                                             \
 # define obstack_1grow(h,datum)                                                \
 ( (((h)->next_free + 1 > (h)->chunk_limit)                             \
    ? (_obstack_newchunk ((h), 1), 0) : 0),                             \
-  (*((h)->next_free)++ = (datum)))
+  obstack_1grow_fast (h, datum))
 
 # define obstack_ptr_grow(h,datum)                                     \
 ( (((h)->next_free + sizeof (char *) > (h)->chunk_limit)               \
    ? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0),               \
-  (*((char **) (((h)->next_free+=sizeof(char *))-sizeof(char *))) = ((char *) datum)))
+  obstack_ptr_grow_fast (h, datum))
 
 # define obstack_int_grow(h,datum)                                     \
 ( (((h)->next_free + sizeof (int) > (h)->chunk_limit)                  \
    ? (_obstack_newchunk ((h), sizeof (int)), 0) : 0),                  \
-  (*((int *) (((h)->next_free+=sizeof(int))-sizeof(int))) = ((int) datum)))
+  obstack_int_grow_fast (h, datum))
+
+# define obstack_ptr_grow_fast(h,aptr)                                 \
+  (((const void **) ((h)->next_free += sizeof (void *)))[-1] = (aptr))
 
-# define obstack_ptr_grow_fast(h,aptr) (*((char **) (h)->next_free)++ = (char *) aptr)
-# define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint)
+# define obstack_int_grow_fast(h,aint)                                 \
+  (((int *) ((h)->next_free += sizeof (int)))[-1] = (aptr))
 
 # define obstack_blank(h,length)                                       \
 ( (h)->temp = (length),                                                        \
   (((h)->chunk_limit - (h)->next_free < (h)->temp)                     \
    ? (_obstack_newchunk ((h), (h)->temp), 0) : 0),                     \
-  ((h)->next_free += (h)->temp))
+  obstack_blank_fast (h, (h)->temp))
 
 # define obstack_alloc(h,length)                                       \
  (obstack_blank ((h), (length)), obstack_finish ((h)))