Add noOverride64GlobalCflags support to Soong

Bug: b/261642850
Test: Build and check warnings. Add two xfail tests in bionic and see the
results locally.

Change-Id: I68fca0084787c329b6c49ce4dff6fd132f820735
diff --git a/cc/config/global.go b/cc/config/global.go
index 811e86e..2205c9e 100644
--- a/cc/config/global.go
+++ b/cc/config/global.go
@@ -247,6 +247,8 @@
 		"-Wno-error=enum-constexpr-conversion",               // http://b/243964282
 	}
 
+	noOverride64GlobalCflags = []string{}
+
 	noOverrideExternalGlobalCflags = []string{
 		// http://b/148815709
 		"-Wno-sizeof-array-div",
@@ -384,12 +386,26 @@
 		return strings.Join(deviceGlobalCflags, " ")
 	})
 
-	// Export the static default NoOverrideGlobalCflags to Bazel.
+	// Export the static default NoOverrideGlobalCflags and NoOverride64GlobalCflags to Bazel.
 	exportedVars.ExportStringList("NoOverrideGlobalCflags", noOverrideGlobalCflags)
+	exportedVars.ExportStringList("NoOverride64GlobalCflags", noOverride64GlobalCflags)
 	pctx.VariableFunc("NoOverrideGlobalCflags", func(ctx android.PackageVarContext) string {
 		flags := noOverrideGlobalCflags
 		if ctx.Config().IsEnvTrue("LLVM_NEXT") {
 			flags = append(noOverrideGlobalCflags, llvmNextExtraCommonGlobalCflags...)
+			if ctx.Config().Android64() {
+				flags = append(noOverride64GlobalCflags)
+			}
+		}
+		return strings.Join(flags, " ")
+	})
+
+	// Export the static default NoOverride64GlobalCflags to Bazel.
+	exportedVars.ExportStringList("NoOverride64GlobalCflags", noOverride64GlobalCflags)
+	pctx.VariableFunc("NoOverride64GlobalCflags", func(ctx android.PackageVarContext) string {
+		flags := noOverride64GlobalCflags
+		if ctx.Config().IsEnvTrue("LLVM_NEXT") && ctx.Config().Android64() {
+			flags = append(noOverride64GlobalCflags, llvmNextExtraCommonGlobalCflags...)
 		}
 		return strings.Join(flags, " ")
 	})