Я пытаюсь получить тип аргумента из выражения вызова, чтобы позже использовать этот тип в перезаписывающем устройстве. вот что у меня есть:cant получить тип аргумента callExpr
const clang::Expr *const *FuncArgs = CallExpress.getArgs();
std::string QTString = FuncArgs[0]->getType().getBaseTypeIdentifier()->getName().str();
, когда я запускаю это, он собирает и связывает нормально, но когда я запускаю его я получаю ошибку segmentaion. эта ошибка сегментации происходит, когда я звоню getName
. Мой вопрос во-первых, что я делаю неправильно? и если я это сделаю правильно. существуют ли другие способы получения QT из аргумента в callExpr?
Очень вероятно, что 'getBaseTypeIdentifier' возвращает' nullptr', что приводит к segfault. – AlexDenisov
Я снова проверил. im fine с getName тоже. проблема начинается, когда я вызываю «str», чтобы превратить StringRef в строку. – bloodstalker