que tienen el código fuente que se parece a esto,parámetros Creación de una función con sonido metálico
void update();
void update()
{
}
Iam intentar analizar este código con sonido metálico y modificar el código para esto.
typedef float v4sf attribute ((vector_size(16)));
void update(v4sf& v1, v4sf& v2);
void update(v4sf& v1, v4sf& v2)
{
}
Miré las clases Rewriter de clang. En la función que escribí como se muestra abajo,
MyRecursiveASTVisitor::VisitFunctionDecl(FunctionDecl *f)
FunctionDecl tiene método setParams() que podría utilizar. Tendría que crear parámetros con este método.
static ParmVarDecl *Create(ASTContext &C, DeclContext *DC,
SourceLocation StartLoc,
SourceLocation IdLoc, IdentifierInfo *Id,
QualType T, TypeSourceInfo *TInfo,
StorageClass S, StorageClass SCAsWritten,
Expr *DefArg);
Los primeros cuatro argumentos de la función create se pueden obtener desde FunctionDecl. No estoy seguro de lo que el resto de ellos tiene que ser.
¿Cómo creo tipos y también les asigno valores en clang? Los tipos no necesitan ser compilados y podrían ser similares a los que se agregaron (v4sf) en el código fuente transformado.
¿De esta manera (usando métodos clang) para hacer transformaciones o puedo usar Rewriter.InsertText() para agregar los parámetros?
¡Gracias! Estoy usando Rewriter, pero tengo algunos problemas con la reescritura de mensajes obj-c, ¿podría mirar mi pregunta http://stackoverflow.com/questions/20418933/clang-tool-rewrite-objcmessageexpr? – BergP
cómo se agregan los complementos clang, p. ¿instrumentación? – gnzlbg