https://issues.dlang.org/show_bug.cgi?id=18238
Issue ID: 18238 Summary: Templates only used during CTFE shouldn't be code-gened Product: D Version: D2 Hardware: x86_64 OS: All Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: greensunn...@gmail.com The string of `foo` shouldn't make it to the object file: ``` auto foo()() { // shouldn't appear in the object file return "My super long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long string"; } void main(string[] args) { import core.stdc.stdio; static immutable s = foo()[0..2]; printf("%.*s", 2, s.ptr); } ``` ``` .text._D3foo__TQhZQkFNaNbNiNfZAya segment assume CS:.text._D3foo__TQhZQkFNaNbNiNfZAya _D3foo__TQhZQkFNaNbNiNfZAya: push RBP mov RBP,RSP lea RDX,_TMP0@PC32[RIP] mov EAX,05F7h pop RBP ret add [RAX],AL .text._D3foo__TQhZQkFNaNbNiNfZAya ends minfo segment dd offset FLAT:_D3foo12__ModuleInfoZ@64 db 000h,000h,000h,000h ;.... minfo ends ``` ``` > cat foo.o | grep -a "long" : ;I@Digital Mars D v2.078.0foo.d/home/seb/dlang/dmd/srcfoounsigned longchaq_Array_charlength`#ptry_D3foo4mainFAAyaZ1syAa~ ~_Array_ucentlength`#ptrÏ# 9D main_DmaiargsÔ` foo.foo!().foo_D3foo__TQhZQkFNaNbNiNfZAya~9ÿ_Dmain9_D3foo__TQhZQkFNaNbNiNfZAya5MyMy super long long long long long long long long long long long long long long long long long ^[[?1;2c long long long long long long long long long long long long long long long ``` --