Commit 60c47c00 by Ian Lance Taylor

compiler: Allow string slices with start index == length.

    
    Avoid an off-by-one error when checking the start index of a string
    slice by allowing the start index to be the string length instead
    of the string length - 1.
    
    Fixes golang/go#11522.
    
    Reviewed-on: https://go-review.googlesource.com/13030

From-SVN: r227191
parent c316b5e4
d6d59d5927c4ea0c02468ebc6a2df431fb64595a
14ca4b6130b9a7132d132f418e9ea283b3a52c08
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
......@@ -10341,7 +10341,10 @@ String_index_expression::do_check_types(Gogo*)
{
ival_valid = true;
if (mpz_sgn(ival) < 0
|| (sval_valid && mpz_cmp_ui(ival, sval.length()) >= 0))
|| (sval_valid
&& (this->end_ == NULL
? mpz_cmp_ui(ival, sval.length()) >= 0
: mpz_cmp_ui(ival, sval.length()) > 0)))
{
error_at(this->start_->location(), "string index out of bounds");
this->set_is_error();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment