OSDN Git Service

* arith.c (hollerith2representation): Fix for -Wc++-compat.
authorghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 20 Jun 2008 06:03:16 +0000 (06:03 +0000)
committerghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 20 Jun 2008 06:03:16 +0000 (06:03 +0000)
* array.c (gfc_get_constructor): Likewise.
* decl.c (gfc_get_data_variable, gfc_get_data_value, gfc_get_data,
create_enum_history, gfc_match_final_decl): Likewise.
* error.c (error_char): Likewise.
* expr.c (gfc_get_expr, gfc_copy_expr): Likewise.
* gfortran.h (gfc_get_charlen, gfc_get_array_spec,
gfc_get_component, gfc_get_formal_arglist, gfc_get_actual_arglist,
gfc_get_namelist, gfc_get_omp_clauses, gfc_get_interface,
gfc_get_common_head, gfc_get_dt_list, gfc_get_array_ref,
gfc_get_ref, gfc_get_equiv, gfc_get_case, gfc_get_iterator,
gfc_get_alloc, gfc_get_wide_string): Likewise.
* interface.c (count_types_test): Likewise.
* intrinsic.c (add_char_conversions, gfc_intrinsic_init_1):
Likewise.
* io.c (gfc_match_open, gfc_match_close, match_filepos, match_io,
gfc_match_inquire, gfc_match_wait): Likewise.
* match.c (gfc_match, match_forall_iterator): Likewise.
* module.c (gfc_get_pointer_info, gfc_get_use_rename, add_fixup,
add_true_name, parse_string, write_atom, quote_string,
mio_symtree_ref, mio_gmp_real, write_common_0): Likewise.
* options.c (gfc_post_options): Likewise.
* primary.c (match_integer_constant, match_hollerith_constant,
match_boz_constant, match_real_constant,
gfc_get_structure_ctor_component, gfc_match_structure_constructor): Likewise.
* scanner.c (gfc_widechar_to_char, add_path_to_list,
add_file_change, load_line, get_file, preprocessor_line,
load_file, unescape_filename, gfc_read_orig_filename): Likewise.
* simplify.c (gfc_simplify_ibits, gfc_simplify_ishft,
gfc_simplify_ishftc): Likewise.
* symbol.c (gfc_get_st_label, gfc_get_namespace, gfc_new_symtree,
gfc_get_uop, gfc_new_symbol, save_symbol_data, gfc_get_gsymbol):
Likewise.
* target-memory.c (gfc_target_interpret_expr): Likewise.
* trans-const.c (gfc_build_wide_string_const): Likewise.
* trans-expr.c (gfc_add_interface_mapping): Likewise.
* trans-intrinsic.c (gfc_conv_intrinsic_conversion,
gfc_conv_intrinsic_int, gfc_conv_intrinsic_lib_function,
gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_ctime,
gfc_conv_intrinsic_fdate, gfc_conv_intrinsic_ttynam,
gfc_conv_intrinsic_minmax, gfc_conv_intrinsic_minmax_char,
gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_index_scan_verify,
gfc_conv_intrinsic_merge, gfc_conv_intrinsic_trim): Likewise.
* trans.c (gfc_get_backend_locus): Likewise.
* trans.h (gfc_get_ss): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@136982 138bc75d-0d04-0410-961f-82ee72b054a4

24 files changed:
gcc/fortran/ChangeLog
gcc/fortran/arith.c
gcc/fortran/array.c
gcc/fortran/decl.c
gcc/fortran/error.c
gcc/fortran/expr.c
gcc/fortran/gfortran.h
gcc/fortran/interface.c
gcc/fortran/intrinsic.c
gcc/fortran/io.c
gcc/fortran/match.c
gcc/fortran/module.c
gcc/fortran/options.c
gcc/fortran/primary.c
gcc/fortran/scanner.c
gcc/fortran/simplify.c
gcc/fortran/st.c
gcc/fortran/symbol.c
gcc/fortran/target-memory.c
gcc/fortran/trans-const.c
gcc/fortran/trans-expr.c
gcc/fortran/trans-intrinsic.c
gcc/fortran/trans.c
gcc/fortran/trans.h

