mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-02-17 04:13:13 +01:00
Merge DMD r278: bugzilla 370 Compiler stack overflow on recursive...
bugzilla 370 Compiler stack overflow on recursive typeof in function declaration. --- dmd/expression.c | 1 + dmd/mtype.c | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-)
This commit is contained in:
@@ -2266,6 +2266,7 @@ Lagain:
|
||||
if (!f->type->deco)
|
||||
{
|
||||
error("forward reference to %s", toChars());
|
||||
return new ErrorExp();
|
||||
}
|
||||
return new VarExp(loc, f);
|
||||
}
|
||||
|
||||
@@ -3935,6 +3935,7 @@ Type *TypeTypeof::semantic(Loc loc, Scope *sc)
|
||||
if (exp->op == TOKtype)
|
||||
{
|
||||
error(loc, "argument %s to typeof is not an expression", exp->toChars());
|
||||
goto Lerr;
|
||||
}
|
||||
t = exp->type;
|
||||
if (!t)
|
||||
@@ -3943,7 +3944,9 @@ Type *TypeTypeof::semantic(Loc loc, Scope *sc)
|
||||
goto Lerr;
|
||||
}
|
||||
if (t->ty == Ttypeof)
|
||||
error(loc, "forward reference to %s", toChars());
|
||||
{ error(loc, "forward reference to %s", toChars());
|
||||
goto Lerr;
|
||||
}
|
||||
}
|
||||
|
||||
if (idents.dim)
|
||||
@@ -3972,7 +3975,7 @@ Type *TypeTypeof::semantic(Loc loc, Scope *sc)
|
||||
return t;
|
||||
|
||||
Lerr:
|
||||
return tvoid;
|
||||
return terror;
|
||||
}
|
||||
|
||||
d_uns64 TypeTypeof::size(Loc loc)
|
||||
|
||||
Reference in New Issue
Block a user