Ich versuche, den Typ eines Arguments aus einem Aufruf Ausdruck zu erhalten, um diesen Typ später in einem Rewriter zu verwenden. hier ist, was ich habe:kann den Typ eines CallExpr-Arguments nicht bekommen
const clang::Expr *const *FuncArgs = CallExpress.getArgs();
std::string QTString = FuncArgs[0]->getType().getBaseTypeIdentifier()->getName().str();
wenn ich dies ausführen, kompiliert und verknüpft in Ordnung, aber dann, wenn ich es laufen bekomme ich einen segmentaion Fehler. dreht sich diese Segmentierung Fehler passiert, wenn ich getName
aufrufen. meine Frage sind zuerst, was mache ich falsch? und wenn ich das richtig mache. Gibt es andere Möglichkeiten, die QT von einem Argument in einem CallExpr zu erwerben?
Sehr wahrscheinlich gibt 'getBaseTypeIdentifier'' nullptr' zurück, was zum segfault führt. – AlexDenisov
Ich habe es erneut überprüft. Ich bin auch gut mit getName. Das Problem beginnt, wenn ich "str" aufrufen, um StringRef in eine Zeichenfolge umzuwandeln. – bloodstalker