- /* If the partial prototype was included from some other file,
- we don't need to patch it up (in this run). */
- i = strlen (file_seen);
- if (i < inc_filename_length
- || strcmp (inc_filename, file_seen + (i - inc_filename_length)) != 0)
- continue;
+ /* If we have a full prototype, we're done. */
+ if (args[0] != '\0')
+ return;
+
+ if (kind == 'I') /* don't edit inline function */
+ return;
+
+ /* If the partial prototype was included from some other file,
+ we don't need to patch it up (in this run). */
+ i = strlen (file_seen);
+ if (i < inc_filename_length
+ || strcmp (inc_filename, file_seen + (i - inc_filename_length)) != 0)
+ return;
+
+ if (fn == NULL)
+ return;
+ if (fn->params[0] == '\0' || strcmp(fn->params, "void") == 0)
+ return;
+
+ /* We only have a partial function declaration,
+ so remember that we have to add a complete prototype. */
+ partial_count++;
+ partial = (struct partial_proto*)
+ obstack_alloc (&scan_file_obstack, sizeof(struct partial_proto));
+ partial->fname = obstack_alloc (&scan_file_obstack, strlen(fname) + 1);
+ strcpy (partial->fname, fname);
+ partial->rtype = obstack_alloc (&scan_file_obstack, strlen(rtype) + 1);
+ strcpy (partial->rtype, rtype);
+ partial->line_seen = line_seen;
+ partial->fn = fn;
+ fn->partial = partial;
+ partial->next = partial_proto_list;
+ partial_proto_list = partial;
+ if (verbose)
+ {
+ fprintf (stderr, "(%s: %s non-prototype function declaration.)\n",
+ inc_filename, fname);
+ }
+}