[AArch64] Fix strict aliasing issue in gcc.target/aarch64/simd/vminmaxnm_1.c
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Tue, 4 Jul 2017 15:19:30 +0000 (15:19 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Tue, 4 Jul 2017 15:19:30 +0000 (15:19 +0000)
commita4187dab5248cb42781fa6b2f57b95214c4f8b03
tree310ea9d605948ad95674b68d4a99d9ea310e4723
parent5006165236a38c35040a76e676a7ba134e71aa67
[AArch64] Fix strict aliasing issue in gcc.target/aarch64/simd/vminmaxnm_1.c

While doing some unrelated work the gcc.target/aarch64/simd/vminmaxnm_1.c testcase started failing for me.
Upon investigation it turns out that it breaks the C strict aliasing rules in the CHECK macro by casting
a pointer to an incompatible type and dereferencing it. GCC even warns about it if compiled with -Wstrict-aliasing.

This patch fixes the testcase by making it use memcmp to compare the vector elements.
This avoids the undefined behaviour.

The testcase still passes on trunk.

    * gcc.target/aarch64/simd/vminmaxnm_1.c: Fix strict aliasing issues.

From-SVN: r249972
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/simd/vminmaxnm_1.c