[GHC] #14026: hs_init is not idempotent
GHC
ghc-devs at haskell.org
Mon Jul 24 07:09:01 UTC 2017
#14026: hs_init is not idempotent
-------------------------------------+-------------------------------------
Reporter: Feuerbach | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.0.2
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
hs_init tries to be idempotent by ignoring all calls but the first one.
However, subsequent calls to hs_init do not set argc and argv correctly.
Here's a test case:
{{{
#include "HsFFI.h"
#include "stdio.h"
void try_init() {
char *argv[] = { "./test", "+RTS", "-s", "-RTS", "arg", 0 };
char **argv_ptr = argv;
int argc = sizeof(argv)/sizeof(argv[0]) - 1;
hs_init(&argc, &argv_ptr);
printf("%d\n", argc);
}
int main() {
try_init();
try_init();
}
}}}
Result:
{{{
2
5
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14026>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list