[PATCH v4 1/3] MSVC: fix t0040-parse-options crash
- From
Marat Radchenko <marat@slonopotamus.org>
- Date
- Mar 30, 2014, 11:08 UTC
- Message-ID
- <cce7af835357635343f88895e8202cca149a701f.1396177208.git.marat@slonopotamus.org>
- In-Reply-To
- <cover.1396177207.git.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> --- 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