From a4a29e29c3f1eed18f851dcf10bdc845571dfcb6 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Fri, 12 Apr 2019 17:51:04 -0700 Subject: 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. --- src/main/scala/chisel3/internal/firrtl/Converter.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/main') 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) => -- cgit v1.2.3