1*770602cfSLouis Dionne //===----------------------------------------------------------------------===//
2*770602cfSLouis Dionne //
3*770602cfSLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*770602cfSLouis Dionne // See https://llvm.org/LICENSE.txt for license information.
5*770602cfSLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*770602cfSLouis Dionne //
7*770602cfSLouis Dionne //===----------------------------------------------------------------------===//
8*770602cfSLouis Dionne 
9*770602cfSLouis Dionne // UNSUPPORTED: c++03, c++11, c++14, c++17
10*770602cfSLouis Dionne 
11*770602cfSLouis Dionne // template<class T>
12*770602cfSLouis Dionne // concept borrowed_range;
13*770602cfSLouis Dionne 
14*770602cfSLouis Dionne #include <ranges>
15*770602cfSLouis Dionne 
16*770602cfSLouis Dionne template <std::ranges::range R>
check_subsumption()17*770602cfSLouis Dionne consteval bool check_subsumption() {
18*770602cfSLouis Dionne   return false;
19*770602cfSLouis Dionne }
20*770602cfSLouis Dionne 
21*770602cfSLouis Dionne template <std::ranges::borrowed_range R>
check_subsumption()22*770602cfSLouis Dionne consteval bool check_subsumption() {
23*770602cfSLouis Dionne   return true;
24*770602cfSLouis Dionne }
25*770602cfSLouis Dionne 
26*770602cfSLouis Dionne static_assert(check_subsumption<int (&)[8]>());
27