From 4a3f7992d2d9049eb80b30f93fb142b24dfe1685 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 10 Apr 2019 11:43:39 +0100 Subject: [PATCH] PR libstdc++/89851 Add testcase for std::variant equality Add a test for the regression introduced with r269422 and fixed with r270056. PR libstdc++/89851 * testsuite/20_util/variant/89851.cc: New test. From-SVN: r270249 --- libstdc++-v3/ChangeLog | 5 +++ .../testsuite/20_util/variant/89851.cc | 40 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 libstdc++-v3/testsuite/20_util/variant/89851.cc diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 98a69cffcb9..355e2d5137d 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2019-04-10 Jonathan Wakely + + PR libstdc++/89851 + * testsuite/20_util/variant/89851.cc: New test. + 2019-04-09 Jonathan Wakely * include/std/variant: Adjust whitespace. Add comments. diff --git a/libstdc++-v3/testsuite/20_util/variant/89851.cc b/libstdc++-v3/testsuite/20_util/variant/89851.cc new file mode 100644 index 00000000000..f4993556ab2 --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/variant/89851.cc @@ -0,0 +1,40 @@ +// Copyright (C) 2019 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// { dg-options "-std=gnu++17" } +// { dg-do run { target c++17 } } + +#include +#include + +// PR libstdc++/89851 + +void +test01() +{ + using V = std::variant; + V v1{std::in_place_index<0>, 0}; + V v2{std::in_place_index<1>, 0}; + VERIFY( v1 != v2 ); + VERIFY( !(v1 == v2) ); +} + +int +main() +{ + test01(); +} -- 2.30.2