diff options
Diffstat (limited to 'test/727-checker-unresolved-class/src/unresolved/UnresolvedPublicClass.java')
-rw-r--r-- | test/727-checker-unresolved-class/src/unresolved/UnresolvedPublicClass.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/test/727-checker-unresolved-class/src/unresolved/UnresolvedPublicClass.java b/test/727-checker-unresolved-class/src/unresolved/UnresolvedPublicClass.java index 073b03ea38..4864e64eba 100644 --- a/test/727-checker-unresolved-class/src/unresolved/UnresolvedPublicClass.java +++ b/test/727-checker-unresolved-class/src/unresolved/UnresolvedPublicClass.java @@ -18,6 +18,8 @@ package unresolved; import getters.GetUnresolvedPublicClass; import getters.GetUnresolvedPublicClassFromDifferentDexFile; +import resolved.PackagePrivateSubclassOfUnresolvedClass; +import resolved.PublicSubclassOfUnresolvedClass; import resolved.ResolvedPackagePrivateClass; import resolved.ResolvedPublicSubclassOfPackagePrivateClass; @@ -31,6 +33,10 @@ public class UnresolvedPublicClass { $noinline$testResolvedPublicClass(); $noinline$testResolvedPackagePrivateClass(); + $noinline$testUnresolvedPublicClass(); + $noinline$testUnresolvedPackagePrivateClass(); + $noinline$testUnresolvedPublicClassInSamePackage(); + $noinline$testUnresolvedPackagePrivateClassInSamePackage(); $noinline$testPublicFieldInResolvedPackagePrivateClass(); $noinline$testPublicFieldInPackagePrivateClassViaResolvedPublicSubclass(); @@ -104,6 +110,45 @@ public class UnresolvedPublicClass { } catch (IllegalAccessError expected) {} } + /// CHECK-START: void unresolved.UnresolvedPublicClass.$noinline$testUnresolvedPublicClass() builder (after) + /// CHECK: LoadClass class_name:resolved.PublicSubclassOfUnresolvedClass needs_access_check:true + + /// CHECK-START-{ARM,ARM64,X86,X86_64}: void unresolved.UnresolvedPublicClass.$noinline$testUnresolvedPublicClass() builder (after) + /// CHECK: LoadClass load_kind:BssEntryPublic class_name:resolved.PublicSubclassOfUnresolvedClass + static void $noinline$testUnresolvedPublicClass() { + Class<?> c = PublicSubclassOfUnresolvedClass.class; + } + + /// CHECK-START: void unresolved.UnresolvedPublicClass.$noinline$testUnresolvedPackagePrivateClass() builder (after) + /// CHECK: LoadClass class_name:resolved.PackagePrivateSubclassOfUnresolvedClass needs_access_check:true + + /// CHECK-START-{ARM,ARM64,X86,X86_64}: void unresolved.UnresolvedPublicClass.$noinline$testUnresolvedPackagePrivateClass() builder (after) + /// CHECK: LoadClass load_kind:BssEntryPublic class_name:resolved.PackagePrivateSubclassOfUnresolvedClass + static void $noinline$testUnresolvedPackagePrivateClass() { + try { + Class<?> c = PackagePrivateSubclassOfUnresolvedClass.class; + throw new Error("Unreachable"); + } catch (IllegalAccessError expected) {} + } + + /// CHECK-START: void unresolved.UnresolvedPublicClass.$noinline$testUnresolvedPublicClassInSamePackage() builder (after) + /// CHECK: LoadClass class_name:unresolved.UnresolvedPublicClazz needs_access_check:true + + /// CHECK-START-{ARM,ARM64,X86,X86_64}: void unresolved.UnresolvedPublicClass.$noinline$testUnresolvedPublicClassInSamePackage() builder (after) + /// CHECK: LoadClass load_kind:BssEntryPackage class_name:unresolved.UnresolvedPublicClazz + static void $noinline$testUnresolvedPublicClassInSamePackage() { + Class<?> c = UnresolvedPublicClazz.class; + } + + /// CHECK-START: void unresolved.UnresolvedPublicClass.$noinline$testUnresolvedPackagePrivateClassInSamePackage() builder (after) + /// CHECK: LoadClass class_name:unresolved.UnresolvedPackagePrivateClass needs_access_check:true + + /// CHECK-START-{ARM,ARM64,X86,X86_64}: void unresolved.UnresolvedPublicClass.$noinline$testUnresolvedPackagePrivateClassInSamePackage() builder (after) + /// CHECK: LoadClass load_kind:BssEntryPackage class_name:unresolved.UnresolvedPackagePrivateClass + static void $noinline$testUnresolvedPackagePrivateClassInSamePackage() { + Class<?> c = UnresolvedPackagePrivateClass.class; + } + /// CHECK-START: void unresolved.UnresolvedPublicClass.$noinline$testPublicFieldInResolvedPackagePrivateClass() builder (after) /// CHECK: UnresolvedStaticFieldSet |