xref: /llvm-project/libcxx/test/std/utilities/memory/ptr.align/assume_aligned.nodiscard.verify.cpp (revision 3c355e2881887fea6f4b31e26b68aefa4d216fd0)
1c292b606SLouis Dionne //===----------------------------------------------------------------------===//
2c292b606SLouis Dionne //
3*3c355e28SNikolas Klauser // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*3c355e28SNikolas Klauser // See https://llvm.org/LICENSE.txt for license information.
5*3c355e28SNikolas Klauser // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6c292b606SLouis Dionne //
7c292b606SLouis Dionne //===----------------------------------------------------------------------===//
8c292b606SLouis Dionne 
9*3c355e28SNikolas Klauser // UNSUPPORTED: c++03, c++11, c++14, c++17
10c292b606SLouis Dionne 
11c292b606SLouis Dionne // #include <memory>
12c292b606SLouis Dionne 
13c292b606SLouis Dionne // template<size_t N, class T>
14c292b606SLouis Dionne // [[nodiscard]] constexpr T* assume_aligned(T* ptr);
15c292b606SLouis Dionne 
16c292b606SLouis Dionne #include <memory>
17c292b606SLouis Dionne 
f()18c292b606SLouis Dionne void f() {
19c292b606SLouis Dionne   int *p = nullptr;
20c292b606SLouis Dionne   std::assume_aligned<4>(p); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
21c292b606SLouis Dionne }
22