Browse Source

ksh93: fix a compilation error on 32-bit system.

hyousatsu 4 months ago
parent
commit
76812a9115

+ 1 - 1
cde/programs/dtksh/ksh93/src/lib/libast/aso/aso.c

@@ -835,7 +835,7 @@ asocasptr(void volatile* p, void* o, void* n)
 
 #if defined(_aso_casptr)
 	if (!state.lockf)
-		return _aso_cas64((void**)p, o, n);
+		return _aso_casptr((void**)p, o, n);
 #endif
 	k = lock(state.data, 0, p);
 	if (*(void* volatile*)p == o)

+ 26 - 26
cde/programs/dtksh/ksh93/src/lib/libast/features/aso

@@ -24,9 +24,9 @@ if	aso note{ gcc 4.1+ 64 bit memory atomic operations model }end link{
 		#define _aso_inc64(p)		__sync_fetch_and_add(p,1)
 		#define _aso_dec64(p)		__sync_fetch_and_sub(p,1)
 		#if _ast_sizeof_pointer == 8
-		#define _aso_casptr(p,o,n)	((void*)__sync_val_compare_and_swap(p,(uint64_t)o,(uint64_t)n))
+		#define _aso_casptr(p,o,n)	((void*)__sync_val_compare_and_swap(p,o,n))
 		#else
-		#define _aso_casptr(p,o,n)	((void*)__sync_val_compare_and_swap(p,(uint32_t)o,(uint32_t)n))
+		#define _aso_casptr(p,o,n)	((void*)__sync_val_compare_and_swap(p,o,n))
 		#endif
 	}
 elif	aso note{ gcc 4.1+ 32 bit memory atomic operations model }end link{
@@ -48,7 +48,7 @@ elif	aso note{ gcc 4.1+ 32 bit memory atomic operations model }end link{
 		#define _aso_cas32(p,o,n)	__sync_val_compare_and_swap(p,o,n)
 		#define _aso_inc32(p)		__sync_fetch_and_add(p,1)
 		#define _aso_dec32(p)		__sync_fetch_and_sub(p,1)
-		#define _aso_casptr(p,o,n)	((void*)__sync_val_compare_and_swap(p,(uint32_t)o,(uint32_t)n))
+		#define _aso_casptr(p,o,n)	((void*)__sync_val_compare_and_swap(p,o,n))
 	}
 elif	aso note{ <atomic.h> atomic_cas_64 }end link{
 		#include "FEATURE/common"
@@ -74,9 +74,9 @@ elif	aso note{ <atomic.h> atomic_cas_64 }end link{
 		#define _aso_inc64(p)		(atomic_add_64_nv(p,1)-1)
 		#define _aso_dec64(p)		(atomic_add_64_nv(p,-1)+1)
 		#if _ast_sizeof_pointer == 8
-		#define _aso_casptr(p,o,n)	((void*)atomic_cas_64((uint64_t*)p,(uint64_t)o,(uint64_t)n))
+		#define _aso_casptr(p,o,n)	((void*)atomic_cas_64((uint64_t*)p,o,n))
 		#else
-		#define _aso_casptr(p,o,n)	((void*)atomic_cas_32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
+		#define _aso_casptr(p,o,n)	((void*)atomic_cas_32((uint32_t*)p,o,n))
 		#endif
 	}
 elif	aso note{ <atomic.h> atomic_cas_32 }end link{
@@ -98,7 +98,7 @@ elif	aso note{ <atomic.h> atomic_cas_32 }end link{
 		#define _aso_cas32(p,o,n)	atomic_cas_32(p,o,n)
 		#define _aso_inc32(p)		(atomic_add_32_nv(p,1)-1)
 		#define _aso_dec32(p)		(atomic_add_32_nv(p,-1)+1)
-		#define _aso_casptr(p,o,n)	((void*)atomic_cas_32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
+		#define _aso_casptr(p,o,n)	((void*)atomic_cas_32((uint32_t*)p,o,n))
 	}
 elif	aso -latomic note{ <atomic.h> atomic_cas_64 with -latomic }end link{
 		#include "FEATURE/common"
@@ -125,9 +125,9 @@ elif	aso -latomic note{ <atomic.h> atomic_cas_64 with -latomic }end link{
 		#define _aso_inc64(p)		(atomic_add_64_nv(p,1)-1)
 		#define _aso_dec64(p)		(atomic_add_64_nv(p,-1)+1)
 		#if _ast_sizeof_pointer == 8
-		#define _aso_casptr(p,o,n)	((void*)atomic_cas_64((uint64_t*)p,(uint64_t)o,(uint64_t)n))
+		#define _aso_casptr(p,o,n)	((void*)atomic_cas_64((uint64_t*)p,o,n))
 		#else
-		#define _aso_casptr(p,o,n)	((void*)atomic_cas_32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
+		#define _aso_casptr(p,o,n)	((void*)atomic_cas_32((uint32_t*)p,o,n))
 		#endif
 	}
 elif	aso note{ <atomic.h> atomic_cas_32 with -latomic }end link{
@@ -150,7 +150,7 @@ elif	aso note{ <atomic.h> atomic_cas_32 with -latomic }end link{
 		#define _aso_cas32(p,o,n)	atomic_cas_32(p,o,n)
 		#define _aso_inc32(p)		(atomic_add_32_nv(p,1)-1)
 		#define _aso_dec32(p)		(atomic_add_32_nv(p,-1)+1)
-		#define _aso_casptr(p,o,n)	((void*)atomic_cas_32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
+		#define _aso_casptr(p,o,n)	((void*)atomic_cas_32((uint32_t*)p,o,n))
 	}
 elif	aso note{ <atomic.h> cas64 }end link{
 		#include "FEATURE/common"
@@ -176,9 +176,9 @@ elif	aso note{ <atomic.h> cas64 }end link{
 		#define _aso_inc64(p)		(atomic_add_64_nv(p,1)-1)
 		#define _aso_dec64(p)		(atomic_add_64_nv(p,-1)+1)
 		#if _ast_sizeof_pointer == 8
-		#define _aso_casptr(p,o,n)	((void*)cas64((uint64_t*)p,(uint64_t)o,(uint64_t)n))
+		#define _aso_casptr(p,o,n)	((void*)cas64((uint64_t*)p,o,n))
 		#else
-		#define _aso_casptr(p,o,n)	((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
+		#define _aso_casptr(p,o,n)	((void*)cas32((uint32_t*)p,o,n))
 		#endif
 	}
 elif	aso note{ <atomic.h> just cas64 }end link{
@@ -199,9 +199,9 @@ elif	aso note{ <atomic.h> just cas64 }end link{
 		#define _aso_cas32(p,o,n)	cas32(p,o,n)
 		#define _aso_cas64(p,o,n)	cas64(p,o,n)
 		#if _ast_sizeof_pointer == 8
-		#define _aso_casptr(p,o,n)	((void*)cas64((uint64_t*)p,(uint64_t)o,(uint64_t)n))
+		#define _aso_casptr(p,o,n)	((void*)cas64((uint64_t*)p,o,n))
 		#else
-		#define _aso_casptr(p,o,n)	((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
+		#define _aso_casptr(p,o,n)	((void*)cas32((uint32_t*)p,o,n))
 		#endif
 	}
 elif	aso note{ <atomic.h> cas32 }end link{
@@ -223,7 +223,7 @@ elif	aso note{ <atomic.h> cas32 }end link{
 		#define _aso_cas32(p,o,n)	cas32(p,o,n)
 		#define _aso_inc32(p)		(atomic_add_32_nv(p,1)-1)
 		#define _aso_dec32(p)		(atomic_add_32_nv(p,-1)+1)
-		#define _aso_casptr(p,o,n)	((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
+		#define _aso_casptr(p,o,n)	((void*)cas32((uint32_t*)p,o,n))
 	}
 elif	aso note{ <atomic.h> just cas32 }end link{
 		#include "FEATURE/common"
@@ -240,7 +240,7 @@ elif	aso note{ <atomic.h> just cas32 }end link{
 		#define _aso_cas8(p,o,n)	cas8(p,o,n)
 		#define _aso_cas16(p,o,n)	cas16(p,o,n)
 		#define _aso_cas32(p,o,n)	cas32(p,o,n)
-		#define _aso_casptr(p,o,n)	((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
+		#define _aso_casptr(p,o,n)	((void*)cas32((uint32_t*)p,o,n))
 	}
 elif	aso note{ winix Interlocked }end link{
 		#include <windows.h>
@@ -261,7 +261,7 @@ elif	aso note{ winix Interlocked }end link{
 		#define _aso_cas64(p,o,n)	InterlockedCompareExchange64((LONGLONG volatile*)p,n,o)
 		#define _aso_inc64(p)		(InterlockedIncrement64((LONGLONG volatile*)p)-1)
 		#define _aso_dec64(p)		(InterlockedDecrement64((LONGLONG volatile*)p)+1)
-		#define _aso_casptr(p,o,n)	((void*)InterlockedCompareExchange64((LONGLONG volatile*)p,(LONGLONG)n,(LONGLONG)o))
+		#define _aso_casptr(p,o,n)	((void*)InterlockedCompareExchange64((LONGLONG volatile*)p,n,o))
 		#else
 		#if _BLD_posix
 		#include "dl.h"
@@ -345,7 +345,7 @@ elif	aso note{ winix Interlocked }end link{
 			return _aso_InterlockedDecrement64(p);
 		}
 		#endif
-		#define _aso_casptr(p,o,n)	((void*)InterlockedCompareExchange((LONG volatile*)p,(LONG)n,(LONG)o))
+		#define _aso_casptr(p,o,n)	((void*)InterlockedCompareExchange((LONG volatile*)p,n,o))
 		#endif
 	}
 elif	aso note{ AIX fetch and add }end link{
@@ -361,9 +361,9 @@ elif	aso note{ AIX fetch and add }end link{
 		#define _aso_decint(p)		fetch_and_add((atomic_p)p,-1)
 		#define _aso_casint(p,o,n)	(compare_and_swap((atomic_p)p,(int*)&o,(int)n) ? o : *p)
 		#if _ast_sizeof_pointer == 8
-		#define _aso_casptr(p,o,n)	(compare_and_swaplp((atomic_l)p,(long*)&o,(long)n) ? o : *(void**)p)
+		#define _aso_casptr(p,o,n)	(compare_and_swaplp((atomic_l)p,(long*)&o,n) ? o : *(void**)p)
 		#else
-		#define _aso_casptr(p,o,n)	(compare_and_swap((atomic_p)p,(int*)&o,(int)n) ? o : *(void**)p)
+		#define _aso_casptr(p,o,n)	(compare_and_swap((atomic_p)p,(int*)&o,n) ? o : *(void**)p)
 		#endif
 	}
 elif	aso note{ MIPS compare and swap }end link{
@@ -374,7 +374,7 @@ elif	aso note{ MIPS compare and swap }end link{
 		}
 	}end && {
 		#define _aso_cas32(p,o,n)	(__compare_and_swap(p,o,n) ? o : *p)
-		#define _aso_casptr(p,o,n)	(__compare_and_swap((long*)p,(long)o,(long)n) ? o : *(void**)p)
+		#define _aso_casptr(p,o,n)	(__compare_and_swap((long*)p,o,n) ? o : *(void**)p)
 	}
 elif	aso note{ i386|i386-64 asm compare and swap }end link{
 		#include "FEATURE/common"
@@ -457,9 +457,9 @@ elif	aso note{ i386|i386-64 asm compare and swap }end link{
 		#define _aso_cas32(p,o,n)	cas32(p,o,n)
 		#if _ast_sizeof_pointer == 8
 		#define _aso_cas64(p,o,n)	cas64(p,o,n)
-		#define _aso_casptr(p,o,n)	((void*)cas64((uint64_t*)p,(uint64_t)o,(uint64_t)n))
+		#define _aso_casptr(p,o,n)	((void*)cas64((uint64_t*)p,o,n))
 		#else
-		#define _aso_casptr(p,o,n)	((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
+		#define _aso_casptr(p,o,n)	((void*)cas32((uint32_t*)p,o,n))
 		#endif
 	}
 elif	aso note{ ia64 asm compare and swap }end link{
@@ -527,9 +527,9 @@ elif	aso note{ ia64 asm compare and swap }end link{
 		#define _aso_cas32(p,o,n)	cas32(p,o,n)
 		#define _aso_cas64(p,o,n)	cas64(p,o,n)
 		#if _ast_sizeof_pointer == 8
-		#define _aso_casptr(p,o,n)	((void*)cas64((uint64_t*)p,(uint64_t)o,(uint64_t)n))
+		#define _aso_casptr(p,o,n)	((void*)cas64((uint64_t*)p,o,n))
 		#else
-		#define _aso_casptr(p,o,n)	((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
+		#define _aso_casptr(p,o,n)	((void*)cas32((uint32_t*)p,o,n))
 		#endif
 	}
 elif	aso note{ ppc asm compare and swap }end link{
@@ -625,9 +625,9 @@ elif	aso note{ ppc asm compare and swap }end link{
 		#define _aso_cas32(p,o,n)	cas32(p,o,n)
 		#define _aso_cas64(p,o,n)	cas64(p,o,n)
 		#if _ast_sizeof_pointer == 8
-		#define _aso_casptr(p,o,n)	((void*)cas64((uint64_t*)p,(uint64_t)o,(uint64_t)n))
+		#define _aso_casptr(p,o,n)	((void*)cas64((uint64_t*)p,o,n))
 		#else
-		#define _aso_casptr(p,o,n)	((void*)cas32((uint32_t*)p,(uint32_t)o,(uint32_t)n))
+		#define _aso_casptr(p,o,n)	((void*)cas32((uint32_t*)p,o,n))
 		#endif
 	}
 endif