xref: /llvm-project/libcxx/test/std/numerics/bit/bitops.rot/nodiscard.verify.cpp (revision 7d3bba5e2fe677d04614bf4ba02a55ee3da4ec02)
1*7d3bba5eSNikolas Klauser //===----------------------------------------------------------------------===//
2*7d3bba5eSNikolas Klauser //
3*7d3bba5eSNikolas Klauser // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*7d3bba5eSNikolas Klauser // See https://llvm.org/LICENSE.txt for license information.
5*7d3bba5eSNikolas Klauser // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*7d3bba5eSNikolas Klauser //
7*7d3bba5eSNikolas Klauser //===----------------------------------------------------------------------===//
8*7d3bba5eSNikolas Klauser 
9*7d3bba5eSNikolas Klauser // UNSUPPORTED: c++03, c++11, c++14, c++17
10*7d3bba5eSNikolas Klauser 
11*7d3bba5eSNikolas Klauser // Check that std::rotl and std::rotr are marked [[nodiscard]]
12*7d3bba5eSNikolas Klauser 
13*7d3bba5eSNikolas Klauser #include <bit>
14*7d3bba5eSNikolas Klauser 
func()15*7d3bba5eSNikolas Klauser void func() {
16*7d3bba5eSNikolas Klauser   std::rotl(0u, 0); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
17*7d3bba5eSNikolas Klauser   std::rotr(0u, 0); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
18*7d3bba5eSNikolas Klauser }
19