- /* Print the C argument list as it would appear in lisp:
- print underscores as hyphens, and print commas and newlines
- as spaces. Collapse adjacent spaces into one. */
- if (c == '_')
- c = '-';
- else if (c == ',' || c == '\n')
- c = ' ';
-
- /* In C code, `default' is a reserved word, so we spell it
- `defalt'; unmangle that here. */
- if (ident_start
- && strncmp (p, "defalt", 6) == 0
- && ! (('A' <= p[6] && p[6] <= 'Z')
- || ('a' <= p[6] && p[6] <= 'z')
- || ('0' <= p[6] && p[6] <= '9')
- || p[6] == '_'))
+/* All the variable names we saw while scanning C sources in `-g'
+ mode. */
+int num_globals;
+int num_globals_allocated;
+struct global *globals;
+
+static void
+add_global (enum global_type type, char *name)
+{
+ /* Ignore the one non-symbol that can occur. */
+ if (strcmp (name, "..."))
+ {
+ ++num_globals;
+
+ if (num_globals_allocated == 0)
+ {
+ num_globals_allocated = 100;
+ globals = xmalloc (num_globals_allocated * sizeof (struct global));
+ }
+ else if (num_globals == num_globals_allocated)