Durante la creazione dell'IR da un AST esistente, il mio AST ha alcuni valori di stringa (in fase di compilazione sono costruiti da std::string
) e desidero impostarli in modo sicuro come llvm::Value
da utilizzare come parte di un'espressione.Stringa LLVV Oggetti valore: come posso recuperare la stringa da un valore?
In questo caso, non ho bisogno di legare la stringa in fase di esecuzione, perché i valori stringa sono pensati solo per risolvere roba come variabili, funzioni o classi in fase di compilazione (il linguaggio non supporta un nativo tipo di stringa).
cosa è il modo migliore per mantenere i miei contenuti stringa come llvm::Value
e ancora essere in grado di recuperarlo in fasi successive della compilazione (quando le espressioni di nidificazione sono costruite)?
Più concretamente, se ho impostato il llvm::Value
con:
llvm::Value* v = llvm::ConstantArray::get(llvmContext, myString.c_str());
Come posso tranquillamente recuperare il valore della stringa? llvm::ConstantArray
è il modo appropriato per avvolgere le stringhe?