public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [pushed] analyzer: fix uses of alloca in testsuite
       [not found] <22c944dff18fc7afeb9c8acd1d1e5d05e2cc6312.camel@redhat.com>
@ 2023-02-01  2:27 ` David Malcolm
  2023-02-02  1:02   ` NightStrike
  0 siblings, 1 reply; 2+ messages in thread
From: David Malcolm @ 2023-02-01  2:27 UTC (permalink / raw)
  To: gcc-patches; +Cc: NightStrike, David Malcolm

Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
Pushed to trunk as r13-5615-gd03ae4be2c6d48.

gcc/testsuite/ChangeLog:
	* gcc.dg/analyzer/call-summaries-2.c: Add
	dg-require-effective-target alloca.
	* gcc.dg/analyzer/imprecise-floating-point-1.c: Likewise.
	* gcc.dg/analyzer/infinite-recursion-alloca.c: Likewise.
	* gcc.dg/analyzer/malloc-callbacks.c: Likewise.
	* gcc.dg/analyzer/out-of-bounds-5.c: Likewise.  Remove includes
	of <stdio.h> and <alloca.h>.  Use "__builtin_free" rather than
	"free", to match uses of "__builtin_malloc".
	* gcc.dg/analyzer/putenv-1.c: Add dg-require-effective-target
	alloca.
	* gcc.dg/analyzer/write-to-string-literal-5.c: Likewise.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
---
 gcc/testsuite/gcc.dg/analyzer/call-summaries-2.c         | 1 +
 .../gcc.dg/analyzer/imprecise-floating-point-1.c         | 2 ++
 .../gcc.dg/analyzer/infinite-recursion-alloca.c          | 2 ++
 gcc/testsuite/gcc.dg/analyzer/malloc-callbacks.c         | 2 ++
 gcc/testsuite/gcc.dg/analyzer/out-of-bounds-5.c          | 9 ++++-----
 gcc/testsuite/gcc.dg/analyzer/putenv-1.c                 | 1 +
 .../gcc.dg/analyzer/write-to-string-literal-5.c          | 1 +
 7 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/gcc/testsuite/gcc.dg/analyzer/call-summaries-2.c b/gcc/testsuite/gcc.dg/analyzer/call-summaries-2.c
index 22ca475b2ed..2d82d02e4e2 100644
--- a/gcc/testsuite/gcc.dg/analyzer/call-summaries-2.c
+++ b/gcc/testsuite/gcc.dg/analyzer/call-summaries-2.c
@@ -1,4 +1,5 @@
 /* { dg-additional-options "-fanalyzer-call-summaries --param analyzer-min-snodes-for-call-summary=0" } */
+/* { dg-require-effective-target alloca } */
 
 /* There need to be at least two calls to a function for the
    call-summarization code to be used.
diff --git a/gcc/testsuite/gcc.dg/analyzer/imprecise-floating-point-1.c b/gcc/testsuite/gcc.dg/analyzer/imprecise-floating-point-1.c
index d8a3f4884d6..7fe09fb826b 100644
--- a/gcc/testsuite/gcc.dg/analyzer/imprecise-floating-point-1.c
+++ b/gcc/testsuite/gcc.dg/analyzer/imprecise-floating-point-1.c
@@ -1,3 +1,5 @@
+/* { dg-require-effective-target alloca } */
+
 #include <stdlib.h>
 
 /* Tests warn on use of floating-point operands inside the calculation
diff --git a/gcc/testsuite/gcc.dg/analyzer/infinite-recursion-alloca.c b/gcc/testsuite/gcc.dg/analyzer/infinite-recursion-alloca.c
index 8c50631d8ce..87727e8ca25 100644
--- a/gcc/testsuite/gcc.dg/analyzer/infinite-recursion-alloca.c
+++ b/gcc/testsuite/gcc.dg/analyzer/infinite-recursion-alloca.c
@@ -1,3 +1,5 @@
+/* { dg-require-effective-target alloca } */
+
 typedef __SIZE_TYPE__ size_t;
 
 int test_alloca_1 (void)
diff --git a/gcc/testsuite/gcc.dg/analyzer/malloc-callbacks.c b/gcc/testsuite/gcc.dg/analyzer/malloc-callbacks.c
index c79f80d376d..cf3927fcaea 100644
--- a/gcc/testsuite/gcc.dg/analyzer/malloc-callbacks.c
+++ b/gcc/testsuite/gcc.dg/analyzer/malloc-callbacks.c
@@ -1,3 +1,5 @@
+/* { dg-require-effective-target alloca } */
+
 #include <stdlib.h>
 
 typedef void *(*allocator_t) (size_t);
