1f7b43230SLouis Dionne //===----------------------------------------------------------------------===// 2f7b43230SLouis Dionne // 3f7b43230SLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4f7b43230SLouis Dionne // See https://llvm.org/LICENSE.txt for license information. 5f7b43230SLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6f7b43230SLouis Dionne // 7f7b43230SLouis Dionne //===----------------------------------------------------------------------===// 8f7b43230SLouis Dionne 9*ac8c9f1eSLouis Dionne // UNSUPPORTED: c++03, c++11, c++14 10c352fa74SLouis Dionne // UNSUPPORTED: availability-filesystem-missing 11f7b43230SLouis Dionne 12f7b43230SLouis Dionne // <filesystem> 13f7b43230SLouis Dionne 14f7b43230SLouis Dionne // class path 15f7b43230SLouis Dionne 16f7b43230SLouis Dionne // void clear() noexcept 17f7b43230SLouis Dionne 18*ac8c9f1eSLouis Dionne #include <filesystem> 19f7b43230SLouis Dionne #include <cassert> 20c352fa74SLouis Dionne #include <type_traits> 21f7b43230SLouis Dionne 22c352fa74SLouis Dionne #include "assert_macros.h" 23cc89063bSNico Weber #include "count_new.h" 24c352fa74SLouis Dionne #include "test_iterators.h" 25*ac8c9f1eSLouis Dionne namespace fs = std::filesystem; 26f7b43230SLouis Dionne main(int,char **)27f7b43230SLouis Dionneint main(int, char**) { 28f7b43230SLouis Dionne using namespace fs; 29f7b43230SLouis Dionne { 30f7b43230SLouis Dionne path p; 31f7b43230SLouis Dionne ASSERT_NOEXCEPT(p.clear()); 32f7b43230SLouis Dionne ASSERT_SAME_TYPE(void, decltype(p.clear())); 33f7b43230SLouis Dionne p.clear(); 34f7b43230SLouis Dionne assert(p.empty()); 35f7b43230SLouis Dionne } 36f7b43230SLouis Dionne { 37f7b43230SLouis Dionne const path p("/foo/bar/baz"); 38f7b43230SLouis Dionne path p2(p); 39f7b43230SLouis Dionne assert(p == p2); 40f7b43230SLouis Dionne p2.clear(); 41f7b43230SLouis Dionne assert(p2.empty()); 42f7b43230SLouis Dionne } 43f7b43230SLouis Dionne 44f7b43230SLouis Dionne return 0; 45f7b43230SLouis Dionne } 46