
#8974: 64 bit windows executable built with ghc-7.9.20140405+LLVM segfaults -------------------------------------+------------------------------------- Reporter: awson | Owner: Type: bug | Status: infoneeded Priority: high | Milestone: 7.8.4 Component: Compiler | Version: 7.9 (LLVM) | Keywords: Resolution: | Architecture: x86_64 (amd64) Operating System: Windows | Difficulty: Unknown Type of failure: Runtime | Blocked By: crash | Related Tickets: Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by Fanael): Replying to [comment:22 awson]:
AFAIR, the `trunc` alone is '''not''' sufficient. What you propose in fact is to '''declare''' a pair of 32-bit int variables instead of one 64-bit pointer global variable, right?
As shown in the example, yes. The ideal solution would be to convert that truncated value back to `i64`, but even though the LLVM docs say that `sext` and `zext` are valid constant expressions, they don't work and yield an "Unsupported expression in static initializer" error. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8974#comment:23 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler