@@ -24,23 +24,18 @@ LLVM_LIBC_FUNCTION(void *, mremap,
2424 (void *old_address, size_t old_size, size_t new_size,
2525 int flags, ... /* void *new_address */ )) {
2626
27- #ifdef SYS_mremap
28- long syscall_number = SYS_mremap;
29- #else
30- #error "mremap syscalls not available."
31- #endif
3227 long ret = 0 ;
28+ void *new_address = nullptr ;
3329 if (flags & MREMAP_FIXED) {
34- void *arg;
3530 va_list varargs;
3631 va_start (varargs, flags);
37- arg = va_arg (varargs, void *);
32+ new_address = va_arg (varargs, void *);
3833 va_end (varargs);
39- ret = LIBC_NAMESPACE::syscall_impl (syscall_number , old_address, old_size,
40- new_size, flags, arg );
34+ ret = LIBC_NAMESPACE::syscall_impl< long >(SYS_mremap , old_address, old_size,
35+ new_size, flags, new_address );
4136 } else {
42- ret = LIBC_NAMESPACE::syscall_impl (syscall_number , old_address, old_size,
43- new_size, flags);
37+ ret = LIBC_NAMESPACE::syscall_impl< long >(SYS_mremap , old_address, old_size,
38+ new_size, flags);
4439 }
4540 if (ret < 0 && ret > -EXEC_PAGESIZE) {
4641 libc_errno = static_cast <int >(-ret);
0 commit comments