Fix race reported by TASN

This is not race that can change program behaviour, but change to atomic
boolean seemed easier than white-listing for TASN.

Bug: 153714743
Change-Id: Ia62c66591ddde6ba2f3db11c357e349eae96ae35
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java b/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
index ae2f9d7..33500bb 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
@@ -120,6 +120,7 @@
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.function.Consumer;
 import java.util.function.Function;
 import java.util.function.Supplier;
@@ -186,8 +187,9 @@
   private List<Action> onWaveDoneActions = null;
 
   private final List<DexString> neverMergePrefixes;
-  boolean seenNotNeverMergePrefix = false;
-  boolean seenNeverMergePrefix = false;
+  // Use AtomicBoolean to satisfy TSAN checking (see b/153714743).
+  AtomicBoolean seenNotNeverMergePrefix = new AtomicBoolean();
+  AtomicBoolean seenNeverMergePrefix = new AtomicBoolean();
 
   /**
    * The argument `appView` is used to determine if whole program optimizations are allowed or not
@@ -614,12 +616,12 @@
               continue;
             }
             if (method.holder().descriptor.startsWith(neverMergePrefix)) {
-              seenNeverMergePrefix = true;
+              seenNeverMergePrefix.getAndSet(true);
             } else {
-              seenNotNeverMergePrefix = true;
+              seenNotNeverMergePrefix.getAndSet(true);
             }
             // Don't mix.
-            if (seenNeverMergePrefix && seenNotNeverMergePrefix) {
+            if (seenNeverMergePrefix.get() && seenNotNeverMergePrefix.get()) {
               StringBuilder message = new StringBuilder();
               message
                   .append("Merging dex file containing classes with prefix")