index 6362039..bc06965 100644 (file)
@@ -1,3 +1,51 @@
+2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * arith.c (hollerith2representation): Fix for -Wc++-compat.
+       * array.c (gfc_get_constructor): Likewise.
+       * decl.c (gfc_get_data_variable, gfc_get_data_value, gfc_get_data,
+       create_enum_history, gfc_match_final_decl): Likewise.
+       * error.c (error_char): Likewise.
+       * expr.c (gfc_get_expr, gfc_copy_expr): Likewise.
+       * gfortran.h (gfc_get_charlen, gfc_get_array_spec,
+       gfc_get_component, gfc_get_formal_arglist, gfc_get_actual_arglist,
+       gfc_get_namelist, gfc_get_omp_clauses, gfc_get_interface,
+       gfc_get_common_head, gfc_get_dt_list, gfc_get_array_ref,
+       gfc_get_ref, gfc_get_equiv, gfc_get_case, gfc_get_iterator,
+       gfc_get_alloc, gfc_get_wide_string): Likewise.
+       * interface.c (count_types_test): Likewise.
+       * intrinsic.c (add_char_conversions, gfc_intrinsic_init_1):
+       Likewise.
+       * io.c (gfc_match_open, gfc_match_close, match_filepos, match_io,
+       gfc_match_inquire, gfc_match_wait): Likewise.
+       * match.c (gfc_match, match_forall_iterator): Likewise.
+       * module.c (gfc_get_pointer_info, gfc_get_use_rename, add_fixup,
+       add_true_name, parse_string, write_atom, quote_string,
+       mio_symtree_ref, mio_gmp_real, write_common_0): Likewise.
+       * options.c (gfc_post_options): Likewise.
+       * primary.c (match_integer_constant, match_hollerith_constant,
+       match_boz_constant, match_real_constant,
+       gfc_get_structure_ctor_component, gfc_match_structure_constructor): Likewise.
+       * scanner.c (gfc_widechar_to_char, add_path_to_list,
+       add_file_change, load_line, get_file, preprocessor_line,
+       load_file, unescape_filename, gfc_read_orig_filename): Likewise.
+       * simplify.c (gfc_simplify_ibits, gfc_simplify_ishft,
+       gfc_simplify_ishftc): Likewise.
+       * symbol.c (gfc_get_st_label, gfc_get_namespace, gfc_new_symtree,
+       gfc_get_uop, gfc_new_symbol, save_symbol_data, gfc_get_gsymbol):
+       Likewise.
+       * target-memory.c (gfc_target_interpret_expr): Likewise.
+       * trans-const.c (gfc_build_wide_string_const): Likewise.
+       * trans-expr.c (gfc_add_interface_mapping): Likewise.
+       * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
+       gfc_conv_intrinsic_int, gfc_conv_intrinsic_lib_function,
+       gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_ctime,
+       gfc_conv_intrinsic_fdate, gfc_conv_intrinsic_ttynam,
+       gfc_conv_intrinsic_minmax, gfc_conv_intrinsic_minmax_char,
+       gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_index_scan_verify,
+       gfc_conv_intrinsic_merge, gfc_conv_intrinsic_trim): Likewise.
+       * trans.c (gfc_get_backend_locus): Likewise.
+       * trans.h (gfc_get_ss): Likewise.
+
 2008-06-18  Daniel Kraft  <d@domob.eu>
 
        PR fortran/36517, fortran/36492
index 8e6de30..bd32145 100644 (file)
@@ -2413,7 +2413,7 @@ hollerith2representation (gfc_expr *result, gfc_expr *src)
                   &src->where, gfc_typename(&result->ts));
     }
 
-  result->representation.string = gfc_getmem (result_len + 1);
+  result->representation.string = XCNEWVEC (char, result_len + 1);
   memcpy (result->representation.string, src->representation.string,
          MIN (result_len, src_len));
 
index a34695e..c6bb5e8 100644 (file)
@@ -678,7 +678,7 @@ gfc_get_constructor (void)
 {
   gfc_constructor *c;
 
-  c = gfc_getmem (sizeof(gfc_constructor));
+  c = XCNEW (gfc_constructor);
   c->expr = NULL;
   c->iterator = NULL;
   c->next = NULL;
index 57db93f..869ece6 100644 (file)
@@ -28,9 +28,9 @@ along with GCC; see the file COPYING3.  If not see
 
 /* Macros to access allocate memory for gfc_data_variable,
    gfc_data_value and gfc_data.  */
-#define gfc_get_data_variable() gfc_getmem (sizeof (gfc_data_variable))
-#define gfc_get_data_value() gfc_getmem (sizeof (gfc_data_value))
-#define gfc_get_data() gfc_getmem( sizeof (gfc_data))
+#define gfc_get_data_variable() XCNEW (gfc_data_variable)
+#define gfc_get_data_value() XCNEW (gfc_data_value)
+#define gfc_get_data() XCNEW (gfc_data)
 
 
 /* This flag is set if an old-style length selector is matched
@@ -1140,7 +1140,7 @@ create_enum_history (gfc_symbol *sym, gfc_expr *init)
   enumerator_history *new_enum_history;
   gcc_assert (sym != NULL && init != NULL);
 
-  new_enum_history = gfc_getmem (sizeof (enumerator_history));
+  new_enum_history = XCNEW (enumerator_history);
 
   new_enum_history->sym = sym;
   new_enum_history->initializer = init;
@@ -6625,7 +6625,7 @@ gfc_match_final_decl (void)
       /* Add this symbol to the list of finalizers.  */
       gcc_assert (gfc_current_block ()->f2k_derived);
       ++sym->refs;
-      f = gfc_getmem (sizeof (gfc_finalizer));     
+      f = XCNEW (gfc_finalizer);
       f->procedure = sym;
       f->where = gfc_current_locus;
       f->next = gfc_current_block ()->f2k_derived->finalizers;
index c34899f..4ef22d0 100644 (file)
@@ -70,8 +70,8 @@ error_char (char c)
        {
          cur_error_buffer->allocated = cur_error_buffer->allocated
                                      ? cur_error_buffer->allocated * 2 : 1000;
-         cur_error_buffer->message = xrealloc (cur_error_buffer->message,
-                                               cur_error_buffer->allocated);
+         cur_error_buffer->message = XRESIZEVEC (char, cur_error_buffer->message,
+                                                 cur_error_buffer->allocated);
        }
       cur_error_buffer->message[cur_error_buffer->index++] = c;
     }
@@ -87,7 +87,7 @@ error_char (char c)
          if (index + 1 >= allocated)
            {
              allocated = allocated ? allocated * 2 : 1000;
-             line = xrealloc (line, allocated);
+             line = XRESIZEVEC (char, line, allocated);
            }
          line[index++] = c;
          if (c == '\n')
index a872743..ace09de 100644 (file)
@@ -33,7 +33,7 @@ gfc_get_expr (void)
 {
   gfc_expr *e;
 
-  e = gfc_getmem (sizeof (gfc_expr));
+  e = XCNEW (gfc_expr);
   gfc_clear_ts (&e->ts);
   e->shape = NULL;
   e->ref = NULL;
@@ -414,7 +414,7 @@ gfc_copy_expr (gfc_expr *p)
       /* Copy target representation, if it exists.  */
       if (p->representation.string)
        {
-         c = gfc_getmem (p->representation.length + 1);
+         c = XCNEWVEC (char, p->representation.length + 1);
          q->representation.string = c;
          memcpy (c, p->representation.string, (p->representation.length + 1));
        }
index ee60f9a..5d025db 100644 (file)
@@ -792,7 +792,7 @@ typedef struct gfc_charlen
 }
 gfc_charlen;
 
