* macroexp.c (expand): Initialize argc.
authorDaniel Jacobowitz <drow@false.org>
Sun, 15 Jan 2006 20:26:02 +0000 (20:26 +0000)
committerDaniel Jacobowitz <drow@false.org>
Sun, 15 Jan 2006 20:26:02 +0000 (20:26 +0000)
* stabsread.c (read_type): Handle errors from read_args.
(read_args): Return NULL for errors.

gdb/ChangeLog
gdb/macroexp.c
gdb/stabsread.c

index cd0d085d8663daf9308545afa716e39ba79dce8d..24d93f1cbdf996ea07056b8b453a017da9fb966b 100644 (file)
@@ -1,3 +1,9 @@
+2006-01-15  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * macroexp.c (expand): Initialize argc.
+       * stabsread.c (read_type): Handle errors from read_args.
+       (read_args): Return NULL for errors.
+
 2006-01-15  Mark Kettenis  <kettenis@gnu.org>
 
        * osabi.c (generic_elf_osabi_sniffer): Use memcmp instead of
index f5dc40c0cab3efb4c4776528703b95dbc487ff08..a7ca6e04ecabc4e64fb2270390b794ddbcc564f1 100644 (file)
@@ -927,7 +927,7 @@ expand (const char *id,
   else if (def->kind == macro_function_like)
     {
       struct cleanup *back_to = make_cleanup (null_cleanup, 0);
-      int argc;
+      int argc = 0;
       struct macro_buffer *argv = NULL;
       struct macro_buffer substituted;
       struct macro_buffer substituted_src;
index bbaa40d762f22bd59a918e6ae8b35d28a6fde89c..e346ad285fde7cefeb022c8d2d9f1afcca50e90c 100644 (file)
@@ -1804,6 +1804,8 @@ again:
 
          return_type = read_type (pp, objfile);
          args = read_args (pp, ';', objfile, &nargs, &varargs);
+         if (args == NULL)
+           return error_type (pp, objfile);
          type = dbx_alloc_type (typenums, objfile);
          smash_to_method_type (type, domain, return_type, args,
                                nargs, varargs);
@@ -3985,8 +3987,8 @@ handle_true_range:
 }
 
 /* Read in an argument list.  This is a list of types, separated by commas
-   and terminated with END.  Return the list of types read in, or (struct type
-   **)-1 if there is an error.  */
+   and terminated with END.  Return the list of types read in, or NULL
+   if there is an error.  */
 
 static struct field *
 read_args (char **pp, int end, struct objfile *objfile, int *nargsp,
@@ -4001,7 +4003,7 @@ read_args (char **pp, int end, struct objfile *objfile, int *nargsp,
     {
       if (**pp != ',')
        /* Invalid argument list: no ','.  */
-       return (struct field *) -1;
+       return NULL;
       (*pp)++;
       STABS_CONTINUE (pp, objfile);
       types[n++] = read_type (pp, objfile);