diff -r 0ba758a2b6f0 src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProviderImpl.java --- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProviderImpl.java Thu Mar 05 03:27:17 2020 -0500 +++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProviderImpl.java Thu Mar 05 11:52:43 2020 +0100 @@ -152,6 +152,10 @@ LocationIdentity... killedLocations) { Class resultType = descriptor.getResultType(); assert address != 0 : descriptor; + if (transition == SAFEPOINT && !resultType.isPrimitive() && !Word.class.isAssignableFrom(resultType)) { + System.out.printf("resultType == Word.class is %s%n", resultType == Word.class); + System.out.printf("Word.class.isAssignableFrom(resultType) is %s%n", Word.class.isAssignableFrom(resultType)); + } assert transition != SAFEPOINT || resultType.isPrimitive() || Word.class.isAssignableFrom(resultType) : "non-leaf foreign calls must return objects in thread local storage: " + descriptor; return register(HotSpotForeignCallLinkageImpl.create(metaAccess, codeCache,