Ich habe eine Funktion
%Vor%Wenn ich es kompiliere, sehe ich, dass clang seine Signatur in
ändert %Vor%Es ist unbequem, weil ich diese Funktion von irgendeinem llvm IR-Code direkt verwende. Wie kann man diese Optimierung verbieten?
Bearbeiten: Minimales Arbeitsbeispiel:
%Vor%Durch die folgende Befehlszeile:
%Vor% Das Function
wird übersetzt in:
Sie müssen die Option -mdisable-fp-elim
Deaktivieren Sie die Eliminierung der Bildzeigeroptimierung.
Hier, wo ich diese Option finde: Option kling
Und hier ist eine gute Erklärung dafür, warum clang das tut: Option verstehen 'Rahmenzeiger weglassen'
* Bearbeiten: *
Nach einiger Inspektion habe ich folgendes gefunden:
Beispiel:
%Vor%Ausgabe:
Objekt erstellt
Objektkopie erstellt
Ich bin eine Objektkopie
Ich bin ein Objekt
können Sie direkt nach dem Funktionsprototyp sehen
%Vor% Damit erhält die Funktion die Kopie des Objekts. Sie können in der main
die Kopie des Objekts sehen
Ihr Code scheint also gut zu funktionieren;)
Tags und Links c++ clang compiler-optimization clang++ llvm-clang