As noted in the BZ, this test has been compromised by Martin's changes in <vector>.
I contemplated turning the test into pure C code, but that turns out not to be a terribly useful thing to do. I also contemplated gathering the CPP output prior to Martin's changes and using that for the test. But that runs the high probability of bit rotting over time. I could have also created a private <vector> without Martin's changes, but it just doesn't seem to be worth the effort. I considered re-purposing the test to verify Martin's changes were effective, but his commit has reasonable tests for this already. So I'm declaring the test compromised and removing it. Jeff
commit 2ab3b98c5cc2a63d25198d5a78e037b1465bd415 Author: law <law@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Mon Dec 18 18:13:20 2017 +0000 PR middle-end/83460 * g++.dg/pr79095-4.C: Remove compromised test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@255784 138bc75d-0d04-0410-961f-82ee72b054a4 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0963f4ec961..6e64c42cd0c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-12-18 Jeff Law <l...@redhat.com> + + PR middle-end/83460 + * g++.dg/pr79095-4.C: Remove compromised test. + 2017-12-18 Jakub Jelinek <ja...@redhat.com> PR c++/83300 diff --git a/gcc/testsuite/g++.dg/pr79095-4.C b/gcc/testsuite/g++.dg/pr79095-4.C deleted file mode 100644 index df550257465..00000000000 --- a/gcc/testsuite/g++.dg/pr79095-4.C +++ /dev/null @@ -1,26 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-Wall -O3 -fdump-tree-vrp2" } */ - -#include <vector> - -void foo(std::vector<unsigned int> &v); - -void vtest() -{ - std::vector<unsigned int> v; - foo (v); - { - v.resize (v.size()-1); - } -} - -/* As written this testcase should trigger a warning. We overflow to -1U - if v.size() == 0 in foo(). This results in bogus calls to memset. - - The number of clearing loops in the IL can vary depending on the C++ - mode used for the test. But by the end of VRP2, there should be a single - clearing loop left and it should be using memcpy. */ -/* { dg-final { scan-tree-dump-times "__builtin_memset \\(_\[0-9\]+, 0, \[0-9\]+\\)" 1 "vrp2" } } */ - -/* And that call should trigger a warning. */ -/* { dg-warning "exceeds maximum object size" "" { target *-*-* } 0 } */