[Issue 20739] New: SIGFPE in optimized compile of long.min/-1L

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Apr 15 21:14:25 UTC 2020


https://issues.dlang.org/show_bug.cgi?id=20739

          Issue ID: 20739
           Summary: SIGFPE in optimized compile of long.min/-1L
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: kdevel at vogtner.de

$ dmd --version
DMD64 D Compiler v2.090.1
Copyright (C) 1999-2019 by The D Language Foundation, All Rights Reserved
written by Walter Bright


```minbyminusone.d
void main ()
{
   version (X86_64) {
      auto a = long.min;
      auto b = -1;
      auto c = a / b;
   }
   else {
      pragma (msg, "untested processor/os");
   }
}
```


$ gdb [...]dmd
[...]
(gdb) r -O minbyminusone
Starting program: [...]dmd -O minbyminusone
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Program received signal SIGFPE, Arithmetic exception.
0x00000000008b2c2e in evalu8(elem*, unsigned int) ()
(gdb) bt
#0  0x00000000008b2c2e in evalu8(elem*, unsigned int) ()
#1  0x00000000008d6988 in optelem(elem*, unsigned int) ()
#2  0x00000000008d70a3 in optelem(elem*, unsigned int) ()
#3  0x00000000008d68d5 in optelem(elem*, unsigned int) ()
#4  0x00000000008d650f in optelem(elem*, unsigned int) ()
#5  0x00000000008d6529 in optelem(elem*, unsigned int) ()
#6  0x00000000008d6529 in optelem(elem*, unsigned int) ()
#7  0x00000000008d717b in doptelem(elem*, unsigned int) ()
#8  0x00000000008b5a0b in optfunc() ()
#9  0x00000000008c5a54 in writefunc2(Symbol*) ()
#10 0x00000000008c55f3 in writefunc(Symbol*) ()
#11 0x000000000083730e in FuncDeclaration_toObjFile(FuncDeclaration*, bool) ()
#12 0x000000000084ba0e in toObjFile::ToObjFile::visit(FuncDeclaration*) ()
#13 0x00000000006e390a in FuncDeclaration::accept(Visitor*) ()
#14 0x000000000084b99c in toObjFile(Dsymbol*, bool) ()
#15 0x0000000000835503 in genObjFile(Module*, bool) ()
#16 0x000000000078f9a6 in dmd.mars.tryMain() ()
#17 0x0000000000790c7c in D main ()
#18 0x0000000000976df3 in rt.dmain2._d_run_main2() ()
#19 0x0000000000976ca1 in rt.dmain2._d_run_main2() ()
#20 0x0000000000976d7b in rt.dmain2._d_run_main2() ()
#21 0x0000000000976ca1 in rt.dmain2._d_run_main2() ()
#22 0x0000000000976c0a in _d_run_main2 ()
#23 0x00000000009769c6 in _d_run_main ()
#24 0x0000000000790c19 in main ()

--


More information about the Digitalmars-d-bugs mailing list