-#define gfc_get_charlen() gfc_getmem(sizeof(gfc_charlen))
+#define gfc_get_charlen() XCNEW (gfc_charlen)
 
 /* Type specification structure.  FIXME: derived and cl could be union???  */
 typedef struct
@@ -824,7 +824,7 @@ typedef struct
 }
 gfc_array_spec;
 
-#define gfc_get_array_spec() gfc_getmem(sizeof(gfc_array_spec))
+#define gfc_get_array_spec() XCNEW (gfc_array_spec)
 
 
 /* Components of derived types.  */
@@ -844,7 +844,7 @@ typedef struct gfc_component
 }
 gfc_component;
 
-#define gfc_get_component() gfc_getmem(sizeof(gfc_component))
+#define gfc_get_component() XCNEW (gfc_component)
 
 /* Formal argument lists are lists of symbols.  */
 typedef struct gfc_formal_arglist
@@ -856,7 +856,7 @@ typedef struct gfc_formal_arglist
 }
 gfc_formal_arglist;
 
-#define gfc_get_formal_arglist() gfc_getmem(sizeof(gfc_formal_arglist))
+#define gfc_get_formal_arglist() XCNEW (gfc_formal_arglist)
 
 
 /* The gfc_actual_arglist structure is for actual arguments.  */
@@ -876,7 +876,7 @@ typedef struct gfc_actual_arglist
 }
 gfc_actual_arglist;
 
-#define gfc_get_actual_arglist() gfc_getmem(sizeof(gfc_actual_arglist))
+#define gfc_get_actual_arglist() XCNEW (gfc_actual_arglist)
 
 
 /* Because a symbol can belong to multiple namelists, they must be
@@ -888,7 +888,7 @@ typedef struct gfc_namelist
 }
 gfc_namelist;
 
-#define gfc_get_namelist() gfc_getmem(sizeof(gfc_namelist))
+#define gfc_get_namelist() XCNEW (gfc_namelist)
 
 enum
 {
@@ -945,7 +945,7 @@ typedef struct gfc_omp_clauses
 }
 gfc_omp_clauses;
 
-#define gfc_get_omp_clauses() gfc_getmem(sizeof(gfc_omp_clauses))
+#define gfc_get_omp_clauses() XCNEW (gfc_omp_clauses)
 
 
 /* The gfc_st_label structure is a doubly linked list attached to a
@@ -978,7 +978,7 @@ typedef struct gfc_interface
 }
 gfc_interface;
 
-#define gfc_get_interface() gfc_getmem(sizeof(gfc_interface))
+#define gfc_get_interface() XCNEW (gfc_interface)
 
 
 /* User operator nodes.  These are like stripped down symbols.  */
@@ -1092,7 +1092,7 @@ typedef struct gfc_common_head
 }
 gfc_common_head;
 
-#define gfc_get_common_head() gfc_getmem(sizeof(gfc_common_head))
+#define gfc_get_common_head() XCNEW (gfc_common_head)
 
 
 /* A list of all the alternate entry points for a procedure.  */
@@ -1142,7 +1142,7 @@ typedef struct gfc_dt_list
 }
 gfc_dt_list;
 
-#define gfc_get_dt_list() gfc_getmem(sizeof(gfc_dt_list))
+#define gfc_get_dt_list() XCNEW (gfc_dt_list)
 
   /* A list of all derived types.  */
   extern gfc_dt_list *gfc_derived_types;
@@ -1277,7 +1277,7 @@ typedef struct gfc_array_ref
 }
 gfc_array_ref;
 
-#define gfc_get_array_ref() gfc_getmem(sizeof(gfc_array_ref))
+#define gfc_get_array_ref() XCNEW (gfc_array_ref)
 
 
 /* Component reference nodes.  A variable is stored as an expression
@@ -1319,7 +1319,7 @@ typedef struct gfc_ref
 }
 gfc_ref;
 
-#define gfc_get_ref() gfc_getmem(sizeof(gfc_ref))
+#define gfc_get_ref() XCNEW (gfc_ref)
 
 
 /* Structures representing intrinsic symbols and their arguments lists.  */
@@ -1599,7 +1599,7 @@ typedef struct gfc_equiv
 }
 gfc_equiv;
 
-#define gfc_get_equiv() gfc_getmem(sizeof(gfc_equiv))
+#define gfc_get_equiv() XCNEW (gfc_equiv)
 
 /* Holds a single equivalence member after processing.  */
 typedef struct gfc_equiv_info
@@ -1651,7 +1651,7 @@ typedef struct gfc_case
 }
 gfc_case;
 
-#define gfc_get_case() gfc_getmem(sizeof(gfc_case))
+#define gfc_get_case() XCNEW (gfc_case)
 
 
 typedef struct
@@ -1660,7 +1660,7 @@ typedef struct
 }
 gfc_iterator;
 
-#define gfc_get_iterator() gfc_getmem(sizeof(gfc_iterator))
+#define gfc_get_iterator() XCNEW (gfc_iterator)
 
 
 /* Allocation structure for ALLOCATE, DEALLOCATE and NULLIFY statements.  */
@@ -1672,7 +1672,7 @@ typedef struct gfc_alloc
 }
 gfc_alloc;
 
-#define gfc_get_alloc() gfc_getmem(sizeof(gfc_alloc))
+#define gfc_get_alloc() XCNEW (gfc_alloc)
 
 
 typedef struct
