svn commit: r193738 - stable/7/usr.bin/rpcgen
Dag-Erling Smorgrav
des at FreeBSD.org
Mon Jun 8 19:22:13 UTC 2009
Author: des
Date: Mon Jun 8 19:22:12 2009
New Revision: 193738
URL: http://svn.freebsd.org/changeset/base/193738
Log:
merge r173761: generate code that respects C99's strict aliasing rules.
Modified:
stable/7/usr.bin/rpcgen/ (props changed)
stable/7/usr.bin/rpcgen/rpc_cout.c
Modified: stable/7/usr.bin/rpcgen/rpc_cout.c
==============================================================================
--- stable/7/usr.bin/rpcgen/rpc_cout.c Mon Jun 8 18:58:54 2009 (r193737)
+++ stable/7/usr.bin/rpcgen/rpc_cout.c Mon Jun 8 19:22:12 2009 (r193738)
@@ -200,11 +200,13 @@ print_ifsizeof(int indent, const char *p
}
static void
-print_ifclose(int indent)
+print_ifclose(int indent, int brace)
{
f_print(fout, "))\n");
tabify(fout, indent);
f_print(fout, "\treturn (FALSE);\n");
+ if (brace)
+ f_print(fout, "\t}\n");
}
static void
@@ -212,12 +214,16 @@ print_ifstat(int indent, const char *pre
const char *amax, const char *objname, const char *name)
{
const char *alt = NULL;
+ int brace = 0;
switch (rel) {
case REL_POINTER:
+ brace = 1;
+ f_print(fout, "\t{\n");
+ f_print(fout, "\t%s **pp = %s;\n", type, objname);
print_ifopen(indent, "pointer");
print_ifarg("(char **)");
- f_print(fout, "%s", objname);
+ f_print(fout, "pp");
print_ifsizeof(0, prefix, type);
break;
case REL_VECTOR:
@@ -274,7 +280,7 @@ print_ifstat(int indent, const char *pre
print_ifarg(objname);
break;
}
- print_ifclose(indent);
+ print_ifclose(indent, brace);
}
/* ARGSUSED */
@@ -283,7 +289,7 @@ emit_enum(definition *def __unused)
{
print_ifopen(1, "enum");
print_ifarg("(enum_t *)objp");
- print_ifclose(1);
+ print_ifclose(1, 0);
}
static void
More information about the svn-src-stable-7
mailing list