Also mark targets of super calls as reachable.
BUG=
Change-Id: Ib43a0d4520a19b2abb07e8626fb19f66fec628c9
diff --git a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
index 6fb9d2e..6dbf79b 100644
--- a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
+++ b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
@@ -682,6 +682,7 @@
}
superInvokeDependencies.computeIfAbsent(from, ignore -> Sets.newIdentityHashSet()).add(target);
if (liveMethods.contains(from)) {
+ markMethodAsTargeted(target, KeepReason.invokedViaSuperFrom(from));
markVirtualMethodAsLive(target, KeepReason.invokedViaSuperFrom(from));
}
}
@@ -822,6 +823,7 @@
Log.verbose(getClass(), "Found super invoke constraint on `%s`.",
superCallTarget.method);
}
+ markMethodAsTargeted(superCallTarget, KeepReason.invokedViaSuperFrom(method));
markVirtualMethodAsLive(superCallTarget, KeepReason.invokedViaSuperFrom(method));
}
}