@@ -1997,7 +1997,7 @@ gfc_char_t *gfc_wide_memset (gfc_char_t *, gfc_char_t, size_t);
 char *gfc_widechar_to_char (const gfc_char_t *, int);
 gfc_char_t *gfc_char_to_widechar (const char *);
 
-#define gfc_get_wide_string(n) gfc_getmem((n) * sizeof(gfc_char_t))
+#define gfc_get_wide_string(n) XCNEWVEC (gfc_char_t, n)
 
 void gfc_skip_comments (void);
 gfc_char_t gfc_next_char_literal (int);
index f2ad4f6..724d662 100644 (file)
@@ -795,7 +795,7 @@ count_types_test (gfc_formal_arglist *f1, gfc_formal_arglist *f2)
 
   /* Build an array of integers that gives the same integer to
      arguments of the same type/rank.  */
-  arg = gfc_getmem (n1 * sizeof (arginfo));
+  arg = XCNEWVEC (arginfo, n1);
 
   f = f1;
   for (i = 0; i < n1; i++, f = f->next)
index ebec576..df41275 100644 (file)
@@ -2853,7 +2853,7 @@ add_char_conversions (void)
        ncharconv++;
 
   /* Allocate memory.  */
-  char_conversions = gfc_getmem (sizeof (gfc_intrinsic_sym) * ncharconv);
+  char_conversions = XCNEWVEC (gfc_intrinsic_sym, ncharconv);
 
   /* Add the conversions themselves.  */
   n = 0;
@@ -2905,13 +2905,14 @@ gfc_intrinsic_init_1 (void)
   sizing = SZ_CONVS;
   add_conversions ();
 
-  functions = gfc_getmem (sizeof (gfc_intrinsic_sym) * (nfunc + nsub)
-                         + sizeof (gfc_intrinsic_arg) * nargs);
+  functions = XCNEWVAR (struct gfc_intrinsic_sym,
+                       sizeof (gfc_intrinsic_sym) * (nfunc + nsub)
+                       + sizeof (gfc_intrinsic_arg) * nargs);
 
   next_sym = functions;
   subroutines = functions + nfunc;
 
-  conversion = gfc_getmem (sizeof (gfc_intrinsic_sym) * nconv);
+  conversion = XCNEWVEC (gfc_intrinsic_sym, nconv);
 
   next_arg = ((gfc_intrinsic_arg *) (subroutines + nsub)) - 1;
 
index 9b417c2..3494e8e 100644 (file)
@@ -1537,7 +1537,7 @@ gfc_match_open (void)
   if (m == MATCH_NO)
     return m;
 
-  open = gfc_getmem (sizeof (gfc_open));
+  open = XCNEW (gfc_open);
 
   m = match_open_element (open);
 
@@ -1927,7 +1927,7 @@ gfc_match_close (void)
   if (m == MATCH_NO)
     return m;
 
-  close = gfc_getmem (sizeof (gfc_close));
+  close = XCNEW (gfc_close);
 
   m = match_close_element (close);
 
@@ -2053,7 +2053,7 @@ match_filepos (gfc_statement st, gfc_exec_op op)
   gfc_filepos *fp;
   match m;
 
-  fp = gfc_getmem (sizeof (gfc_filepos));
+  fp = XCNEW (gfc_filepos);
 
   if (gfc_match_char ('(') == MATCH_NO)
     {
@@ -3218,7 +3218,7 @@ match_io (io_kind k)
 
   where = gfc_current_locus;
   comma_flag = 0;
-  current_dt = dt = gfc_getmem (sizeof (gfc_dt));
+  current_dt = dt = XCNEW (gfc_dt);
   m = gfc_match_char ('(');
   if (m == MATCH_NO)
     {
@@ -3569,7 +3569,7 @@ gfc_match_inquire (void)
   if (m == MATCH_NO)
     return m;
 
-  inquire = gfc_getmem (sizeof (gfc_inquire));
+  inquire = XCNEW (gfc_inquire);
 
   loc = gfc_current_locus;
 
@@ -3790,7 +3790,7 @@ gfc_match_wait (void)
   if (m == MATCH_NO)
     return m;
 
-  wait = gfc_getmem (sizeof (gfc_wait));
+  wait = XCNEW (gfc_wait);
 
   loc = gfc_current_locus;
 
index d3f665f..6f5765f 100644 (file)
@@ -1222,7 +1222,7 @@ not_yes:
            case 'e':
            case 'v':
              vp = va_arg (argp, void **);
-             gfc_free_expr (*vp);
+             gfc_free_expr ((struct gfc_expr *)*vp);
              *vp = NULL;
              break;
            }
@@ -3770,7 +3770,7 @@ match_forall_iterator (gfc_forall_iterator **result)
   match m;
 
   where = gfc_current_locus;
-  iter = gfc_getmem (sizeof (gfc_forall_iterator));
+  iter = XCNEW (gfc_forall_iterator);
 
   m = gfc_match_expr (&iter->var);
   if (m != MATCH_YES)
index f3c5316..67b09c7 100644 (file)
@@ -159,7 +159,7 @@ typedef struct pointer_info
 }
 pointer_info;
 
-#define gfc_get_pointer_info() gfc_getmem(sizeof(pointer_info))
+#define gfc_get_pointer_info() XCNEW (pointer_info)
 
 
 /* Lists of rename info for the USE statement.  */
@@ -174,7 +174,7 @@ typedef struct gfc_use_rename
 }
 gfc_use_rename;
 
-#define gfc_get_use_rename() gfc_getmem(sizeof(gfc_use_rename))
+#define gfc_get_use_rename() XCNEW (gfc_use_rename);
 
 /* Local variables */
 
