commit | 92b2e6f776486711d56f4dba4a062a0f504d899c | [log] [tgz] |
---|---|---|
author | Christoffer Adamsen <christofferqa@google.com> | Thu Sep 26 08:52:38 2024 +0200 |
committer | Christoffer Adamsen <christofferqa@google.com> | Thu Sep 26 08:52:38 2024 +0200 |
tree | b6701496577bd0c167f86219990740cf7b4719d0 | |
parent | 926bb9a8f16d7041e6228361109aff18563b0863 [diff] |
Fix incorrect marking of virtual dispatch as monomorphic Bug: b/363492038 Change-Id: I630cd716ff68358db764f46914d67d9bf6e5d0f7
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/VirtualRootMethodsAnalysisBase.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/VirtualRootMethodsAnalysisBase.java index 28d6b5c..6d28cbe 100644 --- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/VirtualRootMethodsAnalysisBase.java +++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/VirtualRootMethodsAnalysisBase.java
@@ -197,8 +197,8 @@ info.addOverride(existing); return existing; } + info.addSibling(existing); if (existing.getMethod().getHolder().isInterface() && !info.isAbstract()) { - info.addSibling(existing); existing.addOverride(info); return info; }
diff --git a/src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationMultipleInterfacesSameMethodTest.java b/src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationMultipleInterfacesSameMethodTest.java index fe10b7d..1326b6a 100644 --- a/src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationMultipleInterfacesSameMethodTest.java +++ b/src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationMultipleInterfacesSameMethodTest.java
@@ -40,8 +40,7 @@ inspector .assertHasPolymorphicMethodState( Reference.methodFromMethod(I.class.getDeclaredMethod("m"))) - // TODO(b/363492038): J.m is not monomorphic. - .assertHasMonomorphicMethodState( + .assertHasPolymorphicMethodState( Reference.methodFromMethod(J.class.getDeclaredMethod("m"))) .apply(ignore -> inspected.set())) .enableNoHorizontalClassMergingAnnotations()