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
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