[PATCH v3] MSVC: fix t0040-parse-options crash
- From
Marat Radchenko <marat@slonopotamus.org>
- Date
- Mar 29, 2014, 20:09 UTC
- Message-ID
- <1396123762-28673-1-git-send-email-marat@slonopotamus.org>
- In-Reply-To
- <1396008298-1434-1-git-send-email-marat@slonopotamus.org>
On 64-bit MSVC, pointers are 64 bit but `long` is only 32. Thus, casting string to `unsigned long`, which is redundand on other platforms, throws away important bits and when later cast to `intptr_t` results in corrupt pointer.
This patch fixes test-parse-options by replacing harming cast with correct one.
Signed-off-by: Marat Radchenko <marat@slonopotamus.org> ---
Aargh! Didn't notice that V2 introduced compilation warning. Take three.
test-parse-options.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test-parse-options.c b/test-parse-options.c index 434e8b8..6f6c656 100644 --- a/test-parse-options.c +++ b/test-parse-options.c @@ -60,7 +60,7 @@ int main(int argc, char **argv) OPT_STRING('o', NULL, &string, "str", "get another string"), OPT_NOOP_NOARG(0, "obsolete"), OPT_SET_PTR(0, "default-string", &string, - "set string to default", (unsigned long)"default"), + "set string to default", (intptr_t)"default"), OPT_STRING_LIST(0, "list", &list, "str", "add str to list"), OPT_GROUP("Magic arguments"), OPT_ARGUMENT("quux", "means --quux"),
-- 1.9.0