Commit 1e6c4453 authored by Max Kellermann's avatar Max Kellermann

configure.ac: add `-funwind-tables` to work around clang bug

parent e02c1adf
...@@ -1354,6 +1354,11 @@ AX_APPEND_COMPILE_FLAGS([-fno-threadsafe-statics]) ...@@ -1354,6 +1354,11 @@ AX_APPEND_COMPILE_FLAGS([-fno-threadsafe-statics])
AX_APPEND_COMPILE_FLAGS([-fmerge-all-constants]) AX_APPEND_COMPILE_FLAGS([-fmerge-all-constants])
AX_APPEND_COMPILE_FLAGS([-ffast-math]) AX_APPEND_COMPILE_FLAGS([-ffast-math])
AX_APPEND_COMPILE_FLAGS([-ftree-vectorize]) 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 AC_LANG_POP
dnl ---------------------------------- debug ---------------------------------- dnl ---------------------------------- debug ----------------------------------
......
...@@ -30,15 +30,7 @@ ...@@ -30,15 +30,7 @@
* exist? This function attempts to recognize exceptions thrown by * exist? This function attempts to recognize exceptions thrown by
* various input plugins. * 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 gcc_pure
#endif
bool bool
IsFileNotFound(std::exception_ptr e); IsFileNotFound(std::exception_ptr e);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment