diff --git a/configure.ac b/configure.ac index 2c75c3239..6ea941d7e 100644 --- a/configure.ac +++ b/configure.ac @@ -1354,6 +1354,11 @@ AX_APPEND_COMPILE_FLAGS([-fno-threadsafe-statics]) AX_APPEND_COMPILE_FLAGS([-fmerge-all-constants]) AX_APPEND_COMPILE_FLAGS([-ffast-math]) AX_APPEND_COMPILE_FLAGS([-ftree-vectorize]) + +dnl Workaround for clang bug +dnl https://bugs.llvm.org/show_bug.cgi?id=32611 +AX_APPEND_COMPILE_FLAGS([-funwind-tables]) + AC_LANG_POP dnl ---------------------------------- debug ---------------------------------- diff --git a/src/input/Error.hxx b/src/input/Error.hxx index 0811abc68..b52b9d06b 100644 --- a/src/input/Error.hxx +++ b/src/input/Error.hxx @@ -30,15 +30,7 @@ * exist? This function attempts to recognize exceptions thrown by * various input plugins. */ -#ifndef __clang__ -/* the "pure" attribute must be disabled because it triggers a clang - bug, wrongfully leading to std::terminate() even though the - function catches all exceptions thrown by std::rethrow_exception(); - this can be reproduced with clang 7 from Android NDK r18b and on - clang 6 on FreeBSD - (https://github.com/MusicPlayerDaemon/MPD/issues/373) */ gcc_pure -#endif bool IsFileNotFound(std::exception_ptr e);