Increase the upper limit of slang target API to 31.

The slang compiler should be able to accept API levels up to the current
platform API level. Internally, any API level larger than N should be
treated as N since no new APIs added.

Fixes: 187523628
Test: build renderscript migration sample with minSdkVersion = 29,30,31
Change-Id: Ib16b9750c246c3e7c5827a2730ad9b71ff5aa847
diff --git a/rs_cc_options.cpp b/rs_cc_options.cpp
index ad1dc13..89720a3 100644
--- a/rs_cc_options.cpp
+++ b/rs_cc_options.cpp
@@ -295,13 +295,11 @@
 
   if (Opts.mTargetAPI == 0) {
     Opts.mTargetAPI = UINT_MAX;
-  } else if (Opts.mTargetAPI == SLANG_N_MR1_TARGET_API ||
-             Opts.mTargetAPI == SLANG_O_TARGET_API ||
-             Opts.mTargetAPI == SLANG_O_MR1_TARGET_API ||
-             Opts.mTargetAPI == SLANG_P_TARGET_API) {
+  } else if (Opts.mTargetAPI > SLANG_MAXIMUM_TARGET_API &&
+             Opts.mTargetAPI <= SLANG_MAXIMUM_CMDLINE_TARGET_API) {
     // Bug: http://b/35767071
-    // No new APIs for N_MR1, O, O_MR1 and P, convert to N.
-    Opts.mTargetAPI = SLANG_N_TARGET_API;
+    // No new APIs after N, convert to N.
+    Opts.mTargetAPI = SLANG_MAXIMUM_TARGET_API;
   }
 
   if ((Opts.mTargetAPI < 21) || (Opts.mBitcodeStorage == BCST_CPP_CODE))
diff --git a/slang_version.h b/slang_version.h
index 7ca6230..e6e47a3 100644
--- a/slang_version.h
+++ b/slang_version.h
@@ -46,7 +46,12 @@
   SLANG_O_TARGET_API = 26,
   SLANG_O_MR1_TARGET_API = 27,
   SLANG_P_TARGET_API = 28,
+  SLANG_Q_TARGET_API = 29,
+  SLANG_R_TARGET_API = 30,
+  SLANG_S_TARGET_API = 31,
   SLANG_MAXIMUM_TARGET_API = RS_VERSION,
+  // The maximum API level that is acceptable for the "-target-api" commandline option.
+  SLANG_MAXIMUM_CMDLINE_TARGET_API = SLANG_S_TARGET_API,
   SLANG_DEVELOPMENT_TARGET_API = RS_DEVELOPMENT_API
 };
 // Note that RS_VERSION is defined at build time (see Android.mk for details).