Compiler construction 如何使用libTooling向clang中的函数添加int参数?

Compiler construction 如何使用libTooling向clang中的函数添加int参数?,compiler-construction,clang,llvm,Compiler Construction,Clang,Llvm,我正在尝试使用Clang实现一个源代码到源代码的编译器。如何将整数参数添加到特定函数(例如,通过其名称标识) 例如,原始函数定义为: int foo(int a) { return a+1; } 转换后的代码应为: int foo(int a, int b) { return a+b+1; } 你想这么做吗?这没有多大意义;从技术上讲,您可以使用“用该字符串替换此函数体字符串”。我可以理解添加一个额外的参数;但对于哪个函数[只是foo?不太可能]?您希望如何修改函数体以使用该

我正在尝试使用Clang实现一个源代码到源代码的编译器。如何将整数参数添加到特定函数(例如,通过其名称标识)

例如,原始函数定义为:

int foo(int a)
{
    return a+1;
}
转换后的代码应为:

int foo(int a, int b)
{
    return a+b+1;
}

你想这么做吗?这没有多大意义;从技术上讲,您可以使用“用该字符串替换此函数体字符串”。我可以理解添加一个额外的参数;但对于哪个函数[只是foo?不太可能]?您希望如何修改函数体以使用该额外参数?您肯定没有假设每个要增强的函数只有一个return语句?我认为你对这个问题的定义不够好(至少不够“有趣”),我简化了我的问题。关键是,如果我知道如何向函数foo添加参数,我就知道如何解决我真正的问题。这对我来说并不容易,因为我不知道如何更改函数类型,而且一旦函数的参数已经设置好,似乎就不可能添加参数。现在还不清楚您想要做什么。添加一个参数。。。哪一个?什么类型?参数列表中的哪个位置?哪个函数声明?您希望如何处理同一编译单元中的函数调用?其他编辑单位?如果没有对任务的明确描述,你就不会得到很多有用的建议。你想这样做吗?这没有多大意义;从技术上讲,您可以使用“用该字符串替换此函数体字符串”。我可以理解添加一个额外的参数;但对于哪个函数[只是foo?不太可能]?您希望如何修改函数体以使用该额外参数?您肯定没有假设每个要增强的函数只有一个return语句?我认为你对这个问题的定义不够好(至少不够“有趣”),我简化了我的问题。关键是,如果我知道如何向函数foo添加参数,我就知道如何解决我真正的问题。这对我来说并不容易,因为我不知道如何更改函数类型,而且一旦函数的参数已经设置好,似乎就不可能添加参数。现在还不清楚您想要做什么。添加一个参数。。。哪一个?什么类型?参数列表中的哪个位置?哪个函数声明?您希望如何处理同一编译单元中的函数调用?其他编辑单位?如果没有对任务的明确描述,你就不会得到很多有用的建议。