mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-12 02:43:14 +01:00
Merged DMD commit c1176ad9218c7a733867a5cc3d0da628a641d8fb:
bugzilla 4941 Built-in tuple slice boundaries are not CTFE'd
This commit is contained in:
@@ -7532,8 +7532,8 @@ Expression *SliceExp::semantic(Scope *sc)
|
||||
|
||||
if (t->ty == Ttuple)
|
||||
{
|
||||
lwr = lwr->optimize(WANTvalue);
|
||||
upr = upr->optimize(WANTvalue);
|
||||
lwr = lwr->optimize(WANTvalue | WANTinterpret);
|
||||
upr = upr->optimize(WANTvalue | WANTinterpret);
|
||||
uinteger_t i1 = lwr->toUInteger();
|
||||
uinteger_t i2 = upr->toUInteger();
|
||||
|
||||
|
||||
@@ -5492,11 +5492,11 @@ Type *TypeSlice::semantic(Loc loc, Scope *sc)
|
||||
TypeTuple *tt = (TypeTuple *)tbn;
|
||||
|
||||
lwr = semanticLength(sc, tbn, lwr);
|
||||
lwr = lwr->optimize(WANTvalue);
|
||||
lwr = lwr->optimize(WANTvalue | WANTinterpret);
|
||||
uinteger_t i1 = lwr->toUInteger();
|
||||
|
||||
upr = semanticLength(sc, tbn, upr);
|
||||
upr = upr->optimize(WANTvalue);
|
||||
upr = upr->optimize(WANTvalue | WANTinterpret);
|
||||
uinteger_t i2 = upr->toUInteger();
|
||||
|
||||
if (!(i1 <= i2 && i2 <= tt->arguments->dim))
|
||||
@@ -5536,11 +5536,11 @@ void TypeSlice::resolve(Loc loc, Scope *sc, Expression **pe, Type **pt, Dsymbol
|
||||
sc = sc->push(sym);
|
||||
|
||||
lwr = lwr->semantic(sc);
|
||||
lwr = lwr->optimize(WANTvalue);
|
||||
lwr = lwr->optimize(WANTvalue | WANTinterpret);
|
||||
uinteger_t i1 = lwr->toUInteger();
|
||||
|
||||
upr = upr->semantic(sc);
|
||||
upr = upr->optimize(WANTvalue);
|
||||
upr = upr->optimize(WANTvalue | WANTinterpret);
|
||||
uinteger_t i2 = upr->toUInteger();
|
||||
|
||||
sc = sc->pop();
|
||||
|
||||
Reference in New Issue
Block a user