[dmd-internals] segv regression found by dmd test suite

Brad Roberts braddr at puremagic.com
Tue Dec 7 20:30:19 PST 2010


It looks like dmd change 777 introduced a change that causes one of the failure
test cases to segv.  Yeah, the auto-tester has been failing on linux for a
rather long time.  Just got around to looking at it.

http://www.dsource.org/projects/dmd/changeset/777

$ gdb --args ../src/dmd -v -Ifail_compilation   -odtest_results/fail_compilation
-oftest_results/fail_compilation/fail278_0.o -c fail_compilation/fail278.d
(gdb) run
binary    /home/braddr/sandbox/d/source/trunk/dmd/src/dmd
version   v2.051
config    /home/braddr/sandbox/d/source/trunk/dmd/src/dmd.conf
parse     fail278
importall fail278
import    object        (~/sandbox/d/source/trunk/druntime/import/object.di)
semantic  fail278

Program received signal SIGSEGV, Segmentation fault.
0x0812baf9 in TemplateInstance::mangle (this=0x82496f8) at mangle.c:225
225         Dsymbol *par = isnested || isTemplateMixin() ? parent :
tempdecl->parent;

(gdb) print tempdecl
$1 = (TemplateDeclaration *) 0x0

(gdb) bt
#0  0x0812baf9 in TemplateInstance::mangle (this=0x82496f8) at mangle.c:225
#1  0x08186925 in TemplateInstance::genIdent (this=0x8249650) at template.c:4684
#2  0x08187b58 in TemplateMixin::semantic (this=0x8249650, sc=0x8249838) at
template.c:5190
#3  0x0818537c in TemplateInstance::semantic (this=0x8249460, sc=0x82493d0,
fargs=0x0) at template.c:4016
#4  0x08184a94 in TemplateInstance::semantic (this=0x8249460, sc=0x82493d0) at
template.c:3687
#5  0x080db0f3 in ScopeExp::semantic (this=0x8249500, sc=0x82493d0) at
expression.c:3587
#6  0x080b2f4c in VarDeclaration::semantic (this=0x8248ef0, sc=0x82493d0) at
declaration.c:1243
#7  0x0804b1ee in AttribDeclaration::semanticNewSc (this=0x8244538,
sc=0x8249170, stc=4, linkage=LINKd, protection=PROTpublic, explicitProtection=0,
structalign=8) at attrib.c:126
#8  0x0804bd14 in StorageClassDeclaration::semantic (this=0x8244538,
sc=0x8249170) at attrib.c:414
#9  0x0818537c in TemplateInstance::semantic (this=0x8213ef8, sc=0x82141f0,
fargs=0x0) at template.c:4016
#10 0x08184a94 in TemplateInstance::semantic (this=0x8213ef8, sc=0x82141f0) at
template.c:3687
#11 0x0813f569 in TypeInstance::resolve (this=0x8214030, loc=..., sc=0x82141f0,
pe=0xffffcfa8, pt=0xffffcfac, ps=0xffffcfa4) at mtype.c:5902
#12 0x0813f7d8 in TypeInstance::toDsymbol (this=0x8214030, sc=0x82141f0) at
mtype.c:5968
#13 0x080b026d in AliasDeclaration::semantic (this=0x82140a8, sc=0x82141f0) at
declaration.c:463
#14 0x08130b29 in Module::semantic (this=0x8213208) at module.c:787
#15 0x0812e0d9 in main (argc=13, argv=0x8209520) at mars.c:1171



More information about the dmd-internals mailing list