* gdbtypes.c (check_stub_method): Make sure we get back a function
authorBrendan Kehoe <brendan@cygnus>
Wed, 6 Dec 1995 02:34:53 +0000 (02:34 +0000)
committerBrendan Kehoe <brendan@cygnus>
Wed, 6 Dec 1995 02:34:53 +0000 (02:34 +0000)
string in the demangled name before we try to use it.

fixes gdb/8306 (Mentor, ser/med)

gdb/ChangeLog
gdb/gdbtypes.c

index 192996faf5a6d101ef19db3589e5e50988359ebf..fc9535be505b903fb4b47f90c28c96476a1e2f2d 100644 (file)
@@ -1,3 +1,8 @@
+Tue Dec  5 18:33:43 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * gdbtypes.c (check_stub_method): Make sure we get back a function
+       string in the demangled name before we try to use it.
+
 Tue Dec  5 18:08:29 1995  Stu Grossman  (grossman@cygnus.com)
 
        * monitor.c (monitor_expect_regexp):  Make static, add prototype.
index d023eede0783d61f3fd415c77051ad88b936acf9..3cde087c861dda0f4c82480f333930e1026743f9 100644 (file)
@@ -974,14 +974,16 @@ check_stub_method (type, i, j)
   struct type **argtypes;
   struct type *mtype;
 
-  if (demangled_name == NULL)
-    {
-      error ("Internal: Cannot demangle mangled name `%s'.", mangled_name);
-    }
+  /* Make sure we got back a function string that we can use.  */
+  if (demangled_name)
+    p = strchr (demangled_name, '(');
+
+  if (demangled_name == NULL || p == NULL)
+    error ("Internal: Cannot demangle mangled name `%s'.", mangled_name);
 
   /* Now, read in the parameters that define this type.  */
-  argtypetext = strchr (demangled_name, '(') + 1;
-  p = argtypetext;
+  p += 1;
+  argtypetext = p;
   while (*p)
     {
       if (*p == '(')