Связывание с кодом, который не поддерживает обработку исключений (C++/LLVM)

Я пытаюсь использовать llvm в качестве механизма генерации кода для своего программного обеспечения и только что понял, что llvm был скомпилирован без поддержки обработки исключений C++ (для эффективности). Однако в своем программном обеспечении я широко использую обработку исключений.

Если я оберну все свои функции обратного вызова в блоки try-catch (чтобы никакие исключения не распространялись «через» код llvm), могу ли я затем безопасно удалить «-fno-exceptions» (для GCC) из мои флаги компоновщика? (этот флаг обычно требуется при компоновке с llvm, так как он появляется при выполнении llvm-config --cxxflags).

Если нет, изменится ли ситуация, если я оберну функции llvm функциями, объявленными с помощью «throws()»? Реализация этих функций может быть скомпилирована с параметром -fno-exceptions.

6
задан Joel 3 March 2012 в 12:25
поделиться