Use default visibility for `cvc5::Exception` (#6856)
authorAndres Noetzli <andres.noetzli@gmail.com>
Mon, 12 Jul 2021 17:31:58 +0000 (10:31 -0700)
committerGitHub <noreply@github.com>
Mon, 12 Jul 2021 17:31:58 +0000 (17:31 +0000)
Currently, `cvc5::Exception` does not have default visibility, which can
cause cvc5 to terminate when trying to catch it in `main.cpp`.
Presumably, this is because the necessary typeinfo is missing [0]. Due
to this issue, production builds for M1 on macOS crashed when parser
exceptions were thrown. The commit changes the visibility of the
exception.

[0] https://gcc.gnu.org/wiki/Visibility,
    "Problems with C++ exceptions (please read!)"

src/base/exception.h

index 6b692abd980d40822cd5261e53d6b75df98e5eed..0f053e4152252a5adb6610e176637b50e10e906a 100644 (file)
@@ -26,7 +26,7 @@
 
 namespace cvc5 {
 
-class Exception : public std::exception
+class CVC5_EXPORT Exception : public std::exception
 {
  protected:
   std::string d_msg;