Skip to content

Commit

Permalink
Fix incorrect call to getInt when type is unsigned
Browse files Browse the repository at this point in the history
Produces a runtime error. Use `getUInt` instead.
Fixes #12915

PiperOrigin-RevId: 636479572
  • Loading branch information
pparuzel authored and tensorflower-gardener committed May 23, 2024
1 parent 9aafb41 commit b29597b
Showing 1 changed file with 4 additions and 10 deletions.
14 changes: 4 additions & 10 deletions third_party/xla/xla/ffi/attribute_map.cc
Original file line number Diff line number Diff line change
Expand Up @@ -47,20 +47,17 @@ absl::StatusOr<FlatAttributesMap> BuildAttributesMap(
auto integer = [&](mlir::IntegerAttr integer) {
if (integer.getType().isUnsignedInteger()) {
switch (integer.getType().getIntOrFloatBitWidth()) {
case 1:
attributes[name] = static_cast<bool>(integer.getInt());
return absl::OkStatus();
case 8:
attributes[name] = static_cast<uint8_t>(integer.getInt());
attributes[name] = static_cast<uint8_t>(integer.getUInt());
return absl::OkStatus();
case 16:
attributes[name] = static_cast<uint16_t>(integer.getInt());
attributes[name] = static_cast<uint16_t>(integer.getUInt());
return absl::OkStatus();
case 32:
attributes[name] = static_cast<uint32_t>(integer.getInt());
attributes[name] = static_cast<uint32_t>(integer.getUInt());
return absl::OkStatus();
case 64:
attributes[name] = static_cast<uint64_t>(integer.getInt());
attributes[name] = static_cast<uint64_t>(integer.getUInt());
return absl::OkStatus();
default:
return absl::InvalidArgumentError(absl::StrCat(
Expand All @@ -69,9 +66,6 @@ absl::StatusOr<FlatAttributesMap> BuildAttributesMap(
}
} else {
switch (integer.getType().getIntOrFloatBitWidth()) {
case 1:
attributes[name] = static_cast<bool>(integer.getInt());
return absl::OkStatus();
case 8:
attributes[name] = static_cast<int8_t>(integer.getInt());
return absl::OkStatus();
Expand Down

0 comments on commit b29597b

Please sign in to comment.