блоки try / throw при написании нового интерфейса для llvm - PullRequest
1 голос
/ 06 февраля 2010

llvm-config помещает -fno-exceptions в LDFLAGS для связывания самого llvm. Прав ли я, предполагая, что это означает, что я не могу использовать обычные блоки C ++ try / throw в коде (например, в новом языке), который ссылается на компилятор llvm? Я говорю не о программах, которые производит компилятор, а о самом компиляторе. Я не хочу вмешиваться с выводом llvm-config, я уверен, -fno-exceptions есть причина ..

Если я хотел написать новый языковой интерфейс для LLVM (для написанного мной игрушечного языка), который связан с другим кодом LLVM, существует ли стандартный способ обработки исключений в коде для внешнего интерфейса

Ответы [ 4 ]

1 голос
/ 08 февраля 2010

Ошибка LLVM 815 имеет логическое обоснование: сгенерированный код EH составлял около 10-20% всего двоичного файла. В нем также говорится, что в некоторых частях кода есть исключения. Следовательно, разумно предположить, что ваш код также может использовать исключения.

1 голос
/ 06 февраля 2010

Тот факт, что код LLVM не использует исключения, не означает, что среда LLVM не имеет механизма обработки исключений ... Я думаю, что вы здесь запутались.

0 голосов
/ 06 февраля 2010

Добавление -fexceptions к LDFLAGS на исходном уровне Makefile.am работает, но я не уверен, что это правильно.

0 голосов
/ 06 февраля 2010

Документация LLVM должна рассказать вам, что вам нужно знать о том, как использовать исключения; Я не знаю, почему указан -fno-exceptions, или вы можете удалить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...