← Back to index
|
Original Bugzilla link
Bug 14044 – dmd generates spurious functions in object file created from empty module
Status
RESOLVED
Resolution
FIXED
Severity
regression
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
x86
OS
All
Creation time
2015-01-25T15:47:00Z
Last change time
2015-01-28T16:44:11Z
Keywords
pull
Assigned to
nobody
Creator
andrei
Blocks
14053
Comments
Comment #0
by andrei — 2015-01-25T15:47:22Z
Looking at
http://asm.dlang.org,
with DMD 2.065 the object file contains no functions. But with 2.066.1 there are a few spurious functions generated: _D6object7__arrayZ push %rbp mov %rsp,%rbp sub $0x10,%rsp mov %edi,-0x8(%rbp) mov -0x8(%rbp),%edx mov %rdx,-0x10(%rbp) mov 0x0(%rip),%rdx # 19 <_D6object7__arrayZ+0x19> mov 0x0(%rip),%rdi # 20 <_D6object7__arrayZ+0x20> mov %rdx,%rsi mov -0x10(%rbp),%rdx callq 2c <_D6object7__arrayZ+0x2c> nopl 0x0(%rax) void object.__assert(int) push %rbp mov %rsp,%rbp sub $0x10,%rsp mov %edi,-0x8(%rbp) mov -0x8(%rbp),%edx mov %rdx,-0x10(%rbp) mov 0x0(%rip),%rdx # 19 <void object.__assert(int)+0x19> mov 0x0(%rip),%rdi # 20 <void object.__assert(int)+0x20> mov %rdx,%rsi mov -0x10(%rbp),%rdx callq 2c <void object.__assert(int)+0x2c> nopl 0x0(%rax) void object.__unittest_fail(int) push %rbp mov %rsp,%rbp sub $0x10,%rsp mov %edi,-0x8(%rbp) mov -0x8(%rbp),%edx mov %rdx,-0x10(%rbp) mov 0x0(%rip),%rdx # 19 <void object.__unittest_fail(int)+0x19> mov 0x0(%rip),%rdi # 20 <void object.__unittest_fail(int)+0x20> mov %rdx,%rsi mov -0x10(%rbp),%rdx callq 2c <void object.__unittest_fail(int)+0x2c> leaveq retq ...
Comment #1
by k.hara.pg — 2015-01-28T14:23:51Z
https://github.com/D-Programming-Language/dmd/pull/4354
Comment #2
by github-bugzilla — 2015-01-28T16:44:10Z
Commits pushed to master at
https://github.com/D-Programming-Language/dmd
https://github.com/D-Programming-Language/dmd/commit/706aa61608a0a7a89c56d8c3ad891797ac0fb1ca
fix Issue 14044 - dmd generates spurious functions in object file created from empty module Defer helper function generation until templates get instantiated.
https://github.com/D-Programming-Language/dmd/commit/679929fa2da120db76d91303efd2316370970d1e
Merge pull request #4354 from 9rnsr/fix14044 [REG2.066] Issue 14044 - dmd generates spurious functions in object file created from empty module