Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 87b16fa3 authored by Yabin Cui's avatar Yabin Cui Committed by Gerrit Code Review
Browse files

Merge "Switch to clang-r407598 (12.0.1)."

parents 7ba6f1cc db7dda89
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -94,6 +94,7 @@ var ClangLibToolingUnknownCflags = sorted([]string{})
// `modernize-*`.
var ClangTidyDisableChecks = []string{
	"misc-no-recursion",
	"readability-function-cognitive-complexity", // http://b/175055536
}

func init() {
@@ -190,6 +191,8 @@ func init() {
		"-Wno-pessimizing-move",                     // http://b/154270751
		// New warnings to be fixed after clang-r399163
		"-Wno-non-c-typedef-for-linkage", // http://b/161304145
		// New warnings to be fixed after clang-r407598
		"-Wno-string-concatenation", // http://b/175068488
	}, " "))

	// Extra cflags for external third-party projects to disable warnings that
+2 −2
Original line number Diff line number Diff line
@@ -135,8 +135,8 @@ var (

	// prebuilts/clang default settings.
	ClangDefaultBase         = "prebuilts/clang/host"
	ClangDefaultVersion      = "clang-r399163b"
	ClangDefaultShortVersion = "11.0.5"
	ClangDefaultVersion      = "clang-r407598"
	ClangDefaultShortVersion = "12.0.1"

	// Directories with warnings from Android.bp files.
	WarningAllowedProjects = []string{
+20 −0
Original line number Diff line number Diff line
@@ -458,6 +458,22 @@ func toDisableImplicitIntegerChange(flags []string) bool {
	return false
}

func toDisableUnsignedShiftBaseChange(flags []string) bool {
	// Returns true if any flag is fsanitize*integer, and there is
	// no explicit flag about sanitize=unsigned-shift-base.
	for _, f := range flags {
		if strings.Contains(f, "sanitize=unsigned-shift-base") {
			return false
		}
	}
	for _, f := range flags {
		if strings.HasPrefix(f, "-fsanitize") && strings.Contains(f, "integer") {
			return true
		}
	}
	return false
}

func (sanitize *sanitize) flags(ctx ModuleContext, flags Flags) Flags {
	minimalRuntimeLib := config.UndefinedBehaviorSanitizerMinimalRuntimeLibrary(ctx.toolchain()) + ".a"
	minimalRuntimePath := "${config.ClangAsanLibDir}/" + minimalRuntimeLib
@@ -614,6 +630,10 @@ func (sanitize *sanitize) flags(ctx ModuleContext, flags Flags) Flags {
		if toDisableImplicitIntegerChange(flags.Local.CFlags) {
			flags.Local.CFlags = append(flags.Local.CFlags, "-fno-sanitize=implicit-integer-sign-change")
		}
		// http://b/171275751, Android doesn't build with this sanitizer yet.
		if toDisableUnsignedShiftBaseChange(flags.Local.CFlags) {
			flags.Local.CFlags = append(flags.Local.CFlags, "-fno-sanitize=unsigned-shift-base")
		}
	}

	if len(sanitize.Properties.DiagSanitizers) > 0 {