[vm] Fix range checks in CheckOffsets.

Adjust the checks for runtime API ranges in CheckOffsets to account for
ranges where the first index is not 0-valued when cast to an intptr_t.

TEST=ci

Change-Id: I5478f6bf44b41f0ce7d4689e0ae37cd825838a40
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/444020
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Tess Strickland <sstrickl@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Auto-Submit: Tess Strickland <sstrickl@google.com>
diff --git a/runtime/vm/dart.cc b/runtime/vm/dart.cc
index ba56a76..51857ec3 100644
--- a/runtime/vm/dart.cc
+++ b/runtime/vm/dart.cc
@@ -232,7 +232,7 @@
        i <= static_cast<intptr_t>(Last); i++) {                                \
     if (Filter(static_cast<Type>(i))) {                                        \
       CHECK_OFFSET(Class::Getter(static_cast<Type>(i)),                        \
-                   AOT_##Class##_##Getter[i]);                                 \
+                   AOT_##Class##_##Getter[i - static_cast<intptr_t>(First)]);  \
     }                                                                          \
   }
 #define CHECK_CONSTANT(Class, Name)                                            \
@@ -257,7 +257,8 @@
   for (intptr_t i = static_cast<intptr_t>(First);                              \
        i <= static_cast<intptr_t>(Last); i++) {                                \
     if (Filter(static_cast<Type>(i))) {                                        \
-      CHECK_OFFSET(Class::Getter(static_cast<Type>(i)), Class##_##Getter[i]);  \
+      CHECK_OFFSET(Class::Getter(static_cast<Type>(i)),                        \
+                   Class##_##Getter[i - static_cast<intptr_t>(First)]);        \
     }                                                                          \
   }
 #define CHECK_CONSTANT(Class, Name) CHECK_OFFSET(Class::Name, Class##_##Name);