Make ignorewarnings optional in optimize
This allows targets to opt-in to running R8 without the -ignorewarnings flag. Ignored warnings can cause code to be optimized incorrectly, so this makes the build safer for such targets. Ideally ignore_warnings should default to false, but all targets need to be fixed for that to happen. As a first step, provide a mechanism for individual targets to ensure they do not introduce regressions. Bug: 229727645 Bug: 180878971 Bug: 226127213 Bug: 239990030 Test: m (runs dex_test) Change-Id: Ic0eef29598c1ee47e958da8a5048d9696165a235
This commit is contained in:
@@ -59,6 +59,36 @@ func TestR8(t *testing.T) {
|
||||
appR8.Args["r8Flags"], libHeader.String())
|
||||
android.AssertStringDoesNotContain(t, "expected no static_lib header jar in app javac classpath",
|
||||
appR8.Args["r8Flags"], staticLibHeader.String())
|
||||
android.AssertStringDoesContain(t, "expected -ignorewarnings in app r8 flags",
|
||||
appR8.Args["r8Flags"], "-ignorewarnings")
|
||||
}
|
||||
|
||||
func TestR8Flags(t *testing.T) {
|
||||
result := PrepareForTestWithJavaDefaultModulesWithoutFakeDex2oatd.RunTestWithBp(t, `
|
||||
android_app {
|
||||
name: "app",
|
||||
srcs: ["foo.java"],
|
||||
platform_apis: true,
|
||||
optimize: {
|
||||
shrink: false,
|
||||
optimize: false,
|
||||
obfuscate: false,
|
||||
ignore_warnings: false,
|
||||
},
|
||||
}
|
||||
`)
|
||||
|
||||
app := result.ModuleForTests("app", "android_common")
|
||||
appR8 := app.Rule("r8")
|
||||
android.AssertStringDoesContain(t, "expected -dontshrink in app r8 flags",
|
||||
appR8.Args["r8Flags"], "-dontshrink")
|
||||
android.AssertStringDoesContain(t, "expected -dontoptimize in app r8 flags",
|
||||
appR8.Args["r8Flags"], "-dontoptimize")
|
||||
android.AssertStringDoesContain(t, "expected -dontobfuscate in app r8 flags",
|
||||
appR8.Args["r8Flags"], "-dontobfuscate")
|
||||
android.AssertStringDoesNotContain(t, "expected no -ignorewarnings in app r8 flags",
|
||||
appR8.Args["r8Flags"], "-ignorewarnings")
|
||||
|
||||
}
|
||||
|
||||
func TestD8(t *testing.T) {
|
||||
|
Reference in New Issue
Block a user