mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Fix some 64-bit sparc build warnings.
* sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c (__makecontext): Fix signedness of pointer casts setting up 'sp'. * sysdeps/unix/sysv/linux/sparc/sysdep.h (INLINE_SYSCALL) Use 'long' for 'resultvar' otherwise things get truncated on 64-bit.
This commit is contained in:
@ -29,9 +29,9 @@ __makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
|
||||
va_list ap;
|
||||
int i;
|
||||
|
||||
sp = (long *) ((long) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);
|
||||
sp = (unsigned long *) ((long) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);
|
||||
sp -= (argc > 6 ? argc : 6) + 32;
|
||||
sp = (long *) (((long) sp) & -16L);
|
||||
sp = (unsigned long *) (((long) sp) & -16L);
|
||||
topsp = sp + (argc > 6 ? argc : 6) + 16;
|
||||
|
||||
ucp->uc_mcontext.mc_gregs[MC_PC] = (long) func;
|
||||
|
@ -22,13 +22,13 @@
|
||||
#undef INLINE_SYSCALL
|
||||
#define INLINE_SYSCALL(name, nr, args...) \
|
||||
({ INTERNAL_SYSCALL_DECL(err); \
|
||||
unsigned int resultvar = INTERNAL_SYSCALL(name, err, nr, args); \
|
||||
unsigned long resultvar = INTERNAL_SYSCALL(name, err, nr, args);\
|
||||
if (INTERNAL_SYSCALL_ERROR_P (resultvar, err)) \
|
||||
{ \
|
||||
__set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, err)); \
|
||||
resultvar = 0xffffffff; \
|
||||
resultvar = (unsigned long) -1; \
|
||||
} \
|
||||
(int) resultvar; \
|
||||
(long) resultvar; \
|
||||
})
|
||||
|
||||
#undef INTERNAL_SYSCALL_DECL
|
||||
|
Reference in New Issue
Block a user