/* TAGS: c++ */ /* VERIFY_OPTS: -o nofail:malloc */ //===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is dual licensed under the MIT and the University of Illinois Open // Source Licenses. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // template // bool operator==(const forward_list& x, // const forward_list& y); // // template // bool operator!=(const forward_list& x, // const forward_list& y); #include #include #include #include #include "min_allocator.h" template void test(int N, int M) { typedef typename C::value_type T; C c1; for (int i = 0; i < N; ++i) c1.push_front(i); C c2; for (int i = 0; i < M; ++i) c2.push_front(i); if (N == M) assert(c1 == c2); else assert(c1 != c2); c2 = c1; assert(c1 == c2); if (N > 0) { c2.front() = N+1; assert(c1 != c2); } } int main() { for (int i = 0; i < 10; ++i) for (int j = 0; j < 10; ++j) test >(i, j); #if __cplusplus >= 201103L for (int i = 0; i < 10; ++i) for (int j = 0; j < 10; ++j) test> >(i, j); #endif }