- Cast pointer casts to (void *) first to shut-up lint

- Deal with variable size enums, by generating assignment to an enum_t variable.
- Use f_print everywhere instead of fprintf - when in Rome...
- I don't understand the value of the unexplained hack. Use IXDR_{U_,}INT32
  instead of IXDR_{U_,}LONG.

With those changes our generated librpcsvc files pass lint.
This commit is contained in:
christos 2002-02-05 22:05:42 +00:00
parent ed811ba9a7
commit 91caf38a2a
1 changed files with 17 additions and 13 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: rpc_cout.c,v 1.19 2002/01/31 22:43:57 tv Exp $ */ /* $NetBSD: rpc_cout.c,v 1.20 2002/02/05 22:05:42 christos Exp $ */
/* /*
* Sun RPC is a product of Sun Microsystems, Inc. and is provided for * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
* unrestricted use provided that this legend is included on all tape * unrestricted use provided that this legend is included on all tape
@ -34,7 +34,7 @@
#if 0 #if 0
static char sccsid[] = "@(#)rpc_cout.c 1.13 89/02/22 (C) 1987 SMI"; static char sccsid[] = "@(#)rpc_cout.c 1.13 89/02/22 (C) 1987 SMI";
#else #else
__RCSID("$NetBSD: rpc_cout.c,v 1.19 2002/01/31 22:43:57 tv Exp $"); __RCSID("$NetBSD: rpc_cout.c,v 1.20 2002/02/05 22:05:42 christos Exp $");
#endif #endif
#endif #endif
@ -194,7 +194,6 @@ print_ifopen(indent, name)
char *name; char *name;
{ {
char _t_kludge[32]; char _t_kludge[32];
/* /*
* XXX Solaris seems to strip the _t. No idea why. * XXX Solaris seems to strip the _t. No idea why.
*/ */
@ -271,7 +270,7 @@ print_ifstat(indent, prefix, type, rel, amax, objname, name)
print_ifarg(objname); print_ifarg(objname);
} else { } else {
print_ifopen(indent, "vector"); print_ifopen(indent, "vector");
print_ifarg("(char *)"); print_ifarg("(char *)(void *)");
f_print(fout, "%s", objname); f_print(fout, "%s", objname);
} }
print_ifarg(amax); print_ifarg(amax);
@ -321,10 +320,15 @@ static void
emit_enum(def) emit_enum(def)
definition *def; definition *def;
{ {
fprintf(fout, "\n"); tabify(fout, 1);
print_ifopen(1, "enum"); f_print(fout, "{\n");
print_ifarg("(enum_t *)objp"); tabify(fout, 2);
print_ifclose(1); f_print(fout, "enum_t et = (enum_t)*objp;\n");
print_ifopen(2, "enum");
print_ifarg("&et");
print_ifclose(2);
tabify(fout, 1);
f_print(fout, "}\n");
} }
static void static void
@ -423,7 +427,7 @@ emit_struct(def)
if (doinline == 0) { if (doinline == 0) {
fprintf(fout, "\n"); f_print(fout, "\n");
for (dl = def->def.st.decls; dl != NULL; dl = dl->next) for (dl = def->def.st.decls; dl != NULL; dl = dl->next)
print_stat(1, &dl->decl); print_stat(1, &dl->decl);
return; return;
@ -452,7 +456,7 @@ emit_struct(def)
can_inline = 1; can_inline = 1;
if (can_inline == 0) { /* can not inline, drop back to old mode */ if (can_inline == 0) { /* can not inline, drop back to old mode */
fprintf(fout, "\n"); f_print(fout, "\n");
for (dl = def->def.st.decls; dl != NULL; dl = dl->next) for (dl = def->def.st.decls; dl != NULL; dl = dl->next)
print_stat(1, &dl->decl); print_stat(1, &dl->decl);
return; return;
@ -630,7 +634,7 @@ emit_typedef(def)
char *amax = def->def.ty.array_max; char *amax = def->def.ty.array_max;
relation rel = def->def.ty.rel; relation rel = def->def.ty.rel;
fprintf(fout, "\n"); f_print(fout, "\n");
print_ifstat(1, prefix, type, rel, amax, "objp", def->def_name); print_ifstat(1, prefix, type, rel, amax, "objp", def->def_name);
} }
@ -708,12 +712,12 @@ emit_single_in_line(decl, flag, rel)
if (strcmp(upp_case, "INT") == 0) { if (strcmp(upp_case, "INT") == 0) {
free(upp_case); free(upp_case);
freed = 1; freed = 1;
upp_case = "LONG"; upp_case = "INT32";
} }
if (strcmp(upp_case, "U_INT") == 0) { if (strcmp(upp_case, "U_INT") == 0) {
free(upp_case); free(upp_case);
freed = 1; freed = 1;
upp_case = "U_LONG"; upp_case = "U_INT32";
} }
if (flag == PUT) { if (flag == PUT) {
if (rel == REL_ALIAS) if (rel == REL_ALIAS)