Hi,
ich erweitere grade ein Plugin, das auf clang basiert. Ich erhalte aus dem Clang Control Flow Graph die zugehörige Basic-Block-Struktur und traversiere diese. Für einen Block (clang.llvm.org/doxygen/classclang_1_1CFGBlock.html) möchte ich dann dessen Terminator abrufen. Dazu gibt es die Methode
Das wäre quasi mein Ziel:
Grüße
ich erweitere grade ein Plugin, das auf clang basiert. Ich erhalte aus dem Clang Control Flow Graph die zugehörige Basic-Block-Struktur und traversiere diese. Für einen Block (clang.llvm.org/doxygen/classclang_1_1CFGBlock.html) möchte ich dann dessen Terminator abrufen. Dazu gibt es die Methode
getTerminatorStmt
, welche ich auch nutze und welche ein allgemeines Stmt
-Objekt zurückgibt. Problem ist nun, dass ich wissen will, wenn es sich bei diesem um einen BinaryOperator
handelt, dass ich das zwar (auf andere Weise über strcmp) prüfen kann (unschön), aber dann so oder so keine Möglichkeit sehe, das Objekt auch als solches zu behandeln. Habe natürlich versucht mit 'nem dynamic_cast
daraus einen BinaryOperator*
zu machen, aber in Stmt
sind keinerlei Funktionen virtuell markiert, sodass der Typ nicht polymorph ist und das nicht funktioniert. Habe auch keine Template-Methoden gefunden, die mir ein Casten erlauben o.ä. Wisst Ihr da vllt., was ich machen könnte?Das wäre quasi mein Ziel:
Grüße
#define for for(int z=0;z<2;++z)for // Have fun!
Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose!
Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da
Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose!
Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Trade“ () aus folgendem Grund: Codetag getestet