reset_one.pass.cpp revision b64f8b07c104c6cc986570ac8ee0ed16a9f23976
12d67b90a21c9c1093e6598809c2cbc832919cfe6Argyrios Kyrtzidis//===----------------------------------------------------------------------===// 22d67b90a21c9c1093e6598809c2cbc832919cfe6Argyrios Kyrtzidis// 32d67b90a21c9c1093e6598809c2cbc832919cfe6Argyrios Kyrtzidis// The LLVM Compiler Infrastructure 42d67b90a21c9c1093e6598809c2cbc832919cfe6Argyrios Kyrtzidis// 52d67b90a21c9c1093e6598809c2cbc832919cfe6Argyrios Kyrtzidis// This file is dual licensed under the MIT and the University of Illinois Open 62d67b90a21c9c1093e6598809c2cbc832919cfe6Argyrios Kyrtzidis// Source Licenses. See LICENSE.TXT for details. 72d67b90a21c9c1093e6598809c2cbc832919cfe6Argyrios Kyrtzidis// 82d67b90a21c9c1093e6598809c2cbc832919cfe6Argyrios Kyrtzidis//===----------------------------------------------------------------------===// 92d67b90a21c9c1093e6598809c2cbc832919cfe6Argyrios Kyrtzidis 106026df1e5d518a958aef342d55a9e5d0fbdb85caJordan Rose// test bitset<N>& reset(size_t pos); 112d67b90a21c9c1093e6598809c2cbc832919cfe6Argyrios Kyrtzidis 122d67b90a21c9c1093e6598809c2cbc832919cfe6Argyrios Kyrtzidis#include <bitset> 132d67b90a21c9c1093e6598809c2cbc832919cfe6Argyrios Kyrtzidis#include <cassert> 142d67b90a21c9c1093e6598809c2cbc832919cfe6Argyrios Kyrtzidis 1558f6f1e37ab32fdd0c8bab6771d8e09bc139e9edTed Kremenektemplate <std::size_t N> 1655fc873017f10f6f566b182b70f6fc22aefa3464Chandler Carruthvoid test_reset_one() 17196b8cfe9cfcc452eb2f83aa4ad330c2324f8c7dAnna Zaks{ 1855fc873017f10f6f566b182b70f6fc22aefa3464Chandler Carruth std::bitset<N> v; 1955fc873017f10f6f566b182b70f6fc22aefa3464Chandler Carruth try 209f7ba9bd52823eb0fdb64767f2d09fb6b96b8179Anna Zaks { 219f7ba9bd52823eb0fdb64767f2d09fb6b96b8179Anna Zaks v.set(); 22682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek v.reset(50); 232d67b90a21c9c1093e6598809c2cbc832919cfe6Argyrios Kyrtzidis if (50 >= v.size()) 242d67b90a21c9c1093e6598809c2cbc832919cfe6Argyrios Kyrtzidis assert(false); 252d67b90a21c9c1093e6598809c2cbc832919cfe6Argyrios Kyrtzidis for (unsigned i = 0; i < v.size(); ++i) 262d67b90a21c9c1093e6598809c2cbc832919cfe6Argyrios Kyrtzidis if (i == 50) 272d67b90a21c9c1093e6598809c2cbc832919cfe6Argyrios Kyrtzidis assert(!v[i]); 2858f6f1e37ab32fdd0c8bab6771d8e09bc139e9edTed Kremenek else 2958f6f1e37ab32fdd0c8bab6771d8e09bc139e9edTed Kremenek assert(v[i]); 3058f6f1e37ab32fdd0c8bab6771d8e09bc139e9edTed Kremenek } 3158f6f1e37ab32fdd0c8bab6771d8e09bc139e9edTed Kremenek catch (std::out_of_range&) 3258f6f1e37ab32fdd0c8bab6771d8e09bc139e9edTed Kremenek { 3358f6f1e37ab32fdd0c8bab6771d8e09bc139e9edTed Kremenek } 3458f6f1e37ab32fdd0c8bab6771d8e09bc139e9edTed Kremenek} 3558f6f1e37ab32fdd0c8bab6771d8e09bc139e9edTed Kremenek 3658f6f1e37ab32fdd0c8bab6771d8e09bc139e9edTed Kremenekint main() 3702f34c5003b2c5067675f89ffce0a84c28faf722Anna Zaks{ 3802f34c5003b2c5067675f89ffce0a84c28faf722Anna Zaks test_reset_one<0>(); 3958f6f1e37ab32fdd0c8bab6771d8e09bc139e9edTed Kremenek test_reset_one<1>(); 4058f6f1e37ab32fdd0c8bab6771d8e09bc139e9edTed Kremenek test_reset_one<31>(); 4158f6f1e37ab32fdd0c8bab6771d8e09bc139e9edTed Kremenek test_reset_one<32>(); 4258f6f1e37ab32fdd0c8bab6771d8e09bc139e9edTed Kremenek test_reset_one<33>(); 4358f6f1e37ab32fdd0c8bab6771d8e09bc139e9edTed Kremenek test_reset_one<63>(); 4458f6f1e37ab32fdd0c8bab6771d8e09bc139e9edTed Kremenek test_reset_one<64>(); 4558f6f1e37ab32fdd0c8bab6771d8e09bc139e9edTed Kremenek test_reset_one<65>(); 4658f6f1e37ab32fdd0c8bab6771d8e09bc139e9edTed Kremenek test_reset_one<1000>(); 4758f6f1e37ab32fdd0c8bab6771d8e09bc139e9edTed Kremenek} 4858f6f1e37ab32fdd0c8bab6771d8e09bc139e9edTed Kremenek