我的源代码看起来像这样,
void update();
void update()
{
}
荫试图解析此代码铛和修改代码来此。
typedef float v4sf attribute ((vector_size(16)));
void update(v4sf& v1, v4sf& v2);
void update(v4sf& v1, v4sf& v2)
{
}
我看着铛的重写类。 其中我写如下所示的功能,
MyRecursiveASTVisitor::VisitFunctionDecl(FunctionDecl *f)
FunctionDecl具有setParams()获取方法,该方法我可以使用。 我会使用这方法PARAMS。
static ParmVarDecl *Create(ASTContext &C, DeclContext *DC,
SourceLocation StartLoc,
SourceLocation IdLoc, IdentifierInfo *Id,
QualType T, TypeSourceInfo *TInfo,
StorageClass S, StorageClass SCAsWritten,
Expr *DefArg);
前四个参数的创建函数可以从FunctionDecl获得。 我不知道他们的其余部分必须是。
如何创建类型和也铛给它们赋值? 类型不必是内置并且可以是等在转化的源代码中的一个加入(v4sf)。
就是这个样子(使用铛方法)做变换或者我可以使用Rewriter.InsertText()添加参数?