
#14677: Code generator does not correctly tag a pointer -------------------------------------+------------------------------------- Reporter: simonpj | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: 14626 Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by heisenbug): Replying to [comment:6 alexbiehl]:
Gabor, I am on OSX. Can you tell me where your code lives and what your build settings are? I will try to reproduce.
Looks like it is a CAF in OS X: {{{ Watchpoint 1 hit: old value: 4420539208 new value: 4420538632 Process 92235 stopped * thread #1: tid = 0xc753fd, 0x00000001077b525e libHSrts_thr- ghc8.5.20180103.dylib`newCAF(reg=<unavailable>, caf=0x00000001037286b8) + 142 at Storage.c:429, queue = 'com.apple.main-thread', stop reason = watchpoint 1 frame #0: 0x00000001077b525e libHSrts_thr- ghc8.5.20180103.dylib`newCAF(reg=<unavailable>, caf=0x00000001037286b8) + 142 at Storage.c:429 426 bh = lockCAF(reg, caf); 427 if (!bh) return NULL; 428 -> 429 if(keepCAFs) 430 { 431 // Note [dyn_caf_list] 432 // If we are in GHCi _and_ we are using dynamic libraries, (lldb) Process 92235 resuming Process 92235 stopped * thread #1: tid = 0xc753fd, 0x00000001077babc8 libHSrts_thr- ghc8.5.20180103.dylib`checkTagged, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 frame #0: 0x00000001077babc8 libHSrts_thr- ghc8.5.20180103.dylib`checkTagged libHSrts_thr-ghc8.5.20180103.dylib`checkTagged: -> 0x1077babc8 <+0>: testb $0x7, %bl 0x1077babcb <+3>: jne 0x1077babe3 ; <+27> 0x1077babcd <+5>: subq $0x8, %rsp 0x1077babd1 <+9>: leaq 0x165a4(%rip), %rdi ; "NOT TAGGED! " (lldb) p/x $rbx (unsigned long) $8 = 0x00000001037286b8 (lldb) watchpoint list Number of supported hardware watchpoints: 4 Current watchpoints: Watchpoint 1: addr = 0x1037286b8 size = 8 state = enabled type = w old value: 4420539208 new value: 4420538632 (lldb) dis -s 4420538632 libHSrts_thr-ghc8.5.20180103.dylib`stg_IND_STATIC_info: 0x1077c1108 <+0>: movq 0x8(%rbx), %rbx 0x1077c110c <+4>: andq $-0x8, %rbx 0x1077c1110 <+8>: jmpq *(%rbx) 0x1077c1112 <+10>: adcb %al, (%rax) 0x1077c1114 <+12>: addb %al, (%rax) 0x1077c1116 <+14>: nop libHSrts_thr-ghc8.5.20180103.dylib`stg_BLACKHOLE_info_dsp: 0x1077c1118 <+0>: addl %eax, (%rax) 0x1077c111a <+2>: addb %al, (%rax) 0x1077c111c <+4>: addb %al, (%rax) 0x1077c111e <+6>: addb %al, (%rax) 0x1077c1120 <+8>: addb %al, %es:(%rax) 0x1077c1123 <+11>: addb %al, (%rax) 0x1077c1125 <+13>: addb %al, (%rax) (lldb) dis -s 4420538632+16 libHSrts_thr-ghc8.5.20180103.dylib`stg_BLACKHOLE_info_dsp: 0x1077c1118 <+0>: addl %eax, (%rax) 0x1077c111a <+2>: addb %al, (%rax) 0x1077c111c <+4>: addb %al, (%rax) 0x1077c111e <+6>: addb %al, (%rax) 0x1077c1120 <+8>: addb %al, %es:(%rax) 0x1077c1123 <+11>: addb %al, (%rax) 0x1077c1125 <+13>: addb %al, (%rax) 0x1077c1127 <+15>: addb %cl, -0x75(%rax) libHSrts_thr-ghc8.5.20180103.dylib`stg_BLACKHOLE_info: 0x1077c112a <+2>: orb %bpl, -0x37af0f9(%r8) 0x1077c1131 <+9>: addb %al, (%rax) 0x1077c1133 <+11>: addb %cl, -0x75(%rax) (lldb) p/x $rbx (unsigned long) $10 = 0x00000001037286b8 }}} So it is probably another bug that is easier to trigger on OS X. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14677#comment:9 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler