PR testsuite/83303 - FAIL: g++.dg/opt/new1.C on arm-none-eabi
authorMartin Sebor <msebor@redhat.com>
Wed, 6 Dec 2017 19:22:55 +0000 (19:22 +0000)
committerMartin Sebor <msebor@gcc.gnu.org>
Wed, 6 Dec 2017 19:22:55 +0000 (12:22 -0700)
PR testsuite/83303 - FAIL: g++.dg/opt/new1.C on arm-none-eabi
(extra -Walloc-size-larger-than warning

* g++.dg/opt/new1.C: Prune warning from test output.

From-SVN: r255450

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/opt/new1.C

index 782e04d3639771d2dc75f22cf90b47ab3bb425b0..3ad19f056ec93b4279e001b50371b30c8fa14903 100644 (file)
@@ -9,6 +9,9 @@
 
 2017-12-06  Martin Sebor  <msebor@redhat.com>
 
+       PR testsuite/83303
+       * g++.dg/opt/new1.C: Prune warning from test output.
+
        PR tree-optimization/82646
        * gcc.dg/builtin-stringop-chk-1.c: Adjust.
        * gcc.dg/builtin-stringop-chk-9.c: New test.
index d0f7d95b655e46f70efdf6f91f10732bfc8bd308..22bd5c3920a21b05452f8841b3a742598eb27f7c 100644 (file)
@@ -1,4 +1,4 @@
-// PR c++/39367
+// PR c++/39367 - ICE at tree-inline.c:1042 with -O
 // { dg-options "-O" }
 
 class QScriptEnginePrivate;
@@ -37,6 +37,11 @@ template <typename T> void QScript::Buffer<T>::resize(int s) {
       reserve (s << 1);
 }
 template <typename T> void QScript::Buffer<T>::reserve(int x) {
+    /* The following may be optimized into a trap because the function
+       is called from resize(0) and so with m_capacity < 0.  When not
+       optimized it may trigger -Walloc-size-larger-than= since
+       operator new() is called with an excessively large value.
+       The warning is pruned from the test output below.  */
     T *new_data = new T[m_capacity];
     for (int i=0; i<m_size; ++i)
       new_data[i] = m_data[i];
@@ -69,3 +74,5 @@ namespace QScript {
           }
     }
 }
+
+// { dg-prune-output "\\\[-Walloc-size-larger-than=]" }