diff options
author | Richard Biener <rguenther@suse.de> | 2022-06-14 11:10:13 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2022-06-14 12:52:49 +0200 |
commit | e07a876c07601e1f3a27420f7d055d20193c362c (patch) | |
tree | 62a5f28fc39366fd4d5c94cc457fa33e178abf9b | |
parent | 90467f0ad649d0817f9e034596a0fb85605b55af (diff) | |
download | gcc-e07a876c07601e1f3a27420f7d055d20193c362c.zip gcc-e07a876c07601e1f3a27420f7d055d20193c362c.tar.gz gcc-e07a876c07601e1f3a27420f7d055d20193c362c.tar.bz2 |
tree-optimization/105946 - avoid accessing excess args from uninit diag
uninit diagnostics uses passing via reference and access attributes
but that iterates over function type arguments which can in some
cases appearantly outrun the actual arguments leading to ICEs.
The following simply ignores not present arguments.
2022-06-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/105946
* tree-ssa-uninit.cc (maybe_warn_pass_by_reference):
Do not look at arguments not specified in the function call.
-rw-r--r-- | gcc/tree-ssa-uninit.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/tree-ssa-uninit.cc b/gcc/tree-ssa-uninit.cc index b48fcf1..f326f17 100644 --- a/gcc/tree-ssa-uninit.cc +++ b/gcc/tree-ssa-uninit.cc @@ -797,6 +797,9 @@ maybe_warn_pass_by_reference (gcall *stmt, wlimits &wlims) { ++argno; + if (argno > nargs) + break; + if (!POINTER_TYPE_P (argtype)) continue; |