163aeadb4SLouis Dionne //===----------------------------------------------------------------------===// 263aeadb4SLouis Dionne // 363aeadb4SLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 463aeadb4SLouis Dionne // See https://llvm.org/LICENSE.txt for license information. 563aeadb4SLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 663aeadb4SLouis Dionne // 763aeadb4SLouis Dionne //===----------------------------------------------------------------------===// 863aeadb4SLouis Dionne 963aeadb4SLouis Dionne // UNSUPPORTED: no-exceptions 1063aeadb4SLouis Dionne 1163aeadb4SLouis Dionne // test constexpr bool test(size_t pos) const; 1263aeadb4SLouis Dionne 1363aeadb4SLouis Dionne // Make sure we throw std::out_of_range when calling test() on an OOB index. 1463aeadb4SLouis Dionne 1563aeadb4SLouis Dionne #include <bitset> 1663aeadb4SLouis Dionne #include <cassert> 1763aeadb4SLouis Dionne #include <stdexcept> 1863aeadb4SLouis Dionne main(int,char **)1963aeadb4SLouis Dionneint main(int, char**) { 2063aeadb4SLouis Dionne { 2163aeadb4SLouis Dionne std::bitset<0> v; 22*9f8ca86aSCasey Carter try { (void) v.test(0); assert(false); } 23*9f8ca86aSCasey Carter catch (std::out_of_range const&) { } 2463aeadb4SLouis Dionne } 2563aeadb4SLouis Dionne { 2663aeadb4SLouis Dionne std::bitset<1> v("0"); 27*9f8ca86aSCasey Carter try { (void) v.test(2); assert(false); } 28*9f8ca86aSCasey Carter catch (std::out_of_range const&) { } 2963aeadb4SLouis Dionne } 3063aeadb4SLouis Dionne { 3163aeadb4SLouis Dionne std::bitset<10> v("0000000000"); 32*9f8ca86aSCasey Carter try { (void) v.test(10); assert(false); } 33*9f8ca86aSCasey Carter catch (std::out_of_range const&) { } 3463aeadb4SLouis Dionne } 3563aeadb4SLouis Dionne 3663aeadb4SLouis Dionne return 0; 3763aeadb4SLouis Dionne } 38