commit | 7495dbec074f52c95841f1bd2d00c24cc432d5c1 | [log] [tgz] |
---|---|---|
author | Rudi Horn <rudih@google.com> | Mon Oct 05 10:07:50 2020 +0000 |
committer | Rudi Horn <rudih@google.com> | Thu Oct 08 07:11:41 2020 +0000 |
tree | 389465e382e03906ef0f315d761b996e9df20a81 | |
parent | b3de28908fc8ad7290bbdd18c29ea2cc167da40a [diff] |
Disable horizontal class merging without inlining Bug: 163311975 Change-Id: If33df39b68939a115fc56caf209b8d0220175054
diff --git a/src/main/java/com/android/tools/r8/R8Command.java b/src/main/java/com/android/tools/r8/R8Command.java index 0375b6b..f9c2050 100644 --- a/src/main/java/com/android/tools/r8/R8Command.java +++ b/src/main/java/com/android/tools/r8/R8Command.java
@@ -868,6 +868,12 @@ internal.enableEnumUnboxing = false; } + if (!internal.enableInlining) { + // If R8 cannot perform inlining, then the synthetic constructors would not inline the called + // constructors, producing invalid code. + internal.enableHorizontalClassMerging = false; + } + // Amend the proguard-map consumer with options from the proguard configuration. internal.proguardMapConsumer = wrapStringConsumer(
diff --git a/src/main/java/com/android/tools/r8/horizontalclassmerging/HorizontalClassMerger.java b/src/main/java/com/android/tools/r8/horizontalclassmerging/HorizontalClassMerger.java index 50ceee2..ef58b3a 100644 --- a/src/main/java/com/android/tools/r8/horizontalclassmerging/HorizontalClassMerger.java +++ b/src/main/java/com/android/tools/r8/horizontalclassmerging/HorizontalClassMerger.java
@@ -49,6 +49,7 @@ MainDexTracingResult mainDexTracingResult, ClassMergingEnqueuerExtension classMergingEnqueuerExtension) { this.appView = appView; + assert appView.options().enableInlining; List<Policy> policies = ImmutableList.of(