Mevcut bir AST'den IR oluştururken, AST'm bazı dize değerlerine sahiptir (derleme zamanında std::string
'dan derlenmiştir) ve bunları bir ifadenin parçası olarak kullanmak için llvm::Value
olarak güvenli bir şekilde ayarlamak istiyorum.LLVM String Değer nesneleri: Dize'yi bir Değerden nasıl alabilirim?
Bu durumda, dize değerleri yalnızca derleme zamanında değişkenler, işlevler veya sınıflar olarak şeyler çözüleceği anlamına geldiğinden, çalışma zamanında dizeye bağlanmam gerekmez. dize türü).
nedir llvm::Value
ve olarak benim dize içerik tutmak için en iyi yolu hala (yuvalama ifadeler inşa edilir) derleme ileriki aşamalarında geri almak mümkün?
Daha somut olarak, beraber llvm::Value
ayarlarsanız:
llvm::Value* v = llvm::ConstantArray::get(llvmContext, myString.c_str());
güvenli olarak nasıl dize değeri geri alabilirim? llvm::ConstantArray
dizeleri sarmanın uygun yolu mu? C kodu char *x = "asdf";
üzerinde http://llvm.org/demo/ Running