opt-functions.awk: fix comparison of limit, begin and end

The function integer_range_info makes sure that, if provided, the
initial value fills in the especified range.  However, it is necessary
to convert the values to a numerical context before comparing, to make
sure awk is using arithmetical order and not lexicographical order.
    
gcc/ChangeLog:
    
      * opt-functions.awk (integer_range_info): Make sure values are in
      numeric context before operating with them.

From-SVN: r275503
This commit is contained in:
Jose E. Marchesi 2019-09-09 11:44:23 +02:00 committed by Jose E. Marchesi
parent b7b1f65711
commit 4bc8aadf03
2 changed files with 9 additions and 3 deletions

View file

@ -1,3 +1,8 @@
2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
* opt-functions.awk (integer_range_info): Make sure values are in
numeric context before operating with them.
2019-09-08 Segher Boessenkool <segher@kernel.crashing.org>
* genemit.c (gen_split): Print the filename and line number where the

View file

@ -346,9 +346,10 @@ function search_var_name(name, opt_numbers, opts, flags, n_opts)
function integer_range_info(range_option, init, option)
{
if (range_option != "") {
start = nth_arg(0, range_option);
end = nth_arg(1, range_option);
if (init != "" && init != "-1" && (init < start || init > end))
ival = init + 0;
start = nth_arg(0, range_option) + 0;
end = nth_arg(1, range_option) + 0;
if (init != "" && init != "-1" && (ival < start || ival > end))
print "#error initial value " init " of '" option "' must be in range [" start "," end "]"
return start ", " end
}