Skip to content

Commit 98e9249

Browse files
ianlancetaylorIan Lance Taylor
authored and
Ian Lance Taylor
committed
compiler: use correct size and comparison in index value overflow check
This has apparently been wrong since I introduced the code ten years ago. Fixes https://gcc.gnu.org/PR114500 Change-Id: I8ddc6a7bbb45647065ba4f20f6932122487749e2 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/574835 Reviewed-by: Ian Lance Taylor <[email protected]> Reviewed-by: Than McIntosh <[email protected]>
1 parent 3f59728 commit 98e9249

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

Diff for: go/expressions.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -18790,7 +18790,7 @@ Composite_literal_expression::lower_array(Type* type)
1879018790

1879118791
Named_type* ntype = Type::lookup_integer_type("int");
1879218792
Integer_type* inttype = ntype->integer_type();
18793-
if (sizeof(index) <= static_cast<size_t>(inttype->bits() * 8)
18793+
if (sizeof(index) >= static_cast<size_t>(inttype->bits() / 8)
1879418794
&& index >> (inttype->bits() - 1) != 0)
1879518795
{
1879618796
go_error_at(index_expr->location(), "index value overflow");

0 commit comments

Comments
 (0)