testsuite/110763: Ensure zero return from test

Message ID 20230721151626.67206-1-siddhesh@gotplt.org
State Accepted
Headers
Series testsuite/110763: Ensure zero return from test |

Checks

Context Check Description
snail/gcc-patch-check success Github commit url

Commit Message

Siddhesh Poyarekar July 21, 2023, 3:16 p.m. UTC
  The test deliberately reads beyond bounds to exersize ubsan and the
return value may be anything, based on previous allocations.  The OFF
test caters for it by ANDing the return with 0, do the same for the DYN
test.

gcc/testsuite/ChangeLog:

	PR testsuite/110763
	* gcc.dg/ubsan/object-size-dyn.c (dyn): New parameter RET.
	(main): Use it.

Signed-off-by: Siddhesh Poyarekar <siddhesh@gotplt.org>
---
 gcc/testsuite/gcc.dg/ubsan/object-size-dyn.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
  

Comments

Jeff Law July 22, 2023, 5:05 a.m. UTC | #1
On 7/21/23 09:16, Siddhesh Poyarekar wrote:
> The test deliberately reads beyond bounds to exersize ubsan and the
> return value may be anything, based on previous allocations.  The OFF
> test caters for it by ANDing the return with 0, do the same for the DYN
> test.
> 
> gcc/testsuite/ChangeLog:
> 
> 	PR testsuite/110763
> 	* gcc.dg/ubsan/object-size-dyn.c (dyn): New parameter RET.
> 	(main): Use it.
OK
jeff
  

Patch

diff --git a/gcc/testsuite/gcc.dg/ubsan/object-size-dyn.c b/gcc/testsuite/gcc.dg/ubsan/object-size-dyn.c
index 0159f5b9820..49c3abe2e72 100644
--- a/gcc/testsuite/gcc.dg/ubsan/object-size-dyn.c
+++ b/gcc/testsuite/gcc.dg/ubsan/object-size-dyn.c
@@ -5,12 +5,12 @@ 
 
 int
 __attribute__ ((noinline))
-dyn (int size, int i)
+dyn (int size, int i, int ret)
 {
   __builtin_printf ("dyn\n");
   fflush (stdout);
   int *alloc = __builtin_calloc (size, sizeof (int));
-  int ret = alloc[i];
+  ret = ret & alloc[i];
   __builtin_free (alloc);
   return ret;
 }
@@ -28,7 +28,7 @@  off (int size, int i, int ret)
 int
 main (void)
 {
-  int ret = dyn (2, 2);
+  int ret = dyn (2, 2, 0);
 
   ret |= off (4, 4, 0);