[ovs-dev] [PATCH] x64 Windows - fix - casting of an 8 byte pointer into a 4 byte long word
Eitan Eliahu
eliahue at vmware.com
Wed Sep 3 01:11:41 UTC 2014
Unlike the compilation mode used for OVS x64 Linux Windows long word is
4 bytes for both 32 and 64 bit builds.
Replaced _UNCONST macro with CONST_CAST to avoid the intermediate casting
to an integer.
Testing: 32 and 64 Windows builds.
Signed-off-by: Eitan Eliahu eliahue at vmware.com
---
lib/getopt_long.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/lib/getopt_long.c b/lib/getopt_long.c
index a1e7372..95c8104 100644
--- a/lib/getopt_long.c
+++ b/lib/getopt_long.c
@@ -59,7 +59,6 @@ char *optarg; /* argument associated with option */
#define EMSG ""
-#define __UNCONST(a) ((void *)(unsigned long)(const void *)(a))
#define _DIAGASSERT(q) ovs_assert(q)
#define warnx VLOG_WARN
@@ -258,7 +257,7 @@ start:
} else { /* takes (optional) argument */
optarg = NULL;
if (*place) /* no white space */
- optarg = __UNCONST(place);
+ optarg = CONST_CAST(char *, place);
/* XXX: disable test for :: if PC? (GNU doesn't) */
else if (oli[1] != ':') { /* arg not optional */
if (++optind >= nargc) { /* no arg */
@@ -295,7 +294,7 @@ getopt(nargc, nargv, options)
_DIAGASSERT(nargv != NULL);
_DIAGASSERT(options != NULL);
- retval = getopt_internal(nargc, __UNCONST(nargv), options);
+ retval = getopt_internal(nargc, CONST_CAST(char **, nargv), options);
if (retval == -2) {
++optind;
/*
@@ -334,13 +333,13 @@ getopt_long(int nargc, char * const *nargv, const char *options,
_DIAGASSERT(long_options != NULL);
/* idx may be NULL */
- retval = getopt_internal(nargc, __UNCONST(nargv), options);
+ retval = getopt_internal(nargc, CONST_CAST(char **, nargv), options);
if (retval == -2) {
char *current_argv, *has_equal;
size_t current_argv_len;
int i, ambiguous, match;
- current_argv = __UNCONST(place);
+ current_argv = CONST_CAST(char *, place);
match = -1;
ambiguous = 0;
@@ -354,7 +353,7 @@ getopt_long(int nargc, char * const *nargv, const char *options,
*/
if (nonopt_end != -1) {
permute_args(nonopt_start, nonopt_end,
- optind, __UNCONST(nargv));
+ optind, CONST_CAST(char **, nargv));
optind -= nonopt_end - nonopt_start;
}
nonopt_start = nonopt_end = -1;
--
1.9.4.msysgit.0
More information about the dev
mailing list