Skip to content

segmentation fault when using tuple over member variable in more than one method #266

Closed
@ghost

Description

test.d:

template Tuple(Stuff ...) {
    alias Stuff Tuple;
}
struct S {
    int i;
    alias Tuple!i t;
    void a() {
        auto x = t;
    }
    void b() {
        auto x = t;
    }
}

ldc2 -c test.d:

0  ldc2            0x00000000011953ef
1  ldc2            0x0000000001195859
2  libpthread.so.0 0x00007f914eba5cb0
3  ldc2            0x00000000006cc443 DtoNestedVariable(Loc, Type*, VarDeclaration*, bool) + 147
4  ldc2            0x000000000069f43a ThisExp::toElem(IRState*) + 202
5  ldc2            0x000000000069f0e0 DotVarExp::toElem(IRState*) + 224
6  ldc2            0x000000000069cf6d AssignExp::toElem(IRState*) + 173
7  ldc2            0x00000000006c567f DtoVarDeclaration(VarDeclaration*) + 111
8  ldc2            0x00000000006c5b68 DtoDeclarationExp(Dsymbol*) + 312
9  ldc2            0x00000000006c5d57 DtoDeclarationExp(Dsymbol*) + 807
10 ldc2            0x00000000006c5a95 DtoDeclarationExp(Dsymbol*) + 101
11 ldc2            0x000000000069bd21 DeclarationExp::toElem(IRState*) + 65
12 ldc2            0x000000000069bc4d Expression::toElemDtor(IRState*) + 77
13 ldc2            0x000000000067c6aa ExpStatement::toIR(IRState*) + 74
14 ldc2            0x000000000067bfab CompoundStatement::toIR(IRState*) + 91
15 ldc2            0x0000000000664ad5 DtoDefineFunction(FuncDeclaration*) + 1797
16 ldc2            0x00000000006cd1e9 Ir::emitFunctionBodies() + 41
17 ldc2            0x0000000000668d1d Module::genLLVMModule(llvm::LLVMContext&, Ir*) + 669
18 ldc2            0x000000000059a577 main + 7623
19 libc.so.6       0x00007f914dddf76d __libc_start_main + 237
20 ldc2            0x00000000005ad0e9
Segmentation fault (core dumped)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions