Ich versuche Erklärung von Funktionen in LLVM zu verwenden vorwärts, aber ich bin nicht in der Lage, es zu tun ... Der Grund dafür tun, ist dieser Fehler:Vorwärts Erklärung Funktion LLVM
error: invalid forward reference to function 'f' with wrong type! "
Rechts jetzt versuche ich es mit diesem Code zu tun:
Aber es zeigt nicht in der IR, wenn ich den Code erzeugen. Wenn ich die Funktion erneut mit dem gleichen Code oben erstellt, funktioniert es. Ich frage mich, ob das daran liegt, dass ich direkt nach dem Einfügen von Dingen in die Funktion einen BasicBlock einfüge.
Gerade jetzt das ist, wie es meine IR ist
define internal void @main() {
entry:
...
}
define internal %struct.f @f(i32* %x) {
entry:
...
}
Ich glaube, dass ein declare %struct.f @f(i32*)
vor der @main Funktion setzen würde dieses Problem beheben, aber ich kann nicht herausfinden, wie es zu tun ...
Zusammenfassung: ich möchte nur etwas mit einem declare
auf der Oberseite der Datei erstellen, kann ich die define
es später so verwenden und beginnen Anweisungen der Funktion Einfügen