interp: support const getelementptr with non-zero first offset

This is uncommon, but it does happen if the source pointer is a bitcast
of a global. For example, if a struct is cast to an i8*, it's possible
to index beyond what would appear to be the size of the pointer (i8*).
This commit is contained in:
Ayke van Laethem
2021-10-14 15:55:50 +02:00
committed by Ron Evans
parent 0704794def
commit 27cbb53538
3 changed files with 11 additions and 4 deletions
+2
View File
@@ -3,6 +3,8 @@ target triple = "x86_64--linux"
@intToPtrResult = local_unnamed_addr global i8 2
@ptrToIntResult = local_unnamed_addr global i8 2
@someArray = internal global { i16, i8, i8 } zeroinitializer
@someArrayPointer = local_unnamed_addr global i8* getelementptr inbounds ({ i16, i8, i8 }, { i16, i8, i8 }* @someArray, i64 0, i32 1)
define void @runtime.initAll() local_unnamed_addr {
ret void