rust: Add SCS sanitizer option.

SCS has been supported in Rust since 1.64.0.

This adds SCS as a sanitizer option in Rust.

Bug: 168914033
Test: Built module with sanitize: { scs: true }
Change-Id: Ibdc116a335339af6d0b0d6dd0bb82c0358fa9087
diff --git a/cc/sanitize.go b/cc/sanitize.go
index 626005b..0989607 100644
--- a/cc/sanitize.go
+++ b/cc/sanitize.go
@@ -100,7 +100,7 @@
 	Hwasan
 	tsan
 	intOverflow
-	scs
+	Scs
 	Fuzzer
 	Memtag_heap
 	Memtag_stack
@@ -113,7 +113,7 @@
 	Hwasan,
 	tsan,
 	intOverflow,
-	scs,
+	Scs,
 	Fuzzer,
 	Memtag_heap,
 	Memtag_stack,
@@ -134,7 +134,7 @@
 		return "intOverflow"
 	case cfi:
 		return "cfi"
-	case scs:
+	case Scs:
 		return "scs"
 	case Memtag_heap:
 		return "memtag_heap"
@@ -168,7 +168,7 @@
 		return "integer_overflow"
 	case cfi:
 		return "cfi"
-	case scs:
+	case Scs:
 		return "shadow-call-stack"
 	case Fuzzer:
 		return "fuzzer"
@@ -179,7 +179,7 @@
 
 func (t SanitizerType) registerMutators(ctx android.RegisterMutatorsContext) {
 	switch t {
-	case cfi, Hwasan, Asan, tsan, Fuzzer, scs:
+	case cfi, Hwasan, Asan, tsan, Fuzzer, Scs:
 		sanitizer := &sanitizerSplitMutator{t}
 		ctx.TopDown(t.variationName()+"_markapexes", sanitizer.markSanitizableApexesMutator)
 		ctx.Transition(t.variationName(), sanitizer)
@@ -216,7 +216,7 @@
 		return true
 	case cfi:
 		return true
-	case scs:
+	case Scs:
 		return true
 	case Fuzzer:
 		return true
@@ -1022,7 +1022,7 @@
 		return s.Properties.SanitizeMutated.Integer_overflow
 	case cfi:
 		return s.Properties.SanitizeMutated.Cfi
-	case scs:
+	case Scs:
 		return s.Properties.SanitizeMutated.Scs
 	case Memtag_heap:
 		return s.Properties.SanitizeMutated.Memtag_heap
@@ -1043,7 +1043,7 @@
 		!sanitize.isSanitizerEnabled(Hwasan) &&
 		!sanitize.isSanitizerEnabled(tsan) &&
 		!sanitize.isSanitizerEnabled(cfi) &&
-		!sanitize.isSanitizerEnabled(scs) &&
+		!sanitize.isSanitizerEnabled(Scs) &&
 		!sanitize.isSanitizerEnabled(Memtag_heap) &&
 		!sanitize.isSanitizerEnabled(Memtag_stack) &&
 		!sanitize.isSanitizerEnabled(Memtag_globals) &&
@@ -1080,7 +1080,7 @@
 		sanitize.Properties.SanitizeMutated.Integer_overflow = bPtr
 	case cfi:
 		sanitize.Properties.SanitizeMutated.Cfi = bPtr
-	case scs:
+	case Scs:
 		sanitize.Properties.SanitizeMutated.Scs = bPtr
 	case Memtag_heap:
 		sanitize.Properties.SanitizeMutated.Memtag_heap = bPtr
@@ -1340,7 +1340,7 @@
 
 		oneMakeVariation := false
 		if c.StaticallyLinked() || c.Header() {
-			if s.sanitizer != cfi && s.sanitizer != scs && s.sanitizer != Hwasan {
+			if s.sanitizer != cfi && s.sanitizer != Scs && s.sanitizer != Hwasan {
 				// These sanitizers export only one variation to Make. For the rest,
 				// Make targets can depend on both the sanitized and non-sanitized
 				// versions.
@@ -1350,7 +1350,7 @@
 			// Shared library. These are the sanitizers that do propagate through shared
 			// library dependencies and therefore can cause multiple variations of a
 			// shared library to be built.
-			if s.sanitizer != cfi && s.sanitizer != Hwasan && s.sanitizer != scs && s.sanitizer != Asan {
+			if s.sanitizer != cfi && s.sanitizer != Hwasan && s.sanitizer != Scs && s.sanitizer != Asan {
 				oneMakeVariation = true
 			}
 		}
diff --git a/cc/vendor_snapshot.go b/cc/vendor_snapshot.go
index 9ea337b..2421e24 100644
--- a/cc/vendor_snapshot.go
+++ b/cc/vendor_snapshot.go
@@ -95,7 +95,7 @@
 		if sanitizable.SanitizePropDefined() {
 			// scs exports both sanitized and unsanitized variants for static and header
 			// Always use unsanitized variant of it.
-			if !sanitizable.Shared() && sanitizable.IsSanitizerEnabled(scs) {
+			if !sanitizable.Shared() && sanitizable.IsSanitizerEnabled(Scs) {
 				return false
 			}
 			// cfi and hwasan also export both variants. But for static, we capture both.