Verified
Status Update
Comments
ze...@google.com <ze...@google.com>
be...@gmail.com <be...@gmail.com> #2
ap...@google.com <ap...@google.com> #3
Project: r8
Branch: main
commit 1a6b23bd5d97a0ff2a6464d1921455f6b3b0d740
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Tue May 30 12:57:51 2023
Fix inadequate argument propagation in presence of join types
Bug: b/284188592
Change-Id: Ic00ce43da9839884cbb19a87a7b43020951c3114
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/VirtualDispatchMethodArgumentPropagator.java
M src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
https://r8-review.googlesource.com/79961
Branch: main
commit 1a6b23bd5d97a0ff2a6464d1921455f6b3b0d740
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Tue May 30 12:57:51 2023
Fix inadequate argument propagation in presence of join types
Bug:
Change-Id: Ic00ce43da9839884cbb19a87a7b43020951c3114
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/VirtualDispatchMethodArgumentPropagator.java
M src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
ap...@google.com <ap...@google.com> #4
Project: r8
Branch: main
commit 3c496ba2ac10dbf6f8870671f92336969893ca15
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Tue May 30 12:54:41 2023
Reproduce inadequate argument propagation in presence of join types
Bug: b/284188592
Change-Id: Ic1ad298f99b286d681b52b338349a2d4510610bd
A src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
https://r8-review.googlesource.com/79960
Branch: main
commit 3c496ba2ac10dbf6f8870671f92336969893ca15
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Tue May 30 12:54:41 2023
Reproduce inadequate argument propagation in presence of join types
Bug:
Change-Id: Ic1ad298f99b286d681b52b338349a2d4510610bd
A src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
ap...@google.com <ap...@google.com> #5
Project: r8
Branch: 4.0
commit 26787f815e14bcaba120e3b7f651cc6d4f0d4720
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:28:30 2023
Version 4.0.63
Bug: b/284188592
Change-Id: I10d9f975974ecb6f760685bbc65e5a2edb304cd4
M src/main/java/com/android/tools/r8/Version.java
https://r8-review.googlesource.com/80042
Branch: 4.0
commit 26787f815e14bcaba120e3b7f651cc6d4f0d4720
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:28:30 2023
Version 4.0.63
Bug:
Change-Id: I10d9f975974ecb6f760685bbc65e5a2edb304cd4
M src/main/java/com/android/tools/r8/Version.java
ap...@google.com <ap...@google.com> #6
Project: r8
Branch: 4.0
commit 100d0b0162ec31385e004be1fdf0e35103f5df1d
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:28:09 2023
Fix inadequate argument propagation in presence of join types
Bug: b/284188592
Change-Id: Ic00ce43da9839884cbb19a87a7b43020951c3114
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/VirtualDispatchMethodArgumentPropagator.java
M src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
https://r8-review.googlesource.com/80041
Branch: 4.0
commit 100d0b0162ec31385e004be1fdf0e35103f5df1d
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:28:09 2023
Fix inadequate argument propagation in presence of join types
Bug:
Change-Id: Ic00ce43da9839884cbb19a87a7b43020951c3114
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/VirtualDispatchMethodArgumentPropagator.java
M src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
ap...@google.com <ap...@google.com> #7
Project: r8
Branch: 4.0
commit 9a0e85220f3e4627d126a55ba6a778a57cecaa06
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:27:44 2023
Reproduce inadequate argument propagation in presence of join types
Bug: b/284188592
Change-Id: Ic1ad298f99b286d681b52b338349a2d4510610bd
A src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
https://r8-review.googlesource.com/80040
Branch: 4.0
commit 9a0e85220f3e4627d126a55ba6a778a57cecaa06
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:27:44 2023
Reproduce inadequate argument propagation in presence of join types
Bug:
Change-Id: Ic1ad298f99b286d681b52b338349a2d4510610bd
A src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
ap...@google.com <ap...@google.com> #8
Project: r8
Branch: 8.0
commit 403e61371dae4424a32f4a83f6b39857ec1c563c
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:17:27 2023
Fix inadequate argument propagation in presence of join types
Bug: b/284188592
Change-Id: Ic00ce43da9839884cbb19a87a7b43020951c3114
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/VirtualDispatchMethodArgumentPropagator.java
M src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
https://r8-review.googlesource.com/80021
Branch: 8.0
commit 403e61371dae4424a32f4a83f6b39857ec1c563c
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:17:27 2023
Fix inadequate argument propagation in presence of join types
Bug:
Change-Id: Ic00ce43da9839884cbb19a87a7b43020951c3114
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/VirtualDispatchMethodArgumentPropagator.java
M src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
ap...@google.com <ap...@google.com> #9
Project: r8
Branch: 8.0
commit e592e535381aef29cdec876af03b72edf76bcea7
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:17:05 2023
Reproduce inadequate argument propagation in presence of join types
Bug: b/284188592
Change-Id: Ic1ad298f99b286d681b52b338349a2d4510610bd
A src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
https://r8-review.googlesource.com/80020
Branch: 8.0
commit e592e535381aef29cdec876af03b72edf76bcea7
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:17:05 2023
Reproduce inadequate argument propagation in presence of join types
Bug:
Change-Id: Ic1ad298f99b286d681b52b338349a2d4510610bd
A src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
ap...@google.com <ap...@google.com> #10
Project: r8
Branch: 8.0
commit 861eee84abaffc8e9cc736490fc81ab8f0af4c43
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:18:18 2023
Version 8.0.53
Bug: b/284188592
Change-Id: Id3048216396cea527a4be16d09cfe1cf71255b6e
M src/main/java/com/android/tools/r8/Version.java
https://r8-review.googlesource.com/80001
Branch: 8.0
commit 861eee84abaffc8e9cc736490fc81ab8f0af4c43
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:18:18 2023
Version 8.0.53
Bug:
Change-Id: Id3048216396cea527a4be16d09cfe1cf71255b6e
M src/main/java/com/android/tools/r8/Version.java
ap...@google.com <ap...@google.com> #11
Project: r8
Branch: 8.1
commit a06a11a4e061e68789f58af4a190b5f9b4fce348
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:20:08 2023
Version 8.1.52
Bug: b/284188592
Change-Id: Ibd3f99eb654f7ca7a4a912dee101f687bf8ce79d
M src/main/java/com/android/tools/r8/Version.java
https://r8-review.googlesource.com/80023
Branch: 8.1
commit a06a11a4e061e68789f58af4a190b5f9b4fce348
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:20:08 2023
Version 8.1.52
Bug:
Change-Id: Ibd3f99eb654f7ca7a4a912dee101f687bf8ce79d
M src/main/java/com/android/tools/r8/Version.java
ap...@google.com <ap...@google.com> #12
Project: r8
Branch: 8.1
commit 8feec5d7abb33bf6d455d10389b9bed688f87553
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:19:58 2023
Fix inadequate argument propagation in presence of join types
Bug: b/284188592
Change-Id: Ic00ce43da9839884cbb19a87a7b43020951c3114
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/VirtualDispatchMethodArgumentPropagator.java
M src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
https://r8-review.googlesource.com/80022
Branch: 8.1
commit 8feec5d7abb33bf6d455d10389b9bed688f87553
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:19:58 2023
Fix inadequate argument propagation in presence of join types
Bug:
Change-Id: Ic00ce43da9839884cbb19a87a7b43020951c3114
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/VirtualDispatchMethodArgumentPropagator.java
M src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
ap...@google.com <ap...@google.com> #13
Project: r8
Branch: 8.1
commit fcc40146761d8bec9ac1c00a29c34bb5a50dfe0e
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:19:39 2023
Reproduce inadequate argument propagation in presence of join types
Bug: b/284188592
Change-Id: Ic1ad298f99b286d681b52b338349a2d4510610bd
A src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
https://r8-review.googlesource.com/80002
Branch: 8.1
commit fcc40146761d8bec9ac1c00a29c34bb5a50dfe0e
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:19:39 2023
Reproduce inadequate argument propagation in presence of join types
Bug:
Change-Id: Ic1ad298f99b286d681b52b338349a2d4510610bd
A src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
ap...@google.com <ap...@google.com> #14
Project: r8
Branch: 4.0
commit 100d0b0162ec31385e004be1fdf0e35103f5df1d
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:28:09 2023
Fix inadequate argument propagation in presence of join types
Bug: b/284188592
Change-Id: Ic00ce43da9839884cbb19a87a7b43020951c3114
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/VirtualDispatchMethodArgumentPropagator.java
M src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
https://r8-review.googlesource.com/80041
Branch: 4.0
commit 100d0b0162ec31385e004be1fdf0e35103f5df1d
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:28:09 2023
Fix inadequate argument propagation in presence of join types
Bug:
Change-Id: Ic00ce43da9839884cbb19a87a7b43020951c3114
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/VirtualDispatchMethodArgumentPropagator.java
M src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
ap...@google.com <ap...@google.com> #15
Project: r8
Branch: 4.0
commit 9a0e85220f3e4627d126a55ba6a778a57cecaa06
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:27:44 2023
Reproduce inadequate argument propagation in presence of join types
Bug: b/284188592
Change-Id: Ic1ad298f99b286d681b52b338349a2d4510610bd
A src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
https://r8-review.googlesource.com/80040
Branch: 4.0
commit 9a0e85220f3e4627d126a55ba6a778a57cecaa06
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:27:44 2023
Reproduce inadequate argument propagation in presence of join types
Bug:
Change-Id: Ic1ad298f99b286d681b52b338349a2d4510610bd
A src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
ap...@google.com <ap...@google.com> #16
Project: r8
Branch: 8.0
commit 403e61371dae4424a32f4a83f6b39857ec1c563c
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:17:27 2023
Fix inadequate argument propagation in presence of join types
Bug: b/284188592
Change-Id: Ic00ce43da9839884cbb19a87a7b43020951c3114
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/VirtualDispatchMethodArgumentPropagator.java
M src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
https://r8-review.googlesource.com/80021
Branch: 8.0
commit 403e61371dae4424a32f4a83f6b39857ec1c563c
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:17:27 2023
Fix inadequate argument propagation in presence of join types
Bug:
Change-Id: Ic00ce43da9839884cbb19a87a7b43020951c3114
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/VirtualDispatchMethodArgumentPropagator.java
M src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
ap...@google.com <ap...@google.com> #17
Project: r8
Branch: 8.0
commit e592e535381aef29cdec876af03b72edf76bcea7
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:17:05 2023
Reproduce inadequate argument propagation in presence of join types
Bug: b/284188592
Change-Id: Ic1ad298f99b286d681b52b338349a2d4510610bd
A src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
https://r8-review.googlesource.com/80020
Branch: 8.0
commit e592e535381aef29cdec876af03b72edf76bcea7
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:17:05 2023
Reproduce inadequate argument propagation in presence of join types
Bug:
Change-Id: Ic1ad298f99b286d681b52b338349a2d4510610bd
A src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
ch...@google.com <ch...@google.com>
ap...@google.com <ap...@google.com> #18
Project: r8
Branch: 4.0
commit 100d0b0162ec31385e004be1fdf0e35103f5df1d
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:28:09 2023
Fix inadequate argument propagation in presence of join types
Bug: b/284188592
Change-Id: Ic00ce43da9839884cbb19a87a7b43020951c3114
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/VirtualDispatchMethodArgumentPropagator.java
M src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
https://r8-review.googlesource.com/80041
Branch: 4.0
commit 100d0b0162ec31385e004be1fdf0e35103f5df1d
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:28:09 2023
Fix inadequate argument propagation in presence of join types
Bug:
Change-Id: Ic00ce43da9839884cbb19a87a7b43020951c3114
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/VirtualDispatchMethodArgumentPropagator.java
M src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
ap...@google.com <ap...@google.com> #19
Project: r8
Branch: 4.0
commit 9a0e85220f3e4627d126a55ba6a778a57cecaa06
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:27:44 2023
Reproduce inadequate argument propagation in presence of join types
Bug: b/284188592
Change-Id: Ic1ad298f99b286d681b52b338349a2d4510610bd
A src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
https://r8-review.googlesource.com/80040
Branch: 4.0
commit 9a0e85220f3e4627d126a55ba6a778a57cecaa06
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed May 31 11:27:44 2023
Reproduce inadequate argument propagation in presence of join types
Bug:
Change-Id: Ic1ad298f99b286d681b52b338349a2d4510610bd
A src/test/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagationUpperBoundWithInterfacesTest.java
be...@gmail.com <be...@gmail.com> #20
Has this bug fixed in 4.0.54?
ch...@google.com <ch...@google.com> #21
No this was fixed in R8 4.0.63. You can build with this version by adding the following to settings.gradle
:
pluginManagement {
buildscript {
repositories {
mavenCentral()
maven {
url = uri("https://storage.googleapis.com/r8-releases/raw")
}
}
dependencies {
classpath("com.android.tools:r8:4.0.63")
}
}
}
Description
In R8 4.0.54, the method is as follows:
private boolean shouldActivateMethodStateGuardedByBounds(
ClassTypeElement upperBound, DexProgramClass currentClass, DexProgramClass superClass) {
ClassTypeElement classType =
TypeElement.fromDexType(currentClass.getType(), maybeNull(), appView).asClassType();
// When propagating argument information for interface methods downwards from an interface to
// a non-interface we need to account for the parent classes of the current class.
if (superClass.isInterface()
&& !currentClass.isInterface()
&& currentClass.getSuperType() != appView.dexItemFactory().objectType) {
return classType.lessThanOrEqualUpToNullability(upperBound, appView);
}
return classType.equalUpToNullability(upperBound);
}
But there is a corner case, i.e upperBound and classType point to the same class, while classType.equalUpToNullability(upperBound); return false. And the reason is that upperBound has more interfaces than classType because of some vertical optimization.
As a result, some virtual method will be thought not reachable and put into throw null in method's body.