@@ -460,17 +460,17 @@ add_fixup (int integer, void *gp)
 
   if (p->integer == 0 || p->u.pointer != NULL)
     {
-      cp = gp;
-      *cp = p->u.pointer;
+      cp = (char **) gp;
+      *cp = (char *) p->u.pointer;
     }
   else
     {
-      f = gfc_getmem (sizeof (fixup_t));
+      f = XCNEW (fixup_t);
 
       f->next = p->fixup;
       p->fixup = f;
 
-      f->pointer = gp;
+      f->pointer = (void **) gp;
     }
 
   return p;
@@ -839,7 +839,7 @@ add_true_name (gfc_symbol *sym)
 {
   true_name *t;
 
-  t = gfc_getmem (sizeof (true_name));
+  t = XCNEW (true_name);
   t->sym = sym;
 
   gfc_insert_bbt (&true_name_root, t, compare_true_names);
@@ -1028,7 +1028,7 @@ parse_string (void)
 
   set_module_locus (&start);
 
-  atom_string = p = gfc_getmem (len + 1);
+  atom_string = p = XCNEWVEC (char, len + 1);
 
   for (; len > 0; len--)
     {
@@ -1324,7 +1324,7 @@ write_atom (atom_type atom, const void *v)
     {
     case ATOM_STRING:
     case ATOM_NAME:
-      p = v;
+      p = (const char *) v;
       break;
 
     case ATOM_LPAREN:
@@ -1496,7 +1496,7 @@ quote_string (const gfc_char_t *s, const size_t slength)
        len++;
     }
 
-  q = res = gfc_getmem (len + 1);
+  q = res = XCNEWVEC (char, len + 1);
   for (p = s, i = 0; i < slength; p++, i++)
     {
       if (*p == '\\')
@@ -2455,7 +2455,7 @@ mio_symtree_ref (gfc_symtree **stp)
        }
       else
        {
-         f = gfc_getmem (sizeof (fixup_t));
+         f = XCNEW (fixup_t);
 
          f->next = p->u.rsym.stfixup;
          p->u.rsym.stfixup = f;
@@ -2674,7 +2674,7 @@ mio_gmp_real (mpfr_t *real)
          return;
        }
 
-      atom_string = gfc_getmem (strlen (p) + 20);
+      atom_string = XCNEWVEC (char, strlen (p) + 20);
 
       sprintf (atom_string, "0.%s@%ld", p, exponent);
 
@@ -4126,7 +4126,7 @@ write_common_0 (gfc_symtree *st)
       mio_rparen ();
 
       /* Record that we have written this common.  */
-      w = gfc_getmem (sizeof (struct written_common));
+      w = XCNEW (struct written_common);
       w->name = p->name;
       w->label = label;
       gfc_insert_bbt (&written_commons, w, compare_written_commons);
index e653ac9..8480364 100644 (file)
@@ -254,7 +254,7 @@ gfc_post_options (const char **pfilename)
 
   if (i != 0)
     {
-      source_path = alloca (i + 1);
+      source_path = (char *) alloca (i + 1);
       memcpy (source_path, canon_source_file, i);
       source_path[i] = 0;
       gfc_add_include_path (source_path, true);
index a9b47d8..d7236e1 100644 (file)
@@ -196,7 +196,7 @@ match_integer_constant (gfc_expr **result, int signflag)
   if (length == -1)
     return MATCH_NO;
 
-  buffer = alloca (length + 1);
+  buffer = (char *) alloca (length + 1);
   memset (buffer, '\0', length + 1);
 
   gfc_gobble_whitespace ();
@@ -276,7 +276,7 @@ match_hollerith_constant (gfc_expr **result)
          e = gfc_constant_result (BT_HOLLERITH, gfc_default_character_kind,
                                   &gfc_current_locus);
 
-         e->representation.string = gfc_getmem (num + 1);
+         e->representation.string = XCNEWVEC (char, num + 1);
 
          for (i = 0; i < num; i++)
            {
@@ -411,7 +411,7 @@ match_boz_constant (gfc_expr **result)
 
   gfc_current_locus = old_loc;
 
-  buffer = alloca (length + 1);
+  buffer = (char *) alloca (length + 1);
   memset (buffer, '\0', length + 1);
 
   match_digits (0, radix, buffer);
@@ -562,7 +562,7 @@ done:
   gfc_current_locus = old_loc;
   gfc_gobble_whitespace ();
 
-  buffer = alloca (count + 1);
+  buffer = (char *) alloca (count + 1);
   memset (buffer, '\0', count + 1);
 
   p = buffer;
@@ -1975,8 +1975,7 @@ typedef struct gfc_structure_ctor_component
 }
 gfc_structure_ctor_component;
 
-#define gfc_get_structure_ctor_component() \
-  gfc_getmem(sizeof(gfc_structure_ctor_component))
+#define gfc_get_structure_ctor_component() XCNEW (gfc_structure_ctor_component)
 
 static void
 gfc_free_structure_ctor_component (gfc_structure_ctor_component *comp)
@@ -2023,7 +2022,7 @@ gfc_match_structure_constructor (gfc_symbol *sym, gfc_expr **result)
              comp_tail->next = gfc_get_structure_ctor_component ();
              comp_tail = comp_tail->next;
            }
-         comp_tail->name = gfc_getmem(GFC_MAX_SYMBOL_LEN + 1);
+         comp_tail->name = XCNEWVEC (char, GFC_MAX_SYMBOL_LEN + 1);
          comp_tail->val = NULL;
          comp_tail->where = gfc_current_locus;
 
index 1b0eeca..44e6d86 100644 (file)
@@ -196,7 +196,7 @@ gfc_widechar_to_char (const gfc_char_t *s, int length)
   /* Passing a negative length is used to indicate that length should be
      calculated using gfc_wide_strlen().  */
   len = (length >= 0 ? (size_t) length : gfc_wide_strlen (s));
-  res = gfc_getmem (len + 1);
+  res = XNEWVEC (char, len + 1);
 
   for (i = 0; i < len; i++)
     {
@@ -319,19 +319,19 @@ add_path_to_list (gfc_directorylist **list, const char *path,
 
   dir = *list;
   if (!dir)
-    dir = *list = gfc_getmem (sizeof (gfc_directorylist));
+    dir = *list = XCNEW (gfc_directorylist);
   else
     {
       while (dir->next)
        dir = dir->next;
 
-      dir->next = gfc_getmem (sizeof (gfc_directorylist));
+      dir->next = XCNEW (gfc_directorylist);
       dir = dir->next;
     }
 
   dir->next = NULL;
   dir->use_for_modules = use_for_modules;
-  dir->path = gfc_getmem (strlen (p) + 2);
+  dir->path = XCNEWVEC (char, strlen (p) + 2);
   strcpy (dir->path, p);
   strcat (dir->path, "/");     /* make '/' last character */
 }
@@ -495,9 +495,8 @@ add_file_change (const char *filename, int line)
        file_changes_allocated *= 2;
       else
        file_changes_allocated = 16;
-      file_changes
-       = xrealloc (file_changes,
-                   file_changes_allocated * sizeof (*file_changes));
+      file_changes = XRESIZEVEC (struct gfc_file_change, file_changes,
+                                file_changes_allocated);
     }
   file_changes[file_changes_count].filename = filename;
   file_changes[file_changes_count].lb = NULL;
@@ -1451,7 +1450,7 @@ load_line (FILE *input, gfc_char_t **pbuf, int *pbuflen, const int *first_char)
              /* Reallocate line buffer to double size to hold the
                overlong line.  */
              buflen = buflen * 2;
-             *pbuf = xrealloc (*pbuf, (buflen + 1) * sizeof (gfc_char_t));
+             *pbuf = XRESIZEVEC (gfc_char_t, *pbuf, (buflen + 1));
              buffer = (*pbuf) + i;
            }
        }
