[pushed] testsuite: fix ASAN errors

Message ID da70f68f-50e1-1370-4c68-ed62a572bca2@suse.cz
State Committed
Headers
Series [pushed] testsuite: fix ASAN errors |

Commit Message

Martin Liška Dec. 14, 2021, 2:49 p.m. UTC
  The tests failed on my machine as they contain out-of-bounds
access.

I'm going to push the fix.

Martin

gcc/testsuite/ChangeLog:

	* gcc.target/i386/avx2-psraq-1.c: Use ARRAY_SIZE.
	* gcc.target/i386/m128-check.h: Move it to the top-level
	context.
	* gcc.target/i386/sse2-psraq-1.c: Use ARRAY_SIZE.
	* gcc.target/i386/sse4_2-check.h: Include the header with
	ARRAY_SIZE definition.
---
  gcc/testsuite/gcc.target/i386/avx2-psraq-1.c | 2 +-
  gcc/testsuite/gcc.target/i386/m128-check.h   | 8 ++++----
  gcc/testsuite/gcc.target/i386/sse2-psraq-1.c | 2 +-
  gcc/testsuite/gcc.target/i386/sse4_2-check.h | 1 +
  4 files changed, 7 insertions(+), 6 deletions(-)
  

Patch

diff --git a/gcc/testsuite/gcc.target/i386/avx2-psraq-1.c b/gcc/testsuite/gcc.target/i386/avx2-psraq-1.c
index e9051bf9fcb..96e5c4ccf76 100644
--- a/gcc/testsuite/gcc.target/i386/avx2-psraq-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx2-psraq-1.c
@@ -41,7 +41,7 @@  TEST (void)
    V a = (V) { 0xdeadbeefcafebabeULL, 0x123456789abcdef0ULL,
  	      0x173a74be8a95134cULL, 0x817bae35ac0ebf12ULL };
    int i;
-  for (i = 0; tests[i].n; i++)
+  for (i = 0; i < ARRAY_SIZE (tests); i++)
      {
        V c = tests[i].fn (a);
        if (c[0] != a[0] >> tests[i].n || c[1] != a[1] >> tests[i].n
diff --git a/gcc/testsuite/gcc.target/i386/m128-check.h b/gcc/testsuite/gcc.target/i386/m128-check.h
index c468eac6a13..e90e1f02d32 100644
--- a/gcc/testsuite/gcc.target/i386/m128-check.h
+++ b/gcc/testsuite/gcc.target/i386/m128-check.h
@@ -1,6 +1,10 @@ 
  #include <stdio.h>
  #include <xmmintrin.h>
  
+#ifndef ARRAY_SIZE
+#define ARRAY_SIZE(A) (sizeof (A) / sizeof ((A)[0]))
+#endif
+
  #ifdef __SSE2__
  #include <emmintrin.h>
  
@@ -66,10 +70,6 @@  typedef union
    float a[4];
  } union128;
  
-#ifndef ARRAY_SIZE
-#define ARRAY_SIZE(A) (sizeof (A) / sizeof ((A)[0]))
-#endif
-
  #ifdef DEBUG
  #define PRINTF printf
  #else
diff --git a/gcc/testsuite/gcc.target/i386/sse2-psraq-1.c b/gcc/testsuite/gcc.target/i386/sse2-psraq-1.c
index 9a08ee4f7fa..dfb0bb8435f 100644
--- a/gcc/testsuite/gcc.target/i386/sse2-psraq-1.c
+++ b/gcc/testsuite/gcc.target/i386/sse2-psraq-1.c
@@ -41,7 +41,7 @@  TEST (void)
    V a = (V) { 0xdeadbeefcafebabeULL, 0x123456789abcdef0ULL };
    V b = (V) { 0x173a74be8a95134cULL, 0x817bae35ac0ebf12ULL };
    int i;
-  for (i = 0; tests[i].n; i++)
+  for (i = 0; i < ARRAY_SIZE (tests); i++)
      {
        V c = tests[i].fn (a);
        if (c[0] != a[0] >> tests[i].n || c[1] != a[1] >> tests[i].n)
diff --git a/gcc/testsuite/gcc.target/i386/sse4_2-check.h b/gcc/testsuite/gcc.target/i386/sse4_2-check.h
index d10e6c7d7e2..c33cd1b4986 100644
--- a/gcc/testsuite/gcc.target/i386/sse4_2-check.h
+++ b/gcc/testsuite/gcc.target/i386/sse4_2-check.h
@@ -1,6 +1,7 @@ 
  #include <stdio.h>
  #include <stdlib.h>
  
+#include "m128-check.h"
  #include "cpuid.h"
  
  static void sse4_2_test (void);