Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / libcxx / test / std / strings / basic.string / string.cons / brace_assignment.pass.cpp
blobe7d18b4ca87179d9cdcdd479e0329a91901210ba
1 //===----------------------------------------------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
9 // UNSUPPORTED: c++03
11 // <string>
13 // basic_string<charT,traits,Allocator>&
14 // operator=(basic_string<charT,traits,Allocator>&& str); // constexpr since C++20
16 #include <string>
17 #include <cassert>
19 #include "test_macros.h"
21 TEST_CONSTEXPR_CXX20 bool test() {
22 // Test that assignment from {} and {ptr, len} are allowed and are not
23 // ambiguous.
25 std::string s = "hello world";
26 s = {};
27 assert(s.empty());
30 std::string s = "hello world";
31 s = {"abc", 2};
32 assert(s == "ab");
35 return true;
38 int main(int, char**) {
39 test();
40 #if TEST_STD_VER > 17
41 static_assert(test());
42 #endif
44 return 0;