我正在使用llvm尝试llvm后端。因此,我使用了llc工具。
运行命令时
llc -march = cpu0-重定位模型= pic -filetype = asm test.bc
该LLC在终端说错误
llc: /home/dalas/llvmbackend/src/lib/MC/SubtargetFeature.cpp:200: static void llvm::SubtargetFeatures::ApplyFeatureFlag(llvm::FeatureBitset&, llvm::StringRef, llvm::ArrayRef<llvm::SubtargetFeatureKV>): Assertion hasFlag(Feature) failed.
所以我尝试运行gdb来查看功能内部。
$ 1 = {静态npos = 18446744073709551615,数据= 0x555557920140“ \ 340 \ 321 \ 377 \ 377 \ 377 \ 177”,长度= 9}
这是在终端上打印的方式。我不明白这是什么意思,在这种情况下,gdb似乎无法读取字符串类型。 (在llvm中,这似乎是StringRef类型。因此,我可以使用str()函数检查字符串值。但仍然在其中包含该值。)
我的问题是: 1.为什么此hasFlag(Feature)断言错误在LLVM llc中发生? 2.使用GDB工具时,如何读取似乎编码不正确的字符串类型?
`