我正在使用LLVM绑定读取OCaml中的LLVM位代码文件。在该文件中,有一个全局字符串常量定义如下:
@.str1 = private unnamed_addr constant [6 x i8] c"x > y\00", align 1
我有一个
llvalue
对应于这个常数,我想得到字符串
"x > y"
从那以后。我能做的一件事就是
string_of_llvalue (global_initializer the_constant)
获取字符串
"c\"x > y \\00\""
,然后提取引号之间的部分,然后解析该部分中的转义序列。然而,这对我来说似乎不是一个很好的解决方案。
C++API具有以下功能
constantDataSequential::getAsString
我可以使用它来访问常量的字符串值,但我一辈子都无法弄清楚如何使用OCaml绑定来完成相同的任务。