mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-03 01:51:29 +00:00
Anticipate testcase problems with GCC 12
There will be a lot more to come. On amd64 Linux In faultstatus was seeing the division by zero and emitting a ud2 opcode. In wrap3 a pair of mutually recursive functions were being inlined. When forced not to be inlined GCC merged them into a single function. It cannot see that the client requests have diffeent behaviour.
This commit is contained in:
parent
01e05ea81c
commit
49fe0dc74a
@ -5,17 +5,19 @@
|
||||
/* Check that function wrapping works for a mutually recursive
|
||||
pair. */
|
||||
|
||||
static int fact1 ( int n );
|
||||
static int fact2 ( int n );
|
||||
int fact1 ( int n );
|
||||
int fact2 ( int n );
|
||||
|
||||
/* This is needed to stop gcc4 turning 'fact' into a loop */
|
||||
__attribute__((noinline))
|
||||
int mul ( int x, int y ) { return x * y; }
|
||||
|
||||
__attribute((noinline))
|
||||
int fact1 ( int n )
|
||||
{
|
||||
if (n == 0) return 1; else return mul(n, fact2(n-1));
|
||||
}
|
||||
__attribute((noinline))
|
||||
int fact2 ( int n )
|
||||
{
|
||||
if (n == 0) return 1; else return mul(n, fact1(n-1));
|
||||
|
||||
@ -190,7 +190,9 @@ int main()
|
||||
return 0;
|
||||
}
|
||||
|
||||
static volatile s_zero;
|
||||
|
||||
static int zero()
|
||||
{
|
||||
return 0;
|
||||
return s_zero;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user