При построении IR из существующего AST у моего AST есть некоторые строковые значения (во время компиляции они построены из std::string
), и я хочу их безопасно установить как llvm::Value
для использования в качестве части выражения,
В этом случае мне не нужно связывать строку во время выполнения, потому что строковые значения предназначены только для разрешения вещи как переменных, функций или классов во время компиляции (язык не поддерживаетсобственный тип строки).
Какой лучший способ сохранить содержимое моей строки как llvm::Value
и все еще , чтобы иметь возможность извлечь его на более поздних этапах компиляции (когда построены выражения вложенности)?
Конкретнее, если я установлю llvm::Value
с помощью:
llvm::Value* v = llvm::ConstantArray::get(llvmContext, myString.c_str());
Как безопасно получить строковое значение?Является ли llvm::ConstantArray
подходящим способом для переноса строк?