
#7684: cgrun071 segfaults ----------------------------------+---------------------------------- Reporter: tibbe | Owner: Type: bug | Status: infoneeded Priority: normal | Milestone: 7.8.1 Component: Compiler | Version: 7.7 Resolution: | 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): I think I've figured it out. I've installed the CLI tools that came with XCode 4.6. Here's the gcc that's included: {{{ $ gcc --version i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) }}} So this is a LLVM-based GCC (i.e. clang). This GCC indeed produces incorrect code for `popcnt.c`: {{{ #!asm _hs_popcnt8: Leh_func_begin1: pushq %rbp Ltmp0: movq %rsp, %rbp Ltmp1: leaq _popcount_tab(%rip), %rax movzbl (%rdi,%rax), %eax popq %rbp ret }}} Note how the argument is not zero extended when it's used to compute and address in `_popcount_tab`. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/7684#comment:49 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler