Throw compilation error when getting register of value without register

Bug: 124543737
Change-Id: Iee6fca4e848365f1ec19dffc08d2881c8dd5d92b
diff --git a/src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java b/src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java
index 51f9de0..c0008dc 100644
--- a/src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java
+++ b/src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java
@@ -9,6 +9,7 @@
 
 import com.android.tools.r8.cf.FixedLocalValue;
 import com.android.tools.r8.dex.Constants;
+import com.android.tools.r8.errors.CompilationError;
 import com.android.tools.r8.graph.AppInfo;
 import com.android.tools.r8.graph.DebugLocalInfo;
 import com.android.tools.r8.ir.analysis.type.TypeLatticeElement;
@@ -618,6 +619,13 @@
       return realRegisterNumberFromAllocated(value.asFixedRegisterValue().getRegister());
     }
     LiveIntervals intervals = value.getLiveIntervals();
+    if (intervals == null) {
+      throw new CompilationError(
+          "Unexpected attempt to get register for a value without a register in method `"
+              + code.method.method.toSourceString()
+              + "`.",
+          code.origin);
+    }
     if (intervals.hasSplits()) {
       intervals = intervals.getSplitCovering(instructionNumber);
     }