创建一个新的LabelDecl并添加到Clang AST中



插入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);

相关内容

  • 没有找到相关文章

最新更新