From: Paul Floyd Date: Sat, 17 Feb 2024 12:34:16 +0000 (+0100) Subject: linux arm regtest: update memcheck partiallydefinedeq X-Git-Tag: VALGRIND_3_23_0~154 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b92c0259ff785876ec77a1d7c5a064dd61c25253;p=thirdparty%2Fvalgrind.git linux arm regtest: update memcheck partiallydefinedeq On my rpi 5 this only gives 2 errors, like s390. Haven't dug into the asm. --- diff --git a/memcheck/tests/partiallydefinedeq.c b/memcheck/tests/partiallydefinedeq.c index 79fd69854..8974f6431 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 8a331fe61..dbee8affb 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 e467626fe..dc56cd504 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 c980ded55..9fd53d668 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)