Thanks for pushing this. The patch triggered a (known) regression on g++.dg/warn/Wstringop-overflow-4.C. In the original submission I mentioned I would XFAIL it, but forgot to do so. I have pushed the attached patch.
Note that since this was the last user of EVRP, I think it is now safe to remove its code, along with any options on params.def. Andrew, are you OK with removing the legacy evrp code (gimple-ssa-evrp-analyze.*, and any relevant bits)? Of course, the core VRP code would still remain, as VRP1 still uses it. Aldy On Sun, Jun 26, 2022 at 1:08 AM Jeff Law <jeffreya...@gmail.com> wrote: > > This is 99.99% Aldy's work. My only real contribution was twiddling one > MIPS specific test in response to a regression after adding this patch > to my tester. > > In simplest terms, this patch converts DOM to use the Ranger > infrastructure rather than the EVRP infrastructure. I'd basically > approved it before Aldy went on PTO and it's been sitting in my tester > ever since. So I figured it was time to go ahead and push it. > > Jeff
From 80ace9185dc534e4d6cb19506300c4fcad4bd916 Mon Sep 17 00:00:00 2001 From: Aldy Hernandez <al...@redhat.com> Date: Sun, 26 Jun 2022 17:30:18 +0200 Subject: [PATCH] XFAIL a test in g++.dg/warn/Wstringop-overflow-4.C As per the explanation in the test, and in the DOM conversion to ranger patch, this is a known regression. I had mentioned I would XFAIL this test, but forgot to do so. There is an analysis in the test itself as to what is going on. Tested on x86-64 Linux. gcc/testsuite/ChangeLog: * g++.dg/warn/Wstringop-overflow-4.C: XFAIL a test. --- gcc/testsuite/g++.dg/warn/Wstringop-overflow-4.C | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/testsuite/g++.dg/warn/Wstringop-overflow-4.C b/gcc/testsuite/g++.dg/warn/Wstringop-overflow-4.C index eb4801918fc..c9d63932977 100644 --- a/gcc/testsuite/g++.dg/warn/Wstringop-overflow-4.C +++ b/gcc/testsuite/g++.dg/warn/Wstringop-overflow-4.C @@ -195,7 +195,7 @@ void test_strcpy_new_int16_t (size_t n, const size_t vals[]) iftmp.2_33 = _45 * 2; ;; iftmp.2_33 = 0 _34 = operator new [] (iftmp.2_33); ;; new [] (0) */ - T (S (2), new int16_t[r_dmin_dmax + 1]); + T (S (2), new int16_t[r_dmin_dmax + 1]); // { dg-bogus "into a region of size" "" { xfail *-*-*} } T (S (9), new int16_t[r_dmin_dmax * 2 + 1]); } -- 2.36.1