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

Replaces the workaround from commit
751fff07fb which fixed only one of many
crash locations.

See:

 https://github.com/MusicPlayerDaemon/MPD/issues/373
 https://github.com/android-ndk/ndk/issues/831
 https://bugs.llvm.org/show_bug.cgi?id=32611
This commit is contained in:
Max Kellermann 2018-10-29 11:00:20 +01:00
parent e02c1adf79
commit 1e6c445320
2 changed files with 5 additions and 8 deletions

View File

@ -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 ----------------------------------

View File

@ -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);