mirror of
https://github.com/llvm-mirror/libcxx.git
synced 2025-10-21 06:40:06 +08:00

All constant expressions are non-potentially-throwing in C++14, but that is *not* the case in C++17. Change these tests of the `variant`-flavored overloads of `std::get` to expect the correct behavior when the compiler is not GCC or is GCC 9+. Credit to Jonathan Wakely for providing an improved version of my initial change that validates the incorrect behavior on GCC < 9 as well as validating the correct behavior on other compilers. Differential Revision: https://reviews.llvm.org/D61033 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@359220 91177308-0d34-0410-b5e6-96231b3b80d8
33 lines
966 B
C++
33 lines
966 B
C++
// -*- C++ -*-
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef SUPPORT_TEST_WORKAROUNDS_H
|
|
#define SUPPORT_TEST_WORKAROUNDS_H
|
|
|
|
#include "test_macros.h"
|
|
|
|
#if defined(TEST_COMPILER_EDG)
|
|
# define TEST_WORKAROUND_EDG_EXPLICIT_CONSTEXPR // VSO#424280
|
|
#endif
|
|
|
|
#if defined(TEST_COMPILER_C1XX)
|
|
# define TEST_WORKAROUND_C1XX_BROKEN_IS_TRIVIALLY_COPYABLE // VSO#117743
|
|
# ifndef _MSC_EXTENSIONS
|
|
# define TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK // VSO#119998
|
|
# endif
|
|
#endif
|
|
|
|
#if defined(TEST_COMPILER_GCC)
|
|
# if __GNUC__ < 9
|
|
# define TEST_WORKAROUND_CONSTEXPR_IMPLIES_NOEXCEPT // GCC PR 87603
|
|
# endif
|
|
#endif
|
|
|
|
#endif // SUPPORT_TEST_WORKAROUNDS_H
|