f709bf12f0
datastream.h is included in places where we cannot import the compiler namespace, so we can't make compiler::target::word the type of WriteTargetWord. That also would possibly silently truncate a host-word sized value that was passed in instead of alerting to a possible issue if those bits were important. However, just using IsInt fails if the value being passed in is a compiler::target::uword that is larger than the max value that fits in a compiler::target::word. Instead, check for truncation by checking the bit length of the value, which works for both signed and unsigned target word values. Original description: Also remove previous (incorrect) uses in datastream.cc and image_snapshot.cc, now that Utils::IsInt<T>(N, value) can now be run for values of N >= sizeof(T). Fixes https://github.com/dart-lang/sdk/issues/46572 TEST=language/generic/super_bounded_types_test passes on NNBD simarm, added value that triggered failure to vm/cc/MagnitudeIsUint Cq-Include-Trybots: luci.dart.try:vm-kernel-nnbd-linux-release-simarm-try,vm-kernel-precomp-linux-debug-simarm_x64-try Change-Id: Idbfdda9f28243d206d482a1d9ac7ae76a5022ad2 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/206201 Reviewed-by: Daco Harkes <dacoharkes@google.com> Commit-Queue: Tess Strickland <sstrickl@google.com>