/home/zjf/Instrumenttest/lib/linkform2.cpp: In member function ‘virtual bool {anonymous}::HeapOverflowlink::runOnModule(llvm::Module&)’: /home/zjf/Instrumenttest/lib/linkform2.cpp:41:76: error: invalid use of non-static member function ‘const string& llvm::Module::getSourceFileName() const’ 41 | DIB.createCompileUnit(dwarf::DW_LANG_C_plus_plus_14,DIB.createFile(M.getSourceFileName,"."),"xxxx",0,"",0); | ~~^~~~~~~~~~~~~~~~~ In file included from /home/zjf/Instrumenttest/lib/linkform2.cpp:6: /usr/local/include/llvm/IR/Module.h:236:22: note: declared here 236 | const std::string &getSourceFileName() const { return SourceFileName; }
时间: 2023-11-28 14:48:42 浏览: 68
这个错误是因为 `getSourceFileName()` 是一个非静态成员函数,需要使用对象来访问它。在你的代码中,你没有使用 `()` 括号调用 `getSourceFileName()`,导致编译器误认为你在尝试访问一个成员变量而不是成员函数。
你需要修改这行代码:
```
DIB.createCompileUnit(dwarf::DW_LANG_C_plus_plus_14,DIB.createFile(M.getSourceFileName(),"."),"xxxx",0,"",0);
```
在 `getSourceFileName` 后面加上括号 `()` 来调用成员函数即可。
相关问题
敏感词替换:键盘录入一个字符串,如果字符串中包含任意敏感词汇(LSF、LYF、GLMF、GQMX、SLF、ZJF),则使用***替换。例如:输入: 你玩的真好,下次不要再玩了,LSF ; 输出:你玩的真好,下次不要再玩了,*** 。
可以使用正则表达式来实现敏感词替换,具体代码如下:
import re
sensitive_words = ['LSF', 'LYF', 'GLMF', 'GQMX', 'SLF', 'ZJF']
text = input("请输入字符串:")
for word in sensitive_words:
pattern = re.compile(word, re.IGNORECASE)
text = pattern.sub('***', text)
print(text)
用java写敏感词替换:键盘录入一个字符串,如果字符串中包含任意敏感词汇(LSF、LYF、GLMF、GQMX、SLF、ZJF),则使用***替换。例如:输入: 你玩的真好,下次不要再玩了,LSF ; 输出:你玩的真好,下次不要再玩了,*** 。
以下是Java代码实现敏感词替换:
import java.util.Scanner;
public class SensitiveWordsReplace {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一段话:");
String input = scanner.nextLine();
String[] sensitiveWords = {"LSF", "LYF", "GLMF", "GQMX", "SLF", "ZJF"};
for (String word : sensitiveWords) {
if (input.contains(word)) {
input = input.replaceAll(word, "***");
}
}
System.out.println("替换后的结果为:" + input);
}
}
输入:你玩的真好,下次不要再玩了,LSF
输出:替换后的结果为:你玩的真好,下次不要再玩了,***
阅读全文