Given a file with an empty main like so: module main; void main() {} The output of this command: dmd -o- -deps=out.deps test.d Is, with 2.057: main (test.d) : public : object (/usr/include/d/dmd/druntime/import/object.di) and with 2.058: object (/usr/include/d/dmd/druntime/import/object.di) : public : object (/usr/include/d/dmd/druntime/import/object.di) main (test.d) : public : object (/usr/include/d/dmd/druntime/import/object.di) I think it's a bug.
Commit pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/576f18aaf12a2e3b63e464b8a3405e5f7af279d9 fix Issue 7547 - -deps output lists object as a top level module
Commit pushed to dmd-1.x at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/59ed3f01606efd23638c7f94d0982ba9d9341a58 fix Issue 7547 - -deps output lists object as a top level module