Don't ignore R8 warnings for optimized targets
Ideally we'd stop ignoring warnings entirely, but this helps de-risk
optimized targets that may be more sensitive to side effects from
suppressing such warnings.
Test: m
Bug: 215530220
Change-Id: Iccd124a347d55cd8f9474ebca7e41eca27882066
diff --git a/java/dex.go b/java/dex.go
index b6fe109..6b7a7f0 100644
--- a/java/dex.go
+++ b/java/dex.go
@@ -43,7 +43,8 @@
// True if the module containing this has it set by default.
EnabledByDefault bool `blueprint:"mutated"`
- // Whether to continue building even if warnings are emitted. Defaults to true.
+ // Whether to continue building even if warnings are emitted. Defaults to true unless bytecode
+ // optimizations are enabled, in which case warnings are not ignored for safety.
Ignore_warnings *bool
// If true, runs R8 in Proguard compatibility mode (default).
@@ -339,8 +340,9 @@
}
// TODO(b/180878971): missing classes should be added to the relevant builds.
- // TODO(b/229727645): do not use true as default for Android platform builds.
- if proptools.BoolDefault(opt.Ignore_warnings, true) {
+ // TODO(b/229727645): do not use true as default for unoptimized platform targets.
+ ignoreWarningsDefault := !Bool(opt.Optimize)
+ if proptools.BoolDefault(opt.Ignore_warnings, ignoreWarningsDefault) {
r8Flags = append(r8Flags, "-ignorewarnings")
}