On 14/05/2024 15:05, Bruno Haible wrote: > Hi, > > Running the libtool tests on Ubuntu 22.04, I saw this test output: > > Constructors. > > 142: C++ static constructors ok > 143: C++ exception handling skipped (exceptions.at:361) > > It sounds odd that a C++ test gets skipped when a perfectly fine C++ compiler > is present. So I investigated... > > The log file of the respective test is: > > -------------------------------------------------------------------------------- > # -*- compilation -*- > 143. exceptions.at:24: testing C++ exception handling ... > ./exceptions.at:33: case $LIBLTDL in #( > */_inst/lib/*) test -f "$LIBLTDL" || (exit 77) ;; > esac > stdout: > ./exceptions.at:361: $CXX $CPPFLAGS $CXXFLAGS -DUSING_COMMON_DLL -DUSING_MODULE_DLL -DUSING_LIB_DLL -c main.cpp || exit 77 > stderr: > In file included from main.cpp:7: > lib.h:30:26: error: ISO C++17 does not allow dynamic exception specifications > 30 | int LIB_IMPEXP libfoo () throw (libexc); > | ^~~~~ > In file included from main.cpp:8: > module.h:17:40: error: ISO C++17 does not allow dynamic exception specifications > 17 | extern "C" int MODULE_IMPEXP modfoo () throw (modexc); > | ^~~~~ > main.cpp:22:16: error: ISO C++17 does not allow dynamic exception specifications > 22 | int foo (void) throw (exc) > | ^~~~~ > stdout: > 143. exceptions.at:24: 143. C++ exception handling (exceptions.at:24): skipped (exceptions.at:361) > -------------------------------------------------------------------------------- > > The problem is apparently that the test uses old syntax that was deprecated > in C++11 and removed in C++17 [1]. The new syntax is described in [2]. > > The attached patch fixes it. > > [1] https://en.cppreference.com/w/cpp/language/except_spec > [2] https://en.cppreference.com/w/cpp/language/noexcept_spec > Thank you for the patch. This has been applied in libtool: https://git.savannah.gnu.org/cgit/libtool.git/commit/?h=development&id=17fb010919e9f7e28fe28e13f2710bb85b00cb3a -- Ileana Dumitrescu GPG Public Key: FA26 CA78 4BE1 8892 7F22 B99F 6570 EA01 146F 7354