digitalmars.D.bugs - [Issue 13951] New: Massive amounts of bloat generated for asserts by
- via Digitalmars-d-bugs (34/34) Jan 07 2015 https://issues.dlang.org/show_bug.cgi?id=13951
https://issues.dlang.org/show_bug.cgi?id=13951 Issue ID: 13951 Summary: Massive amounts of bloat generated for asserts by template.c Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: DMD Assignee: nobody puremagic.com Reporter: bugzilla digitalmars.com The dmd source code in template.c: ------------------------------------------------------- void TemplateDeclaration::semantic(Scope *sc) { [...] if (Module *m = sc->module) // should use getModule() instead? { // Generate these functions as they may be used // when template is instantiated in other modules // even if assertions or bounds checking are disabled in this module m->toModuleArray(); m->toModuleAssert(); <============= m->toModuleUnittest(); } --------------------------------------------------- This results in huge numbers of assert() functions to be generated, each with its own copy of the source file name string. The assert() function is generated as a COMDAT, which removes duplicates, but the filename strings are not put in COMDATs and are duplicated innumerable times. --
Jan 07 2015