From: Martin Sebor Date: Wed, 10 Feb 2021 21:42:22 +0000 (-0700) Subject: Add test for PR tree-optimization/92879. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=21c6ad7a12fecc4c85ac26289d9096379b550585;p=gcc.git Add test for PR tree-optimization/92879. gcc/testsuite/ChangeLog: PR tree-optimization/92879 * g++.dg/warn/Warray-bounds-16.C: New test. --- diff --git a/gcc/testsuite/g++.dg/warn/Warray-bounds-16.C b/gcc/testsuite/g++.dg/warn/Warray-bounds-16.C new file mode 100644 index 00000000000..17b4d0d194e --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/Warray-bounds-16.C @@ -0,0 +1,29 @@ +/* PR tree-optimization/92879 - incorrect warning of __builtin_memset + offset is out of the bounds on zero-size allocation and initialization + { dg-do compile } + { dg-options "-O2 -Wall -fdump-tree-optimized" } */ + +inline void* operator new (__SIZE_TYPE__, void * v) +{ + return v; +} + +struct S +{ + int* p; + int m; + + S (int i) + { + m = i; + p = (int*) new unsigned char [sizeof (int) * m]; + + for (int i = 0; i < m; i++) + new (p + i) int (); + } +}; + +S a (0); + +/* Verify the loop has been eliminated. + { dg-final { scan-tree-dump-not "goto" "optimized" } } */