summaryrefslogtreecommitdiff
path: root/src/main/scala
diff options
context:
space:
mode:
authorAndrew Waterman2019-04-12 17:51:04 -0700
committeredwardcwang2019-04-15 13:07:11 -0700
commita4a29e29c3f1eed18f851dcf10bdc845571dfcb6 (patch)
tree876999a0301d4ef86e8bb0712e8bc3ec3d2f9ef7 /src/main/scala
parent0028c64922a85087b2b6a6062fe202294e70855a (diff)
Avoid silently truncating BigInt to Int
- Introduce internal helper `castToInt`, which issues an error when the input BigInt can't be represented as Int. - Use `castToInt` wherever we were using `toInt` in a potentially unsafe way.
Diffstat (limited to 'src/main/scala')
-rw-r--r--src/main/scala/chisel3/internal/firrtl/Converter.scala4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/main/scala/chisel3/internal/firrtl/Converter.scala b/src/main/scala/chisel3/internal/firrtl/Converter.scala
index ee9d3a99..9366bea2 100644
--- a/src/main/scala/chisel3/internal/firrtl/Converter.scala
+++ b/src/main/scala/chisel3/internal/firrtl/Converter.scala
@@ -6,7 +6,7 @@ import chisel3.core.{SpecifiedDirection, EnumType}
import chisel3.experimental._
import chisel3.internal.sourceinfo.{NoSourceInfo, SourceLine, SourceInfo}
import firrtl.{ir => fir}
-import chisel3.internal.throwException
+import chisel3.internal.{castToInt, throwException}
import scala.annotation.tailrec
import scala.collection.immutable.{Queue}
@@ -50,7 +50,7 @@ private[chisel3] object Converter {
case Slot(imm, name) =>
fir.SubField(convert(imm, ctx), name, fir.UnknownType)
case Index(imm, ILit(idx)) =>
- fir.SubIndex(convert(imm, ctx), idx.toInt, fir.UnknownType)
+ fir.SubIndex(convert(imm, ctx), castToInt(idx, "Index"), fir.UnknownType)
case Index(imm, value) =>
fir.SubAccess(convert(imm, ctx), convert(value, ctx), fir.UnknownType)
case ModuleIO(mod, name) =>