Bug#13030056 62533: UNITTEST/MYSYS/MY_ATOMIC-T.C DOES NOT
COMPILE ON MACOSX LION The problem was that on optimized builds, the wrong code was generated for my_atomic_add64 if a variable argument was optimized away as a constant. This patch fixes the problem by making the variable volatile. Another workaround is to specify architecture explicitly using e.g. CFLAGS/CXXFLAGS= "-m64". No test case added.
This commit is contained in:
parent
37de3c2c0b
commit
c01c37a7ef
@ -164,7 +164,14 @@ void do_tests()
|
||||
test_concurrently("my_atomic_cas32", test_atomic_cas, THREADS, CYCLES);
|
||||
|
||||
{
|
||||
int64 b=0x1000200030004000LL;
|
||||
/*
|
||||
If b is not volatile, the wrong assembly code is generated on OSX Lion
|
||||
as the variable is optimized away as a constant.
|
||||
See Bug#62533 / Bug#13030056.
|
||||
Another workaround is to specify architecture explicitly using e.g.
|
||||
CFLAGS/CXXFLAGS= "-m64".
|
||||
*/
|
||||
volatile int64 b=0x1000200030004000LL;
|
||||
a64=0;
|
||||
my_atomic_add64(&a64, b);
|
||||
ok(a64==b, "add64");
|
||||
|
Loading…
x
Reference in New Issue
Block a user