@@ -1501,10 +1500,9 @@ get_file (const char *name, enum lc_reason reason ATTRIBUTE_UNUSED)
 {
   gfc_file *f;
 
-  f = gfc_getmem (sizeof (gfc_file));
+  f = XCNEW (gfc_file);
 
-  f->filename = gfc_getmem (strlen (name) + 1);
-  strcpy (f->filename, name);
+  f->filename = xstrdup (name);
 
   f->next = file_head;
   file_head = f;
@@ -1655,8 +1653,7 @@ preprocessor_line (gfc_char_t *c)
   if (strcmp (current_file->filename, filename) != 0)
     {
       gfc_free (current_file->filename);
-      current_file->filename = gfc_getmem (strlen (filename) + 1);
-      strcpy (current_file->filename, filename);
+      current_file->filename = xstrdup (filename);
     }
 
   /* Set new line number.  */
@@ -1881,8 +1878,8 @@ load_file (const char *filename, bool initial)
 
       /* Add line.  */
 
-      b = gfc_getmem (gfc_linebuf_header_size
-                     + (len + 1) * sizeof (gfc_char_t));
+      b = (gfc_linebuf *) gfc_getmem (gfc_linebuf_header_size
+                                     + (len + 1) * sizeof (gfc_char_t));
 
       b->location
        = linemap_line_start (line_table, current_file->line++, 120);
@@ -1973,7 +1970,7 @@ unescape_filename (const char *ptr)
 
   /* Undo effects of cpp_quote_string.  */
   s = ptr;
-  d = gfc_getmem (p + 1 - ptr - unescape);
+  d = XCNEWVEC (char, p + 1 - ptr - unescape);
   ret = d;
 
   while (s != p)
@@ -2046,7 +2043,7 @@ gfc_read_orig_filename (const char *filename, const char **canon_source_file)
 
   if (! IS_ABSOLUTE_PATH (filename))
     {
-      char *p = gfc_getmem (len + strlen (filename));
+      char *p = XCNEWVEC (char, len + strlen (filename));
 
       memcpy (p, dirname, len - 2);
       p[len - 2] = '/';
index 058a9f2..c889dae 100644 (file)
@@ -1595,7 +1595,7 @@ gfc_simplify_ibits (gfc_expr *x, gfc_expr *y, gfc_expr *z)
   convert_mpz_to_unsigned (result->value.integer,
                           gfc_integer_kinds[k].bit_size);
 
-  bits = gfc_getmem (bitsize * sizeof (int));
+  bits = XCNEWVEC (int, bitsize);
 
   for (i = 0; i < bitsize; i++)
     bits[i] = 0;
@@ -2030,7 +2030,7 @@ gfc_simplify_ishft (gfc_expr *e, gfc_expr *s)
       return range_check (result, "ISHFT");
     }
   
-  bits = gfc_getmem (isize * sizeof (int));
+  bits = XCNEWVEC (int, isize);
 
   for (i = 0; i < isize; i++)
     bits[i] = mpz_tstbit (e->value.integer, i);
@@ -2134,7 +2134,7 @@ gfc_simplify_ishftc (gfc_expr *e, gfc_expr *s, gfc_expr *sz)
 
   convert_mpz_to_unsigned (result->value.integer, isize);
 
-  bits = gfc_getmem (ssize * sizeof (int));
+  bits = XCNEWVEC (int, ssize);
 
   for (i = 0; i < ssize; i++)
     bits[i] = mpz_tstbit (e->value.integer, i);
index abe7b94..ba5656b 100644 (file)
@@ -48,7 +48,7 @@ gfc_get_code (void)
 {
   gfc_code *c;
 
-  c = gfc_getmem (sizeof (gfc_code));
+  c = XCNEW (gfc_code);
   c->loc = gfc_current_locus;
   return c;
 }
index e4e4324..cd181d4 100644 (file)
@@ -1950,7 +1950,7 @@ gfc_get_st_label (int labelno)
        lp = lp->right;
     }
 
