diff --git a/c/parallel.v2/src/hostjit/include/hostjit/cuda_minimal/stubs/cuda/std/__cstdlib/aligned_alloc.h b/c/parallel.v2/src/hostjit/include/hostjit/cuda_minimal/stubs/cuda/std/__cstdlib/aligned_alloc.h index 7544ea33b60..72d8aa96966 100644 --- a/c/parallel.v2/src/hostjit/include/hostjit/cuda_minimal/stubs/cuda/std/__cstdlib/aligned_alloc.h +++ b/c/parallel.v2/src/hostjit/include/hostjit/cuda_minimal/stubs/cuda/std/__cstdlib/aligned_alloc.h @@ -43,7 +43,7 @@ namespace cuda { namespace std { -inline __device__ void* aligned_alloc(__SIZE_TYPE__ __nbytes, __SIZE_TYPE__ __align) noexcept +inline __device__ void* aligned_alloc(__SIZE_TYPE__ __align, __SIZE_TYPE__ __nbytes) noexcept { return ::__cuda_syscall_aligned_malloc(__nbytes, __align); } @@ -59,13 +59,13 @@ namespace cuda { namespace std { -inline void* __aligned_alloc_host(__SIZE_TYPE__ __nbytes, __SIZE_TYPE__) noexcept +inline void* __aligned_alloc_host(__SIZE_TYPE__, __SIZE_TYPE__ __nbytes) noexcept { return __builtin_malloc(__nbytes); } -inline void* aligned_alloc(__SIZE_TYPE__ __nbytes, __SIZE_TYPE__ __align) noexcept +inline void* aligned_alloc(__SIZE_TYPE__ __align, __SIZE_TYPE__ __nbytes) noexcept { - return ::cuda::std::__aligned_alloc_host(__nbytes, __align); + return ::cuda::std::__aligned_alloc_host(__align, __nbytes); } } // namespace std } // namespace cuda diff --git a/libcudacxx/include/cuda/std/__cstdlib/aligned_alloc.h b/libcudacxx/include/cuda/std/__cstdlib/aligned_alloc.h index 2affe6a3e8d..3c9d3299041 100644 --- a/libcudacxx/include/cuda/std/__cstdlib/aligned_alloc.h +++ b/libcudacxx/include/cuda/std/__cstdlib/aligned_alloc.h @@ -34,14 +34,14 @@ #include #if _CCCL_CUDA_COMPILATION() -extern "C" _CCCL_DEVICE void* __cuda_syscall_aligned_malloc(size_t, size_t); +extern "C" _CCCL_DEVICE void* __cuda_syscall_aligned_malloc(size_t __nbytes, size_t __align); #endif // _CCCL_CUDA_COMPILATION() _CCCL_BEGIN_NAMESPACE_CUDA_STD #if !_CCCL_COMPILER(NVRTC) [[nodiscard]] _CCCL_HOST_API inline void* -__aligned_alloc_host([[maybe_unused]] size_t __nbytes, [[maybe_unused]] size_t __align) noexcept +__aligned_alloc_host([[maybe_unused]] size_t __align, [[maybe_unused]] size_t __nbytes) noexcept { # if _CCCL_OS(WINDOWS) _CCCL_ASSERT(false, "Use of aligned_alloc in host code is not supported on WIndows"); @@ -52,10 +52,10 @@ __aligned_alloc_host([[maybe_unused]] size_t __nbytes, [[maybe_unused]] size_t _ } #endif // !_CCCL_COMPILER(NVRTC) -[[nodiscard]] _CCCL_API inline void* aligned_alloc(size_t __nbytes, size_t __align) noexcept +[[nodiscard]] _CCCL_API inline void* aligned_alloc(size_t __align, size_t __nbytes) noexcept { NV_IF_ELSE_TARGET(NV_IS_HOST, - (return ::cuda::std::__aligned_alloc_host(__nbytes, __align);), + (return ::cuda::std::__aligned_alloc_host(__align, __nbytes);), (return ::__cuda_syscall_aligned_malloc(__nbytes, __align);)) } diff --git a/libcudacxx/test/libcudacxx/std/language.support/cstdlib/aligned_alloc.pass.cpp b/libcudacxx/test/libcudacxx/std/language.support/cstdlib/aligned_alloc.pass.cpp index c182c368bee..aa6f8bc4080 100644 --- a/libcudacxx/test/libcudacxx/std/language.support/cstdlib/aligned_alloc.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/language.support/cstdlib/aligned_alloc.pass.cpp @@ -28,8 +28,8 @@ TEST_DIAG_SUPPRESS_MSVC(4324) // padding was added at the end of a structure bec template TEST_FUNC void test_aligned_alloc(bool expect_success, cuda::std::size_t n, cuda::std::size_t align = alignof(T)) { - static_assert(noexcept(cuda::std::aligned_alloc(n * sizeof(T), align))); - T* ptr = static_cast(cuda::std::aligned_alloc(n * sizeof(T), align)); + static_assert(noexcept(cuda::std::aligned_alloc(align, n * sizeof(T)))); + T* ptr = static_cast(cuda::std::aligned_alloc(align, n * sizeof(T))); if (expect_success) { // check that the memory was allocated