From b92c0259ff785876ec77a1d7c5a064dd61c25253 Mon Sep 17 00:00:00 2001 From: Paul Floyd Date: Sat, 17 Feb 2024 13:34:16 +0100 Subject: [PATCH] linux arm regtest: update memcheck partiallydefinedeq On my rpi 5 this only gives 2 errors, like s390. Haven't dug into the asm. --- memcheck/tests/partiallydefinedeq.c | 10 ++++++---- memcheck/tests/partiallydefinedeq.stderr.exp2 | 2 +- memcheck/tests/partiallydefinedeq.stderr.exp3 | 2 +- memcheck/tests/partiallydefinedeq.stderr.exp4 | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/memcheck/tests/partiallydefinedeq.c b/memcheck/tests/partiallydefinedeq.c index 79fd69854b..8974f6431f 100644 --- a/memcheck/tests/partiallydefinedeq.c +++ b/memcheck/tests/partiallydefinedeq.c @@ -64,16 +64,18 @@ int main ( void ) // and so never appears as a literal, and so the instrumenter // never spots it and so doesn't use the expensive scheme (for foo). // Hence also on ARM we get 3 errors, not 2. +// PJF 2024 this no longer seems to be the case. +// // // s390x is even more complicated: Depending on the architecture // level we have the 0x80808080 either in the literal pool (3 errors) // or with the extended immediate facility in an instruction (2 errors). static __attribute__((noinline)) void bar ( void ) { -#if defined(__powerpc__) || defined(__powerpc64__) || defined(__arm__) - fprintf(stderr, "Currently running on ppc32/64/arm: this test should give 3 errors, not 2.\n"); +#if defined(__powerpc__) || defined(__powerpc64__) + fprintf(stderr, "Currently running on ppc32/64: this test should give 3 errors, not 2.\n"); #endif -#if defined(__s390__) - fprintf(stderr, "On s390 we might see 2 or 3 errors.\n"); +#if defined(__s390__) || defined(__arm__) + fprintf(stderr, "On s390/arm we might see 2 or 3 errors.\n"); #endif } diff --git a/memcheck/tests/partiallydefinedeq.stderr.exp2 b/memcheck/tests/partiallydefinedeq.stderr.exp2 index 8a331fe61f..dbee8affbd 100644 --- a/memcheck/tests/partiallydefinedeq.stderr.exp2 +++ b/memcheck/tests/partiallydefinedeq.stderr.exp2 @@ -1,5 +1,5 @@ -Currently running on ppc32/64/arm: this test should give 3 errors, not 2. +Currently running on ppc32/64: this test should give 3 errors, not 2. Conditional jump or move depends on uninitialised value(s) at 0x........: foo (partiallydefinedeq.c:15) by 0x........: main (partiallydefinedeq.c:37) diff --git a/memcheck/tests/partiallydefinedeq.stderr.exp3 b/memcheck/tests/partiallydefinedeq.stderr.exp3 index e467626fe7..dc56cd5041 100644 --- a/memcheck/tests/partiallydefinedeq.stderr.exp3 +++ b/memcheck/tests/partiallydefinedeq.stderr.exp3 @@ -1,5 +1,5 @@ -On s390 we might see 2 or 3 errors. +On s390/arm we might see 2 or 3 errors. Conditional jump or move depends on uninitialised value(s) at 0x........: foo (partiallydefinedeq.c:15) by 0x........: main (partiallydefinedeq.c:37) diff --git a/memcheck/tests/partiallydefinedeq.stderr.exp4 b/memcheck/tests/partiallydefinedeq.stderr.exp4 index c980ded550..9fd53d6685 100644 --- a/memcheck/tests/partiallydefinedeq.stderr.exp4 +++ b/memcheck/tests/partiallydefinedeq.stderr.exp4 @@ -1,5 +1,5 @@ -On s390 we might see 2 or 3 errors. +On s390/arm we might see 2 or 3 errors. Conditional jump or move depends on uninitialised value(s) at 0x........: foo (partiallydefinedeq.c:15) by 0x........: main (partiallydefinedeq.c:37) -- 2.47.2