diff options
author | Iain Buclaw <ibuclaw@gcc.gnu.org> | 2019-06-16 07:48:42 +0000 |
---|---|---|
committer | Iain Buclaw <ibuclaw@gcc.gnu.org> | 2019-06-16 07:48:42 +0000 |
commit | 70106db92654b83cd0ea62a078805e84ef2d8ee8 (patch) | |
tree | 2e03c2d660192915711756cca92458e004d5c1ee /gcc/d/dmd/intrange.c | |
parent | e7c6715ec82458cf0b9a362bf9b068d0574607f9 (diff) | |
download | gcc-70106db92654b83cd0ea62a078805e84ef2d8ee8.zip gcc-70106db92654b83cd0ea62a078805e84ef2d8ee8.tar.gz gcc-70106db92654b83cd0ea62a078805e84ef2d8ee8.tar.bz2 |
re PR d/90604 (ICE in sizemask, at d/dmd/mtype.c:2542)
PR d/90604
d/dmd: Merge upstream dmd f30c5dc79
Fixes internal compiler error in Type::sizemask.
Reviewed-on: https://github.com/dlang/dmd/pull/9998
From-SVN: r272343
Diffstat (limited to 'gcc/d/dmd/intrange.c')
-rw-r--r-- | gcc/d/dmd/intrange.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/d/dmd/intrange.c b/gcc/d/dmd/intrange.c index 940385c..e0e2472 100644 --- a/gcc/d/dmd/intrange.c +++ b/gcc/d/dmd/intrange.c @@ -278,7 +278,7 @@ IntRange IntRange::fromType(Type *type) IntRange IntRange::fromType(Type *type, bool isUnsigned) { - if (!type->isintegral()) + if (!type->isintegral() || type->toBasetype()->ty == Tvector) return widest(); uinteger_t mask = type->sizemask(); @@ -404,7 +404,7 @@ IntRange& IntRange::castDchar() IntRange& IntRange::cast(Type *type) { - if (!type->isintegral()) + if (!type->isintegral() || type->toBasetype()->ty == Tvector) return *this; else if (!type->isunsigned()) return castSigned(type->sizemask()); @@ -416,7 +416,7 @@ IntRange& IntRange::cast(Type *type) IntRange& IntRange::castUnsigned(Type *type) { - if (!type->isintegral()) + if (!type->isintegral() || type->toBasetype()->ty == Tvector) return castUnsigned(UINT64_MAX); else if (type->toBasetype()->ty == Tdchar) return castDchar(); |