diff mbox series

tree-optimization/105946 - avoid accessing excess args from uninit diag

Message ID 20220614105028.F0B7B3852746@sourceware.org
State New
Headers show
Series tree-optimization/105946 - avoid accessing excess args from uninit diag | expand

Commit Message

Richard Biener June 14, 2022, 10:49 a.m. UTC
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.

Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed.

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.
---
 gcc/tree-ssa-uninit.cc | 3 +++
 1 file changed, 3 insertions(+)
diff mbox series

Patch

diff --git a/gcc/tree-ssa-uninit.cc b/gcc/tree-ssa-uninit.cc
index b48fcf1a8ba..f326f1775c0 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;