xref: /llvm-project/libcxx/test/libcxx/diagnostics/set.nodiscard.verify.cpp (revision 83bc7b57714dc2f6b33c188f2b95a0025468ba51)
1*83bc7b57SNikolas Klauser //===----------------------------------------------------------------------===//
2*83bc7b57SNikolas Klauser //
3*83bc7b57SNikolas Klauser // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*83bc7b57SNikolas Klauser // See https://llvm.org/LICENSE.txt for license information.
5*83bc7b57SNikolas Klauser // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*83bc7b57SNikolas Klauser //
7*83bc7b57SNikolas Klauser //===----------------------------------------------------------------------===//
8*83bc7b57SNikolas Klauser 
9*83bc7b57SNikolas Klauser // UNSUPPORTED: c++03
10*83bc7b57SNikolas Klauser 
11*83bc7b57SNikolas Klauser // check that <set> functions are marked [[nodiscard]]
12*83bc7b57SNikolas Klauser 
13*83bc7b57SNikolas Klauser #include <set>
14*83bc7b57SNikolas Klauser 
set_test()15*83bc7b57SNikolas Klauser void set_test() {
16*83bc7b57SNikolas Klauser   std::set<int> set;
17*83bc7b57SNikolas Klauser   set.empty(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
18*83bc7b57SNikolas Klauser }
19*83bc7b57SNikolas Klauser 
multiset_test()20*83bc7b57SNikolas Klauser void multiset_test() {
21*83bc7b57SNikolas Klauser   std::multiset<int> multiset;
22*83bc7b57SNikolas Klauser   multiset.empty(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
23*83bc7b57SNikolas Klauser }
24