Re: [GHC] #7684: cgrun071 segfaults

FWIW I think gcc probably should be zero-extending in the caller, not
#7684: cgrun071 segfaults ----------------------------------+---------------------------------- Reporter: tibbe | Owner: Type: bug | Status: merge Priority: normal | Milestone: 7.8.1 Component: Compiler | Version: 7.7 Resolution: fixed | Keywords: Operating System: MacOS X | Architecture: x86_64 (amd64) Type of failure: Runtime crash | Difficulty: Unknown Test Case: cgrun071 | Blocked By: Blocking: | Related Tickets: ----------------------------------+---------------------------------- Comment (by tibbe): Replying to [comment:57 simonmar]: the callee, for an 8-bit argument (i.e. gcc 4.2 is correct, 4.9 is wrong). This is what we assume in GHC. I couldn't see anything about this in the ABI spec, but there's a gcc bug open: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46942 According to [http://gcc.gnu.org/ml/gcc/2013-01/msg00447.html the discussion with an editor of the System V x86_64 ABI] rwbarton linked to above, it's incorrect for the callee to assume that the register has been zero extended. Accessing bits outside the specified argument size is intentionally undefined behavior (which means that the callee has to zero extend). -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/7684#comment:58 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC