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 Dionnevoid 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