diff --git a/src/java.base/share/classes/jdk/internal/foreign/abi/aarch64/linux/LinuxAArch64VaList.java b/src/java.base/share/classes/jdk/internal/foreign/abi/aarch64/linux/LinuxAArch64VaList.java index ef471294768..e165016a27b 100644 --- a/src/java.base/share/classes/jdk/internal/foreign/abi/aarch64/linux/LinuxAArch64VaList.java +++ b/src/java.base/share/classes/jdk/internal/foreign/abi/aarch64/linux/LinuxAArch64VaList.java @@ -129,7 +129,7 @@ public non-sealed class LinuxAArch64VaList implements VaList { } private static MemorySegment emptyListAddress() { - MemorySegment ms = MemorySegment.allocateNative(LAYOUT, SegmentScope.auto()); + MemorySegment ms = MemorySegment.allocateNative(LAYOUT, SegmentScope.global()); VH_stack.set(ms, MemorySegment.NULL); VH_gr_top.set(ms, MemorySegment.NULL); VH_vr_top.set(ms, MemorySegment.NULL); diff --git a/src/java.base/share/classes/jdk/internal/foreign/abi/x64/sysv/SysVVaList.java b/src/java.base/share/classes/jdk/internal/foreign/abi/x64/sysv/SysVVaList.java index 36b6bf7ba63..1a1fd03dc1f 100644 --- a/src/java.base/share/classes/jdk/internal/foreign/abi/x64/sysv/SysVVaList.java +++ b/src/java.base/share/classes/jdk/internal/foreign/abi/x64/sysv/SysVVaList.java @@ -138,7 +138,7 @@ public non-sealed class SysVVaList implements VaList { } private static MemorySegment emptyListAddress() { - MemorySegment base = MemorySegment.allocateNative(LAYOUT, SegmentScope.auto()); + MemorySegment base = MemorySegment.allocateNative(LAYOUT, SegmentScope.global()); VH_gp_offset.set(base, MAX_GP_OFFSET); VH_fp_offset.set(base, MAX_FP_OFFSET); VH_overflow_arg_area.set(base, MemorySegment.NULL); diff --git a/test/jdk/java/foreign/valist/VaListTest.java b/test/jdk/java/foreign/valist/VaListTest.java index 9c8ce23b5ee..1972a89e657 100644 --- a/test/jdk/java/foreign/valist/VaListTest.java +++ b/test/jdk/java/foreign/valist/VaListTest.java @@ -907,4 +907,8 @@ public class VaListTest extends NativeTestHelper { assertThrows(NoSuchElementException.class, () -> nextVarg(vaList, next)); } + @Test(dataProvider = "emptyVaLists") + public void testEmptyVaListScope(VaList vaList) { + assertEquals(vaList.segment().scope(), SegmentScope.global()); + } }