Ich möchte eine Funktion in LLVM erstellen, die einen Zeiger auf beliebigen Speicher aus Speicheranweisungen nimmt. Zum Beispiel:LLVM create function mit void pointer arg
%x = alloca i32, align 4
%z = alloca i32*, align 8
store i32 123, i32* %x, align 4
store i32* %x, i32** %z, align 8
Hier, ich möchte, dass die Speicherbefehle zum Instrument eine Funktion mit den Speicherzeiger aufzurufen, die einmal vom Typ i32 * sind und einmal vom Typ i32 **. Ich brauche nur den "ersten Zeiger" zum Speicher und ich muss die Zeiger nicht dereferenzieren oder seine Typinformation erhalten. Also, ich brauche einen Datentyp, der void Zeiger in C ähnelt.
Wie kann ich das in LLVM?
'bitcast' von i32 Gießen * bis i8 *? –
Wenn es keinen void * -ähnlichen Typ gibt, dann könnte das Gießen jedes Pointers auf i8 * die beste Lösung sein. Du könntest eine Antwort geben – user2600312