diff --git a/gcc/testsuite/gcc.dg/analyzer/out-of-bounds-5.c b/gcc/testsuite/gcc.dg/analyzer/out-of-bounds-5.c
index eb6aae0f8cb..2a61d8ca236 100644
--- a/gcc/testsuite/gcc.dg/analyzer/out-of-bounds-5.c
+++ b/gcc/testsuite/gcc.dg/analyzer/out-of-bounds-5.c
@@ -1,9 +1,8 @@
 /* { dg-additional-options "-Wno-unused-but-set-variable" } */
+/* { dg-require-effective-target alloca } */
 
 #include <string.h>
-#include <stdio.h>
 #include <stdlib.h>
-#include <alloca.h>
 #include <stdint.h>
 
 /* Tests with symbolic values.  */
@@ -14,7 +13,7 @@ void test1 (size_t size)
   if (!buf) return;
 
   buf[size] = '\0'; /* { dg-warning "heap-based buffer overflow" } */
-  free (buf);
+  __builtin_free (buf);
 }
 
 void test2 (size_t size)
@@ -23,7 +22,7 @@ void test2 (size_t size)
   if (!buf) return;
 
   buf[size + 1] = '\0'; /* { dg-warning "heap-based buffer overflow" } */
-  free (buf);
+  __builtin_free (buf);
 }
 
 void test3 (size_t size, size_t op)
@@ -32,7 +31,7 @@ void test3 (size_t size, size_t op)
   if (!buf) return;
 
   buf[size + op] = '\0'; /* { dg-warning "heap-based buffer overflow" } */
-  free (buf);
+  __builtin_free (buf);
 }
 
 void test4 (size_t size, unsigned short s)
diff --git a/gcc/testsuite/gcc.dg/analyzer/putenv-1.c b/gcc/testsuite/gcc.dg/analyzer/putenv-1.c
index 4c3f0ae2e74..543121258c8 100644
--- a/gcc/testsuite/gcc.dg/analyzer/putenv-1.c
+++ b/gcc/testsuite/gcc.dg/analyzer/putenv-1.c
@@ -1,4 +1,5 @@
 /* { dg-additional-options "-Wno-analyzer-null-argument" } */
+/* { dg-require-effective-target alloca } */
 
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/gcc/testsuite/gcc.dg/analyzer/write-to-string-literal-5.c b/gcc/testsuite/gcc.dg/analyzer/write-to-string-literal-5.c
index b7ac4659012..42efc49fb22 100644
--- a/gcc/testsuite/gcc.dg/analyzer/write-to-string-literal-5.c
+++ b/gcc/testsuite/gcc.dg/analyzer/write-to-string-literal-5.c
@@ -2,6 +2,7 @@
    notes) works.  */
 
 /* { dg-additional-options "-fanalyzer-show-duplicate-count" } */
+/* { dg-require-effective-target alloca } */
 
 #include "analyzer-decls.h"
 
-- 
2.26.3


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [pushed] analyzer: fix uses of alloca in testsuite
  2023-02-01  2:27 ` [pushed] analyzer: fix uses of alloca in testsuite David Malcolm
@ 2023-02-02  1:02   ` NightStrike
  0 siblings, 0 replies; 2+ messages in thread
From: NightStrike @ 2023-02-02  1:02 UTC (permalink / raw)
  To: David Malcolm; +Cc: gcc-patches

On Tue, Jan 31, 2023 at 9:27 PM David Malcolm <dmalcolm@redhat.com> wrote:
>
> Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
> Pushed to trunk as r13-5615-gd03ae4be2c6d48.
>
> gcc/testsuite/ChangeLog:
>         * gcc.dg/analyzer/call-summaries-2.c: Add
>         dg-require-effective-target alloca.
>         * gcc.dg/analyzer/imprecise-floating-point-1.c: Likewise.
>         * gcc.dg/analyzer/infinite-recursion-alloca.c: Likewise.
>         * gcc.dg/analyzer/malloc-callbacks.c: Likewise.
>         * gcc.dg/analyzer/out-of-bounds-5.c: Likewise.  Remove includes
>         of <stdio.h> and <alloca.h>.  Use "__builtin_free" rather than
>         "free", to match uses of "__builtin_malloc".
>         * gcc.dg/analyzer/putenv-1.c: Add dg-require-effective-target
>         alloca.
>         * gcc.dg/analyzer/write-to-string-literal-5.c: Likewise.

Thanks for this fix, these all pass now on Windows.

I hope I'm not being pedantic, but there's still a remaining
inconsistency in that some parts of the test use memcpy (like test6),
and others use __builtin_memcpy (like test98).  There isn't a call to
__builtin_memset(), but there is a call to memset().  Maybe these
differences are intentional, though.  If they aren't, and you wanted
to reduce it further, you could remove string.h and use the builtins.
You could also include stddef.h instead of stdlib.h, if all you need
is size_t.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-02-02  1:02 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <22c944dff18fc7afeb9c8acd1d1e5d05e2cc6312.camel@redhat.com>
2023-02-01  2:27 ` [pushed] analyzer: fix uses of alloca in testsuite David Malcolm
2023-02-02  1:02   ` NightStrike

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).