插入LabelDecl
有问题。我的目标是在程序中创建一个goto语句,要做到这一点,首先我需要创建LabelDecl
并将其添加到Clang AST中。
有一个API来创建标签,但我无法获得IdentifierInfo.
static LabelDecl * Create (ASTContext &C, DeclContext *DC, SourceLocation IdentL, IdentifierInfo *II)
我唯一的问题是获得IdentifierInfo *II
对象。有什么想法吗?
我找到解决这个问题的方法了
IdentifierInfo *Name = nullptr;
string label = "your_label"; function scope.
Name = &(*Context).Idents.get(label); // Use the context to get the identifier.
LabelDecl *labelDecl = LabelDecl::Create((*Context), Context->getTranslationUnitDecl(),stmt->getBeginLoc(), Name);