diff options
| author | Eric Fiselier <eric@efcs.ca> | 2018-03-22 22:32:55 +0000 |
|---|---|---|
| committer | Eric Fiselier <eric@efcs.ca> | 2018-03-22 22:32:55 +0000 |
| commit | a595456731bc404f78ca4fc220a6249cb9a7184d (patch) | |
| tree | 1a2061c13bdcb7425c4905f54b749e5ff460da57 /libcxx/test | |
| parent | adb173314dd65ef9f84e1d22ec1ac4f2582f3031 (diff) | |
| download | bcm5719-llvm-a595456731bc404f78ca4fc220a6249cb9a7184d.tar.gz bcm5719-llvm-a595456731bc404f78ca4fc220a6249cb9a7184d.zip | |
Workaround GCC bug PR78489 - SFINAE order is not respected.
This patch works around variant test failures which are new to
GCC 8. GCC 8 either doesn't perform SFINAE in lexical order, or
it doesn't halt after encountering the first failure. This
causes hard error to occur instead of substitution failure.
See gcc.gnu.org/PR78489
llvm-svn: 328261
Diffstat (limited to 'libcxx/test')
| -rw-r--r-- | libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_init_list_args.pass.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_init_list_args.pass.cpp b/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_init_list_args.pass.cpp index 608cdf9d6ef..9d0bf55fb53 100644 --- a/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_init_list_args.pass.cpp +++ b/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_init_list_args.pass.cpp @@ -73,6 +73,12 @@ void test_ctor_sfinae() { !std::is_constructible<V, std::in_place_index_t<2>, IL>::value, ""); static_assert(!test_convertible<V, std::in_place_index_t<2>, IL>(), ""); } + { // index not in variant + using V = std::variant<InitList, InitListArg, int>; + static_assert( + !std::is_constructible<V, std::in_place_index_t<3>, IL>::value, ""); + static_assert(!test_convertible<V, std::in_place_index_t<3>, IL>(), ""); + } } void test_ctor_basic() { |

