https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94609
Bug ID: 94609 Summary: FAIL: gdc.dg/runnable.d Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: d Assignee: ibuclaw at gdcproject dot org Reporter: hjl.tools at gmail dot com Target Milestone: --- Target: x86-64 On Linux/x32, I got FAIL: gdc.dg/runnable.d -O0 execution test FAIL: gdc.dg/runnable.d -O1 execution test FAIL: gdc.dg/runnable.d -O2 execution test FAIL: gdc.dg/runnable.d -O3 execution test FAIL: gdc.dg/runnable.d -Os execution test FAIL: gdc.dg/runnable.d -O0 -g execution test FAIL: gdc.dg/runnable.d -O1 -g execution test FAIL: gdc.dg/runnable.d -O2 -g execution test FAIL: gdc.dg/runnable.d -O3 -g execution test FAIL: gdc.dg/runnable.d -Os -g execution test [hjl@gnu-cfl-2 gdc]$ ./runnable.exe 1.000000 2.000000 3.000000 Construct: this=0xffcc2100 Check: this=0xffcc2100 a=0xffcc2100 Check: this=0xffcc2140 a=0xffcc2100 core.exception.AssertError@/export/gnu/import/git/gitlab/x86-gcc/gcc/testsuite/gdc.dg/runnable.d(547): Assertion failure ---------------- /export/gnu/import/git/gitlab/x86-gcc/libphobos/libdruntime/core/exception.d:441 onAssertError [0x47401c] /export/gnu/import/git/gitlab/x86-gcc/gcc/testsuite/gdc.dg/runnable.d:547 void runnable.test52() [0x407aa2] /export/gnu/import/git/gitlab/x86-gcc/gcc/testsuite/gdc.dg/runnable.d:1596 _Dmain [0x40622e] [hjl@gnu-cfl-2 gdc]$ Starting program: /export/build/gnu/tools-build/gcc-x32-d-gitlab-debug/build-x86_64-linux/gcc/testsuite/gdc/runnable.exe [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". [New Thread 0xf7b6b940 (LWP 987423)] [New Thread 0xf736a940 (LWP 987424)] [New Thread 0xf67ff940 (LWP 987425)] [New Thread 0xf5ffe940 (LWP 987426)] [New Thread 0xf55ff940 (LWP 987427)] [New Thread 0xf4dfe940 (LWP 987428)] [New Thread 0xf41ff940 (LWP 987429)] 1.000000 2.000000 3.000000 Construct: this=0xffffca80 Check: this=0xffffca80 a=0xffffca80 Thread 1 "runnable.exe" hit Breakpoint 2, runnable.C52.check() ( this=0xffffca80) at /export/gnu/import/git/gitlab/x86-gcc/gcc/testsuite/gdc.dg/runnable.d:518 518 return this is a; (gdb) disass Dump of assembler code for function _D8runnable3C525checkMFZb: 0x004077fc <+0>: push %rbp 0x004077fd <+1>: mov %esp,%ebp 0x004077ff <+3>: sub $0x10,%esp 0x00407802 <+6>: mov %rdi,%rdx 0x00407805 <+9>: mov %edx,-0x4(%ebp) 0x00407809 <+13>: cmpl $0x0,-0x4(%ebp) 0x0040780e <+18>: setne %dl 0x00407811 <+21>: movzbl %dl,%edx 0x00407814 <+24>: test %edx,%edx 0x00407816 <+26>: je 0x407826 <_D8runnable3C525checkMFZb+42> 0x00407818 <+28>: mov -0x4(%ebp),%eax 0x0040781c <+32>: mov %rax,%rdi 0x0040781f <+35>: callq 0x474910 <_D9invariant12_d_invariantFC6ObjectZv> 0x00407824 <+40>: jmp 0x40787e <_D8runnable3C525checkMFZb+130> 0x00407826 <+42>: movabs $0xffffffff00000000,%rdx 0x00407830 <+52>: and %rcx,%rdx 0x00407833 <+55>: or $0x45,%rdx 0x00407837 <+59>: mov %rdx,%rcx 0x0040783a <+62>: mov $0x4be030,%edx 0x0040783f <+67>: mov %edx,%edx 0x00407841 <+69>: shl $0x20,%rdx 0x00407845 <+73>: mov %ecx,%ecx 0x00407847 <+75>: or %rcx,%rdx 0x0040784a <+78>: mov %rdx,%rcx 0x0040784d <+81>: movabs $0xffffffff00000000,%rdx 0x00407857 <+91>: and %rdx,%rax 0x0040785a <+94>: or $0x9,%rax 0x0040785e <+98>: mov $0x4be075,%edx 0x00407863 <+103>: mov %edx,%edx 0x00407865 <+105>: shl $0x20,%rdx 0x00407869 <+109>: mov %eax,%eax 0x0040786b <+111>: or %rdx,%rax 0x0040786e <+114>: mov $0x203,%edx 0x00407873 <+119>: mov %rcx,%rsi 0x00407876 <+122>: mov %rax,%rdi 0x00407879 <+125>: callq 0x474450 <_d_assert_msg> 0x0040787e <+130>: mov -0x4(%ebp),%eax 0x00407882 <+134>: mov 0x8(%eax),%eax 0x00407886 <+138>: mov %eax,%edx 0x00407888 <+140>: mov -0x4(%ebp),%eax 0x0040788c <+144>: mov $0x4be228,%ecx 0x00407891 <+149>: mov %ecx,%ecx 0x00407893 <+151>: mov %rax,%rsi 0x00407896 <+154>: mov %rcx,%rdi 0x00407899 <+157>: mov $0x0,%eax 0x0040789e <+162>: callq 0x4025e0 <printf@plt> => 0x004078a3 <+167>: mov -0x4(%ebp),%eax 0x004078a7 <+171>: mov 0x8(%eax),%eax 0x004078ab <+175>: cmp %eax,-0x4(%ebp) --Type <RET> for more, q to quit, c to continue without paging-- 0x004078af <+179>: sete %al 0x004078b2 <+182>: leaveq 0x004078b3 <+183>: retq End of assembler dump. (gdb) si 0x004078a7 518 return this is a; (gdb) p/x $eax $17 = 0xffffca80 (gdb) p/x *(int *) ($eax + 8) $18 = 0xffffca80 (gdb) c Continuing. Check: this=0xffffcac0 a=0xffffca80 Thread 1 "runnable.exe" hit Breakpoint 2, runnable.C52.check() ( this=0xffffcac0) at /export/gnu/import/git/gitlab/x86-gcc/gcc/testsuite/gdc.dg/runnable.d:518 518 return this is a; (gdb) si 0x004078a7 518 return this is a; (gdb) p/x $eax $19 = 0xffffcac0 (gdb) p/x *(int *) ($eax + 8) $20 = 0xffffca80 <<<<<<<<<<<<<<< 0xffffca80 != 0xffffcac0 (gdb)