Я прочитал этот пост в блоге, эту страницу документации и этот пример, но я до сих пор не понимаю, как создать базовое исключение, используя LLVM IRBuilder для не-С++-ориентированного языка.
С моей точки зрения, я должен:
- Создайте
llvm::Value
, содержащий значение, которое выбрано. - Вызвать "функцию", передав ее заброшенное значение. Эта функция не вернется.
В примере используется функция перемотки системы (_Unwind_RaiseException
), чтобы исключить исключение С++, и я не понимаю, как использовать мою собственную функцию повышения (поскольку мне нужно всего лишь набросить указатель на объект), Что мне не хватает?