--- old/src/os_cpu/linux_s390/vm/atomic_linux_s390.hpp 2017-08-17 13:30:06.938933001 -0400 +++ new/src/os_cpu/linux_s390/vm/atomic_linux_s390.hpp 2017-08-17 13:30:06.826927262 -0400 @@ -489,7 +489,7 @@ T cmp_val, cmpxchg_memory_order unused) const { STATIC_ASSERT(4 == sizeof(T)); - unsigned long old; + T old; __asm__ __volatile__ ( " CS %[old],%[upd],%[mem] \n\t" // Try to xchg upd with mem. @@ -503,7 +503,7 @@ : "cc" ); - return IntegerTypes::cast((uint32_t)old); + return old; } template<>