[Issue 18485] New: dmd generates a binary that throws SIGSEGV when using interface files (di) importing modules

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Feb 21 17:13:37 UTC 2018


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

          Issue ID: 18485
           Summary: dmd generates a binary that throws SIGSEGV when using
                    interface files (di) importing modules
           Product: D
           Version: D2
          Hardware: x86
                OS: Linux
            Status: NEW
          Severity: minor
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: diego.lago.gonzalez at gmail.com

D compiler (dmd) generates a binary file (test program) that throws a SIGSEGV
when it is linked against a library (*.so) using an interface file (*.di)
instead of a source file (*.di) when importing the library API (module).

Compiling the library is made with or without -H option to generate or not the
interface file (*.di). After that, the test program is compiled against the
library importing the source file (*.d).

With this import, [as stated in
documentation](https://dlang.org/dmd-linux.html#interface-files), `dmd` uses
interface files before source files if they are present.

And, when the test program is compiled using that interface file, that program
throws a SIGSEGV on every run.

Repository with a proof of concept:
https://github.com/diegolagoglez/dmd-sigsegv-using-di-proof-of-concept

--


More information about the Digitalmars-d-bugs mailing list