asan_oob_test.cc: Skip OOB_int on SPARC.
* g++.dg/asan/asan_oob_test.cc: Skip OOB_int on SPARC. * g++.dg/asan/function-argument-3.C: Tweak for 32-bit SPARC. From-SVN: r268951
This commit is contained in:
parent
34c5627c9c
commit
9695618899
3 changed files with 23 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* g++.dg/asan/asan_oob_test.cc: Skip OOB_int on SPARC.
|
||||
* g++.dg/asan/function-argument-3.C: Tweak for 32-bit SPARC.
|
||||
|
||||
2019-02-15 Tamar Christina <tamar.christina@arm.com>
|
||||
|
||||
* lib/target-supports.exp
|
||||
|
|
|
@ -68,9 +68,13 @@ TEST(AddressSanitizer, OOB_char) {
|
|||
OOBTest<U1>();
|
||||
}
|
||||
|
||||
// The following test uses unaligned memory accesses
|
||||
|
||||
#if !defined(__sparc__)
|
||||
TEST(AddressSanitizer, OOB_int) {
|
||||
OOBTest<U4>();
|
||||
}
|
||||
#endif
|
||||
|
||||
TEST(AddressSanitizer, OOBRightTest) {
|
||||
for (size_t access_size = 1; access_size <= 8; access_size *= 2) {
|
||||
|
|
|
@ -2,7 +2,16 @@
|
|||
// { dg-shouldfail "asan" }
|
||||
// { dg-additional-options "-Wno-psabi" }
|
||||
|
||||
// On SPARC 32-bit, only vectors up to 8 bytes are passed in registers
|
||||
#if defined(__sparc__) && !defined(__sparcv9) && !defined(__arch64__)
|
||||
#define SMALL_VECTOR
|
||||
#endif
|
||||
|
||||
#ifdef SMALL_VECTOR
|
||||
typedef int v4si __attribute__ ((vector_size (8)));
|
||||
#else
|
||||
typedef int v4si __attribute__ ((vector_size (16)));
|
||||
#endif
|
||||
|
||||
static __attribute__ ((noinline)) int
|
||||
goo (v4si *a)
|
||||
|
@ -19,10 +28,14 @@ foo (v4si arg)
|
|||
int
|
||||
main ()
|
||||
{
|
||||
#ifdef SMALL_VECTOR
|
||||
v4si v = {1,2};
|
||||
#else
|
||||
v4si v = {1,2,3,4};
|
||||
#endif
|
||||
return foo (v);
|
||||
}
|
||||
|
||||
// { dg-output "ERROR: AddressSanitizer: stack-buffer-overflow on address.*(\n|\r\n|\r)" }
|
||||
// { dg-output "READ of size . at.*" }
|
||||
// { dg-output ".*'arg' \\(line 14\\) <== Memory access at offset \[0-9\]* overflows this variable.*" }
|
||||
// { dg-output ".*'arg' \\(line 23\\) <== Memory access at offset \[0-9\]* overflows this variable.*" }
|
||||
|
|
Loading…
Add table
Reference in a new issue