The following commit has been merged in the master branch:
commit fd22b1720887d27f1d59f7c66e00f2e78cdfe49a
Author: Andrew Deason <[email protected]>
Date: Wed Feb 10 16:42:16 2021 -0600
rxgen: Generate default switch arm for void
When defining an xdr union with a 'default' arm, rxgen generates xdr
routines like this:
bool_t
xdr_myunion(...)
{
switch (objp->op) {
case FOO:
xdr_foo(...);
break;
default:
xdr_default(...);
break;
}
}
However, if the default arm of the union is just 'void;', we just
don't generate a 'default:' arm in the switch statment in the
generated routines. If there are enum values that are not explicitly
specified, and are handled by the default arm, this generates a
compiler warning (which breaks the build for --enable-checking):
foo_int.xdr.c:80:2 error: enumeration value 'BAR' not handled in switch
[-Werror=switch]
switch (objp->op) {
To avoid this, change rxgen to always generate a 'default' arm in the
generated switch if there's one specified in the RPC-L. For a void
default, just generate an empty default arm, which avoids the compiler
warning.
Change-Id: I6ac457a4669439ef896b9cad6eb7de2f03068b69
Reviewed-on: https://gerrit.openafs.org/14798
Tested-by: BuildBot <[email protected]>
Reviewed-by: Benjamin Kaduk <[email protected]>
src/rxgen/rpc_cout.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--
OpenAFS Master Repository
_______________________________________________
OpenAFS-cvs mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-cvs