-  lp = gfc_getmem (sizeof (gfc_st_label));
+  lp = XCNEW (gfc_st_label);
 
   lp->value = labelno;
   lp->defined = ST_LABEL_UNKNOWN;
@@ -2116,7 +2116,7 @@ gfc_get_namespace (gfc_namespace *parent, int parent_types)
   gfc_intrinsic_op in;
   int i;
 
-  ns = gfc_getmem (sizeof (gfc_namespace));
+  ns = XCNEW (gfc_namespace);
   ns->sym_root = NULL;
   ns->uop_root = NULL;
   ns->finalizers = NULL;
@@ -2184,7 +2184,7 @@ gfc_new_symtree (gfc_symtree **root, const char *name)
 {
   gfc_symtree *st;
 
-  st = gfc_getmem (sizeof (gfc_symtree));
+  st = XCNEW (gfc_symtree);
   st->name = gfc_get_string (name);
 
   gfc_insert_bbt (root, st, compare_symtree);
@@ -2259,7 +2259,7 @@ gfc_get_uop (const char *name)
 
   st = gfc_new_symtree (&gfc_current_ns->uop_root, name);
 
-  uop = st->n.uop = gfc_getmem (sizeof (gfc_user_op));
+  uop = st->n.uop = XCNEW (gfc_user_op);
   uop->name = gfc_get_string (name);
   uop->access = ACCESS_UNKNOWN;
   uop->ns = gfc_current_ns;
@@ -2321,7 +2321,7 @@ gfc_new_symbol (const char *name, gfc_namespace *ns)
 {
   gfc_symbol *p;
 
-  p = gfc_getmem (sizeof (gfc_symbol));
+  p = XCNEW (gfc_symbol);
 
   gfc_clear_ts (&p->ts);
   gfc_clear_attr (&p->attr);
@@ -2434,7 +2434,7 @@ save_symbol_data (gfc_symbol *sym)
   if (sym->new || sym->old_symbol != NULL)
     return;
 
-  sym->old_symbol = gfc_getmem (sizeof (gfc_symbol));
+  sym->old_symbol = XCNEW (gfc_symbol);
   *(sym->old_symbol) = *sym;
 
   sym->tlink = changed_syms;
@@ -3197,7 +3197,7 @@ gfc_get_gsymbol (const char *name)
   if (s != NULL)
     return s;
 
-  s = gfc_getmem (sizeof (gfc_gsymbol));
+  s = XCNEW (gfc_gsymbol);
   s->type = GSYM_UNKNOWN;
   s->name = gfc_get_string (name);
 
index e1f9b7c..40e595b 100644 (file)
@@ -527,7 +527,7 @@ gfc_target_interpret_expr (unsigned char *buffer, size_t buffer_size,
   else
     {
       result->representation.string =
-        gfc_getmem (result->representation.length + 1);
+        (char *) gfc_getmem (result->representation.length + 1);
       memcpy (result->representation.string, buffer,
              result->representation.length);
       result->representation.string[result->representation.length] = '\0';
index e4da3f0..fd3d58f 100644 (file)
@@ -99,7 +99,7 @@ gfc_build_wide_string_const (int kind, int length, const gfc_char_t *string)
   i = gfc_validate_kind (BT_CHARACTER, kind, false);
   size = length * gfc_character_kinds[i].bit_size / 8;
 
-  s = gfc_getmem (size);
+  s = XCNEWVAR (char, size);
   gfc_encode_character (kind, length, string, (unsigned char *) s, size);
 
   str = build_string (size, s);
index cfd33e4..59a0a2d 100644 (file)
@@ -1593,7 +1593,7 @@ gfc_add_interface_mapping (gfc_interface_mapping * mapping,
   gcc_assert (new_symtree == root);
 
   /* Create a dummy->actual mapping.  */
-  sm = gfc_getmem (sizeof (*sm));
+  sm = XCNEW (gfc_interface_sym_mapping);
   sm->next = mapping->syms;
   sm->old = sym;
   sm->new = new_symtree;
index c032675..3178024 100644 (file)
@@ -241,7 +241,7 @@ gfc_conv_intrinsic_conversion (gfc_se * se, gfc_expr * expr)
   int nargs;
 
   nargs = gfc_intrinsic_argument_list_length (expr);
-  args = alloca (sizeof (tree) * nargs);
+  args = (tree *) alloca (sizeof (tree) * nargs);
 
   /* Evaluate all the arguments passed. Whilst we're only interested in the 
      first one here, there are other parts of the front-end that assume this 
@@ -514,7 +514,7 @@ gfc_conv_intrinsic_int (gfc_se * se, gfc_expr * expr, enum rounding_mode op)
   int nargs;
 
   nargs = gfc_intrinsic_argument_list_length (expr);
-  args = alloca (sizeof (tree) * nargs);
+  args = (tree *) alloca (sizeof (tree) * nargs);
 
   /* Evaluate the argument, we process all arguments even though we only 
      use the first one for code generation purposes.  */
@@ -736,7 +736,7 @@ gfc_conv_intrinsic_lib_function (gfc_se * se, gfc_expr * expr)
 
   /* Get the decl and generate the call.  */
   num_args = gfc_intrinsic_argument_list_length (expr);
-  args = alloca (sizeof (tree) * num_args);
+  args = (tree *) alloca (sizeof (tree) * num_args);
 
   gfc_conv_intrinsic_function_args (se, expr, args, num_args);
   fndecl = gfc_get_intrinsic_lib_fndecl (m, expr);
@@ -1037,7 +1037,7 @@ gfc_conv_intrinsic_cmplx (gfc_se * se, gfc_expr * expr, int both)
   unsigned int num_args;
 
   num_args = gfc_intrinsic_argument_list_length (expr);
-  args = alloca (sizeof (tree) * num_args);
+  args = (tree *) alloca (sizeof (tree) * num_args);
 
   type = gfc_typenode_for_spec (&expr->ts);
   gfc_conv_intrinsic_function_args (se, expr, args, num_args);
@@ -1333,7 +1333,7 @@ gfc_conv_intrinsic_ctime (gfc_se * se, gfc_expr * expr)
   unsigned int num_args;
 
   num_args = gfc_intrinsic_argument_list_length (expr) + 2;
-  args = alloca (sizeof (tree) * num_args);
+  args = (tree *) alloca (sizeof (tree) * num_args);
 
   var = gfc_create_var (pchar_type_node, "pstr");
   len = gfc_create_var (gfc_get_int_type (8), "len");
@@ -1371,7 +1371,7 @@ gfc_conv_intrinsic_fdate (gfc_se * se, gfc_expr * expr)
   unsigned int num_args;
 
   num_args = gfc_intrinsic_argument_list_length (expr) + 2;
-  args = alloca (sizeof (tree) * num_args);
+  args = (tree *) alloca (sizeof (tree) * num_args);
 
   var = gfc_create_var (pchar_type_node, "pstr");
   len = gfc_create_var (gfc_get_int_type (4), "len");
@@ -1411,7 +1411,7 @@ gfc_conv_intrinsic_ttynam (gfc_se * se, gfc_expr * expr)
   unsigned int num_args;
 
   num_args = gfc_intrinsic_argument_list_length (expr) + 2;
-  args = alloca (sizeof (tree) * num_args);
+  args = (tree *) alloca (sizeof (tree) * num_args);
 
   var = gfc_create_var (pchar_type_node, "pstr");
   len = gfc_create_var (gfc_get_int_type (4), "len");
@@ -1465,7 +1465,7 @@ gfc_conv_intrinsic_minmax (gfc_se * se, gfc_expr * expr, int op)
   unsigned int i, nargs;
 
   nargs = gfc_intrinsic_argument_list_length (expr);
-  args = alloca (sizeof (tree) * nargs);
+  args = (tree *) alloca (sizeof (tree) * nargs);
 
   gfc_conv_intrinsic_function_args (se, expr, args, nargs);
   type = gfc_typenode_for_spec (&expr->ts);
@@ -1536,7 +1536,7 @@ gfc_conv_intrinsic_minmax_char (gfc_se * se, gfc_expr * expr, int op)
   unsigned int nargs;
 
   nargs = gfc_intrinsic_argument_list_length (expr);
-  args = alloca (sizeof (tree) * (nargs + 4));
+  args = (tree *) alloca (sizeof (tree) * (nargs + 4));
   gfc_conv_intrinsic_function_args (se, expr, &args[4], nargs);
 
   /* Create the result variables.  */
@@ -2586,7 +2586,7 @@ gfc_conv_intrinsic_ishftc (gfc_se * se, gfc_expr * expr)
   unsigned int num_args;
 
   num_args = gfc_intrinsic_argument_list_length (expr);
-  args = alloca (sizeof (tree) * num_args);
+  args = (tree *) alloca (sizeof (tree) * num_args);
 
   gfc_conv_intrinsic_function_args (se, expr, args, num_args);
 
@@ -2751,7 +2751,7 @@ gfc_conv_intrinsic_index_scan_verify (gfc_se * se, gfc_expr * expr,
   tree *args;
   unsigned int num_args;
 
-  args = alloca (sizeof (tree) * 5);
+  args = (tree *) alloca (sizeof (tree) * 5);
 
   /* Get number of arguments; characters count double due to the
      string length argument. Kind= is not passed to the libary
@@ -2836,7 +2836,7 @@ gfc_conv_intrinsic_merge (gfc_se * se, gfc_expr * expr)
   unsigned int num_args;
 
   num_args = gfc_intrinsic_argument_list_length (expr);
-  args = alloca (sizeof (tree) * num_args);
+  args = (tree *) alloca (sizeof (tree) * num_args);
 
   gfc_conv_intrinsic_function_args (se, expr, args, num_args);
   if (expr->ts.type != BT_CHARACTER)
@@ -3894,7 +3894,7 @@ gfc_conv_intrinsic_trim (gfc_se * se, gfc_expr * expr)
   unsigned int num_args;
 
   num_args = gfc_intrinsic_argument_list_length (expr) + 2;
-  args = alloca (sizeof (tree) * num_args);
+  args = (tree *) alloca (sizeof (tree) * num_args);
 
   var = gfc_create_var (gfc_get_pchar_type (expr->ts.kind), "pstr");
   addr = gfc_build_addr_expr (ppvoid_type_node, var);
index 51e0cdd..5bd3005 100644 (file)
@@ -933,7 +933,7 @@ gfc_add_block_to_block (stmtblock_t * block, stmtblock_t * append)
 void
 gfc_get_backend_locus (locus * loc)
 {
-  loc->lb = gfc_getmem (sizeof (gfc_linebuf));    
+  loc->lb = XCNEW (gfc_linebuf);
   loc->lb->location = input_location;
   loc->lb->file = gfc_current_backend_file;
 }
index 3a07d71..81c449e 100644 (file)
@@ -206,7 +206,7 @@ typedef struct gfc_ss
   unsigned useflags:2, where:1;
 }
 gfc_ss;
-#define gfc_get_ss() gfc_getmem(sizeof(gfc_ss))
+#define gfc_get_ss() XCNEW (gfc_ss)
 
 /* The contents of this aren't actually used.  A NULL SS chain indicates a
    scalar expression, so this pointer is used to terminate SS chains.  */