summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/utilities/variant/variant.variant
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2018-03-22 22:32:55 +0000
committerEric Fiselier <eric@efcs.ca>2018-03-22 22:32:55 +0000
commita595456731bc404f78ca4fc220a6249cb9a7184d (patch)
tree1a2061c13bdcb7425c4905f54b749e5ff460da57 /libcxx/test/std/utilities/variant/variant.variant
parentadb173314dd65ef9f84e1d22ec1ac4f2582f3031 (diff)
downloadbcm5719-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/std/utilities/variant/variant.variant')
-rw-r--r--libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_init_list_args.pass.cpp6
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() {
OpenPOWER on IntegriCloud