[GHC] #8974: 64 bit windows executable built with ghc-7.9.20140405+LLVM segfaults
GHC
ghc-devs at haskell.org
Tue Sep 2 06:04:19 UTC 2014
#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 awson):
Replying to [comment:21 Fanael]:
> Yes, there is. Use `trunc`, for example:
>
> {{{
> %foo = type <{i32, i32}>
> @aaa = global i32 5
> @bbb = global i32 5
> @foo = constant %foo<{i32 trunc(i64 sub(i64 ptrtoint (i32* @aaa to i64),
i64 ptrtoint (i32* @bbb to i64)) to i32), i32 0}>
>
> }}}
>
> LLVM will generate
> {{{
> foo:
> .long aaa-bbb
> .long 0 # 0x0
> }}}
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?
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8974#comment:22>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list