brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · fb3ad3c Raw
55 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9// <deque>10 11// deque(const deque& c, const allocator_type& a);12 13#include "asan_testing.h"14#include <deque>15#include <cassert>16 17#include "test_macros.h"18#include "test_allocator.h"19#include "min_allocator.h"20 21template <class C>22void test(const C& x, const typename C::allocator_type& a) {23  C c(x, a);24  assert(c == x);25  assert(c.get_allocator() == a);26  LIBCPP_ASSERT(is_double_ended_contiguous_container_asan_correct(c));27}28 29int main(int, char**) {30  {31    int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};32    int* an  = ab + sizeof(ab) / sizeof(ab[0]);33    test(std::deque<int, test_allocator<int> >(ab, an, test_allocator<int>(3)), test_allocator<int>(4));34  }35  {36    int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};37    int* an  = ab + sizeof(ab) / sizeof(ab[0]);38    test(std::deque<int, other_allocator<int> >(ab, an, other_allocator<int>(3)), other_allocator<int>(4));39  }40#if TEST_STD_VER >= 1141  {42    int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};43    int* an  = ab + sizeof(ab) / sizeof(ab[0]);44    test(std::deque<int, min_allocator<int> >(ab, an, min_allocator<int>()), min_allocator<int>());45  }46  {47    int ab[] = {3, 4, 2, 8, 0, 1, 44, 34, 45, 96, 80, 1, 13, 31, 45};48    int* an  = ab + sizeof(ab) / sizeof(ab[0]);49    test(std::deque<int, safe_allocator<int> >(ab, an, safe_allocator<int>()), safe_allocator<int>());50  }51#endif52 53  return 0;54}55