[libcxxabi] r331150 - Move _LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS macro to build system

Maxim Kuvyrkov via cfe-commits cfe-commits at lists.llvm.org
Tue May 1 02:48:48 PDT 2018


Hi Nico,

This broke armv7 and aarch64 bots:
- http://lab.llvm.org:8011/builders/libcxx-libcxxabi-libunwind-armv7-linux/builds/87
- http://lab.llvm.org:8011/builders/libcxx-libcxxabi-libunwind-aarch64-linux/builds/1304

Would you please investigate?

--
Maxim Kuvyrkov
www.linaro.org



> On Apr 30, 2018, at 2:10 AM, Nico Weber via cfe-commits <cfe-commits at lists.llvm.org> wrote:
> 
> This should have said "Patch from Taiju Tsuiki <tzik at chromium.org>", apologies.
> 
> On Sun, Apr 29, 2018 at 7:05 PM, Nico Weber via cfe-commits <cfe-commits at lists.llvm.org> wrote:
> Author: nico
> Date: Sun Apr 29 16:05:11 2018
> New Revision: 331150
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=331150&view=rev
> Log:
> Move _LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS macro to build system
> 
> _LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS is currently used to
> bring back std::unexpected, which is removed in C++17, but still needed
> for libc++abi for backward compatibility.
> 
> This macro used to define in cxa_exception.cpp only, but actually
> needed for all sources that touches exceptions.
> So, a build-system-level macro is better fit to define this macro.
> 
> https://reviews.llvm.org/D46056
> Patch from Taiju Tsuiku <tzik at chromium.org>!
> 
> Modified:
>     libcxxabi/trunk/CMakeLists.txt
>     libcxxabi/trunk/src/cxa_exception.cpp
>     libcxxabi/trunk/test/test_exception_storage.pass.cpp
> 
> Modified: libcxxabi/trunk/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/CMakeLists.txt?rev=331150&r1=331149&r2=331150&view=diff
> ==============================================================================
> --- libcxxabi/trunk/CMakeLists.txt (original)
> +++ libcxxabi/trunk/CMakeLists.txt Sun Apr 29 16:05:11 2018
> @@ -387,6 +387,10 @@ endif()
>  # Prevent libc++abi from having library dependencies on libc++
>  add_definitions(-D_LIBCPP_DISABLE_EXTERN_TEMPLATE)
> 
> +# Bring back `std::unexpected`, which is removed in C++17, to support
> +# pre-C++17.
> +add_definitions(-D_LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS)
> +
>  if (MSVC)
>    add_definitions(-D_CRT_SECURE_NO_WARNINGS)
>  endif()
> 
> Modified: libcxxabi/trunk/src/cxa_exception.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/src/cxa_exception.cpp?rev=331150&r1=331149&r2=331150&view=diff
> ==============================================================================
> --- libcxxabi/trunk/src/cxa_exception.cpp (original)
> +++ libcxxabi/trunk/src/cxa_exception.cpp Sun Apr 29 16:05:11 2018
> @@ -11,8 +11,6 @@
>  //  
>  //===----------------------------------------------------------------------===//
> 
> -#define _LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS
> -
>  #include "cxxabi.h"
> 
>  #include <exception>        // for std::terminate
> 
> Modified: libcxxabi/trunk/test/test_exception_storage.pass.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/test/test_exception_storage.pass.cpp?rev=331150&r1=331149&r2=331150&view=diff
> ==============================================================================
> --- libcxxabi/trunk/test/test_exception_storage.pass.cpp (original)
> +++ libcxxabi/trunk/test/test_exception_storage.pass.cpp Sun Apr 29 16:05:11 2018
> @@ -7,11 +7,6 @@
>  //
>  //===----------------------------------------------------------------------===//
> 
> -// FIXME: cxa_exception.hpp directly references `std::unexpected` and friends.
> -// This breaks this test when compiled in C++17. For now fix this by manually
> -// re-enabling the STL functions.
> -#define _LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS
> -
>  #include <cstdlib>
>  #include <algorithm>
>  #include <iostream>
> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits



More information about the cfe-commits mailing list