Update clang version to clang-r487747

Test: presubmit
Bug: 264965700
Change-Id: I2db879f4dcc77b606c788b3e3890ed2a3faa6594
diff --git a/android/config.go b/android/config.go
index c0f84c8..adab93b 100644
--- a/android/config.go
+++ b/android/config.go
@@ -1363,6 +1363,11 @@
 		}
 	}
 	if coverage && len(c.config.productVariables.NativeCoverageExcludePaths) > 0 {
+		// Workaround coverage boot failure.
+		// http://b/269981180
+		if strings.HasPrefix(path, "external/protobuf") {
+			coverage = false
+		}
 		if HasAnyPrefix(path, c.config.productVariables.NativeCoverageExcludePaths) {
 			coverage = false
 		}
diff --git a/cc/config/global.go b/cc/config/global.go
index 05dc773..d65f883 100644
--- a/cc/config/global.go
+++ b/cc/config/global.go
@@ -192,6 +192,10 @@
 	}
 
 	noOverrideGlobalCflags = []string{
+		// Workaround for boot loop caused by stack protector.
+		// http://b/267839238
+		"-mllvm -disable-check-noreturn-call",
+
 		"-Werror=bool-operation",
 		"-Werror=implicit-int-float-conversion",
 		"-Werror=int-in-bool-context",
@@ -253,6 +257,7 @@
 		"-Wno-bitwise-instead-of-logical",
 		"-Wno-misleading-indentation",
 		"-Wno-array-parameter",
+		"-Wno-gnu-offsetof-extensions",
 	}
 
 	// Extra cflags for external third-party projects to disable warnings that
@@ -305,8 +310,8 @@
 
 	// prebuilts/clang default settings.
 	ClangDefaultBase         = "prebuilts/clang/host"
-	ClangDefaultVersion      = "clang-r475365b"
-	ClangDefaultShortVersion = "16.0.2"
+	ClangDefaultVersion      = "clang-r487747"
+	ClangDefaultShortVersion = "17"
 
 	// Directories with warnings from Android.bp files.
 	WarningAllowedProjects = []string{