Two arguments are switched for -Wnonnull when
warning about array parameters with bounds > 0
and which are NULL.
This patch corrects the mistake.
Martin
2021-07-25 Martin Uecker
gcc/
* calls.c (maybe_warn_rdwr_sizes): Correct argument
numbers in warning that were switched.
gcc/testsuite/
* gcc.dg/Wnonnull-4.c: Correct argument numbers in warnings.
diff --git a/gcc/calls.c b/gcc/calls.c
index d2413a280cf..c54c57206c7 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -2128,8 +2128,8 @@ maybe_warn_rdwr_sizes (rdwr_map *rwm, tree fndecl, tree
fntype, tree exp)
"array %s is null but "
"the corresponding bound argument "
"%i value is %s",
- sizidx + 1, argtypestr.c_str (),
- ptridx + 1, sizstr))
+ ptridx + 1, argtypestr.c_str (),
+ sizidx + 1, sizstr))
arg_warned = OPT_Wnonnull;
}
else if (warning_at (loc, OPT_Wnonnull,
diff --git a/gcc/testsuite/gcc.dg/Wnonnull-4.c
b/gcc/testsuite/gcc.dg/Wnonnull-4.c
index 180a40d4606..2c1c45a9856 100644
--- a/gcc/testsuite/gcc.dg/Wnonnull-4.c
+++ b/gcc/testsuite/gcc.dg/Wnonnull-4.c
@@ -27,9 +27,9 @@ void test_fca_n (int r_m1)
T ( 0);
// Verify positive bounds.
- T ( 1); // { dg-warning "argument 1 of variable length array
'char\\\[n]' is null but
the corresponding bound argument 2 value is 1" }
- T ( 9); // { dg-warning "argument 1 of variable length array
'char\\\[n]' is null but
the corresponding bound argument 2 value is 9" }
- T (max); // { dg-warning "argument 1 of variable length array
'char\\\[n]' is null but
the corresponding bound argument 2 value is \\d+" }
+ T ( 1); // { dg-warning "argument 2 of variable length array
'char\\\[n]' is null but
the corresponding bound argument 1 value is 1" }
+ T ( 9); // { dg-warning "argument 2 of variable length array
'char\\\[n]' is null but
the corresponding bound argument 1 value is 9" }
+ T (max); // { dg-warning "argument 2 of variable length array
'char\\\[n]' is null but
the corresponding bound argument 1 value is \\d+" }
}
@@ -55,9 +55,9 @@ void test_fsa_x_n (int r_m1)
T ( 0);
// Verify positive bounds.
- T ( 1); // { dg-warning "argument 1 of variable length array
'short int\\\[]\\\[n]' is
null but the corresponding bound argument 2 value is 1" }
- T ( 9); // { dg-warning "argument 1 of variable length array
'short int\\\[]\\\[n]' is
null but the corresponding bound argument 2 value is 9" }
- T (max); // { dg-warning "argument 1 of variable length array
'short int\\\[]\\\[n]' is
null but the corresponding bound argument 2 value is \\d+" }
+ T ( 1); // { dg-warning "argument 2 of variable length array
'short int\\\[]\\\[n]' is
null but the corresponding bound argument 1 value is 1" }
+ T ( 9); // { dg-warning "argument 2 of variable length array
'short int\\\[]\\\[n]' is
null but the corresponding bound argument 1 value is 9" }
+ T (max); // { dg-warning "argument 2 of variable length array
'short int\\\[]\\\[n]' is
null but the corresponding bound argument 1 value is \\d+" }
}
@@ -83,9 +83,9 @@ void test_fia_1_n (int r_m1)
T ( 0);
// Verify positive bounds.
- T ( 1); // { dg-warning "argument 1 of variable length array
'int\\\[1]\\\[n]' is null
but the corresponding bound argument 2 value is 1" }
- T ( 9); // { dg-warning "argument 1 of variable length array
'int\\\[1]\\\[n]' is null
but the corresponding bound argument 2 value is 9" }
- T (max); // { dg-warning "argument 1 of variable length array
'int\\\[1]\\\[n]' is null
but the corresponding bound argument 2 value is \\d+" }
+ T ( 1); // { dg-warning "argument 2 of variable length array
'int\\\[1]\\\[n]' is null
but the corresponding bound argument 1 value is 1" }
+ T ( 9); // { dg-warning "argument 2 of variable length array
'int\\\[1]\\\[n]' is null
but the corresponding bound argument 1 value is 9" }
+ T (max); // { dg-warning "argument 2 of variable length array
'int\\\[1]\\\[n]' is null
but the corresponding bound argument 1 value is \\d+" }
}
@@ -111,9 +111,9 @@ void test_fla_3_n (int r_m1)
T ( 0);
// Verify positive bounds.
- T ( 1); // { dg-warning "argument 1 of variable length array 'long
int\\\[3]\\\[n]' is
null but the corresponding bound argument 2 value is 1" }
- T ( 9); // { dg-warning "argument 1 of variable length array 'long
int\\\[3]\\\[n]' is
null but the corresponding bound argument 2 value is 9" }
- T (max); // { dg-warning "argument 1 of variable length array 'long
int\\\[3]\\\[n]' is
null but the corresponding bound argument 2 value is \\d+" }
+ T (