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@chromium.org>! llvm-svn: 331150
This commit is contained in:
parent
5731558979
commit
297ec32b86
|
@ -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()
|
||||
|
|
|
@ -11,8 +11,6 @@
|
|||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#define _LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS
|
||||
|
||||
#include "cxxabi.h"
|
||||
|
||||
#include <exception> // for std::terminate
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue