[ 0:01] compiling /home/xrockai/src/divine/nightly/test/libcxx/algorithms/merge_comp.pass.cpp [ 0:01] In file included from /home/xrockai/src/divine/nightly/test/libcxx/algorithms/merge_comp.pass.cpp:25: [ 0:01] In file included from /dios/libcxx/include/algorithm:639: [ 0:01] In file included from /dios/libcxx/include/initializer_list:46: [ 0:01] In file included from /dios/libcxx/include/cstddef:44: [ 0:01] In file included from /dios/include/stddef.h:10: [ 0:01] In file included from /dios/include/_PDCLIB/int.h:16: [ 0:01] /dios/include/_PDCLIB/cdefs.h:69:10: warning: Unsupported _ _cplusplus (__cplusplus) (too new) (supported: ISO/IEC 14882:1997, ISO/IEC 14882:2011). [ 0:01] #warning Unsupported _ _cplusplus (__cplusplus) (too new) (supported: ISO/IEC 14882:1997, ISO/IEC 14882:2011). [ 0:01] ^ [ 0:01] 1 warning generated. [ 0:03] compiling /dios/lib/config/seqklee.bc [ 0:03] setting up pass: functionmeta, options = [ 0:06] setting up pass: fuse-ctors, options = [ 0:06] KLEE: output directory is "/var/obj/divine-nightly/semidbg/test/__test_work_dir.6/_klee_out" [ 0:13] KLEE: Using Z3 solver backend [ 0:13] WARNING: this target does not support the llvm.stacksave intrinsic. [ 0:14] warning: Linking two modules of different target triples: klee_div_zero_check.bc' is 'x86_64-unknown-linux-gnu' whereas 'klee.bc' is 'x86_64-unknown-none-elf' [ 0:14] [ 0:14] KLEE: WARNING: undefined reference to function: _Z10klee_abortv [ 0:24] KLEE: WARNING: undefined reference to function: __dios_tainted_init [ 0:24] KLEE: WARNING: undefined reference to function: klee_free [ 0:24] KLEE: WARNING: undefined reference to function: klee_malloc [ 0:24] KLEE: WARNING ONCE: Using zero size array fix for landingpad instruction filter [ 0:24] i:1 [ 0:24] KLEE: WARNING ONCE: Alignment of memory from call "klee_malloc" is not modelled. Using alignment of 8. [ 0:24] about to __boot:0 [ 0:24] about to run the scheduler:0 [ 0:24] KLEE: WARNING ONCE: calling external: __dios_tainted_init() at /dios/libc/sys/start.cpp:49 5 [ 0:24] KLEE: ERROR: /dios/libc/sys/start.cpp:87: failed external call: __dios_tainted_init [ 0:24] KLEE: NOTE: now ignoring this error at this location [ 0:24] KLEE: ERROR: EXITING ON ERROR: [ 0:25] Error: failed external call: __dios_tainted_init [ 0:25] File: /dios/libc/sys/start.cpp [ 0:25] Line: 87 [ 0:25] assembly.ll line: 250194 [ 0:25] Stack: [ 0:25] #000250194 in __dios_start (l=2, argc=1, argv=93946624971272, envp=93946625048584) at /dios/libc/sys/start.cpp:87 [ 0:25] #100198188 in _ZN6__dios10sched_nullINS_5ClockINS_10NondetKleeINS_4BaseEEEEEE13run_schedulerINS_7ContextEEEvv () at /dios/sys/sched_null.hpp:163 [ 0:25] #200258774 in klee_boot (argc=2, argv=93946560466304) at /dios/arch/klee/boot.c:41 [ 0:25] [ 0:25] [ 0:25] 1 /* TAGS: c++ fin ext */ [ 0:25] 2 /* CC_OPTS: -std=c++2a */ [ 0:25] 3 /* VERIFY_OPTS: -o nofail:malloc */ [ 0:25] 4 //===----------------------------------------------------------------------===// [ 0:25] 5 // [ 0:25] 6 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. [ 0:25] 7 // See https://llvm.org/LICENSE.txt for license information. [ 0:25] 8 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception [ 0:25] 9 // [ 0:25] 10 //===----------------------------------------------------------------------===// [ 0:25] 11 // [ 0:25] 12 // REQUIRES: long_tests [ 0:25] 13 [ 0:25] 14 // [ 0:25] 15 [ 0:25] 16 // template Compare> [ 0:25] 18 // requires OutputIterator [ 0:25] 19 // && OutputIterator [ 0:25] 20 // && CopyConstructible [ 0:25] 21 // constexpr OutIter // constexpr after C++17 [ 0:25] 22 // merge(InIter1 first1, InIter1 last1, [ 0:25] 23 // InIter2 first2, InIter2 last2, OutIter result, Compare comp); [ 0:25] 24 [ 0:25] 25 #include [ 0:25] 26 #include [ 0:25] 27 #include [ 0:25] 28 #include [ 0:25] 29 [ 0:25] 30 #include "test_macros.h" [ 0:25] 31 #include "test_iterators.h" [ 0:25] 32 #include "counting_predicates.hpp" [ 0:25] 33 [ 0:25] 34 // #if TEST_STD_VER > 17 [ 0:25] 35 // TEST_CONSTEXPR bool test_constexpr() { [ 0:25] 36 // int ia[] = {0, 1, 2, 3, 4}; [ 0:25] 37 // int ib[] = {2, 4, 6, 8}; [ 0:25] 38 // int ic[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; [ 0:25] 39 // const int expected[] = {0, 1, 2, 2, 3, 4, 4, 6, 8}; [ 0:25] 40 // [ 0:25] 41 // auto it = std::merge(std::begin(ia), std::end(ia), [ 0:25] 42 // std::begin(ib), std::end(ib), [ 0:25] 43 // std::begin(ic), [](int a, int b) {return a == b; }); [ 0:25] 44 // return std::distance(std::begin(ic), it) == (std::size(ia) + std::size(ib)) [ 0:25] 45 // && *it == 0 [ 0:25] 46 // && std::equal(std::begin(ic), it, std::begin(expected), std::end(expected)) [ 0:25] 47 // ; [ 0:25] 48 // } [ 0:25] 49 // #endif [ 0:25] 50 [ 0:25] 51 std::mt19937 randomness; [ 0:25] 52 [ 0:25] 53 template [ 0:25] 54 void [ 0:25] 55 test() [ 0:25] 56 { [ 0:25] 57 { [ 0:25] 58 unsigned N = 1000; // Lowered so we can verify it [ 0:25] 59 int* ia = new int[N]; [ 0:25] 60 int* ib = new int[N]; [ 0:25] 61 int* ic = new int[2*N]; [ 0:25] 62 for (unsigned i = 0; i < N; ++i) [ 0:25] 63 ia[i] = 2*i; [ 0:25] 64 for (unsigned i = 0; i < N; ++i) [ 0:25] 65 ib[i] = 2*i+1; [ 0:25] 66 std::reverse(ia, ia+N); [ 0:25] 67 std::reverse(ib, ib+N); [ 0:25] 68 binary_counting_predicate, int, int> pred((std::greater())); [ 0:25] 69 OutIter r = std::merge(InIter1(ia), InIter1(ia+N), [ 0:25] 70 InIter2(ib), InIter2(ib+N), OutIter(ic), pred); [ 0:25] 71 assert(base(r) == ic+2*N); [ 0:25] 72 assert(ic[0] == static_cast(2*N-1)); [ 0:25] 73 assert(ic[2*N-1] == 0); [ 0:25] 74 assert(std::is_sorted(ic, ic+2*N, std::greater())); [ 0:25] 75 assert(pred.count() <= (N + N - 1)); [ 0:25] 76 delete [] ic; [ 0:25] 77 delete [] ib; [ 0:25] 78 delete [] ia; [ 0:25] 79 } [ 0:25] 80 { [ 0:25] 81 unsigned N = 100; [ 0:25] 82 int* ia = new int[N]; [ 0:25] 83 int* ib = new int[N]; [ 0:25] 84 int* ic = new int[2*N]; [ 0:25] 85 for (unsigned i = 0; i < 2*N; ++i) [ 0:25] 86 ic[i] = i; [ 0:25] 87 std::shuffle(ic, ic+2*N, randomness); [ 0:25] 88 std::copy(ic, ic+N, ia); [ 0:25] 89 std::copy(ic+N, ic+2*N, ib); [ 0:25] 90 std::sort(ia, ia+N, std::greater()); [ 0:25] 91 std::sort(ib, ib+N, std::greater()); [ 0:25] 92 binary_counting_predicate, int, int> pred((std::greater())); [ 0:25] 93 OutIter r = std::merge(InIter1(ia), InIter1(ia+N), [ 0:25] 94 InIter2(ib), InIter2(ib+N), OutIter(ic), pred); [ 0:25] 95 assert(base(r) == ic+2*N); [ 0:25] 96 assert(ic[0] == static_cast(2*N-1)); [ 0:25] 97 assert(ic[2*N-1] == 0); [ 0:25] 98 assert(std::is_sorted(ic, ic+2*N, std::greater())); [ 0:25] 99 assert(pred.count() <= (N + N - 1)); [ 0:25] 100 delete [] ic; [ 0:25] 101 delete [] ib; [ 0:25] 102 delete [] ia; [ 0:25] 103 } [ 0:25] 104 } [ 0:25] 105 [ 0:25] 106 int main(int, char**) [ 0:25] 107 { [ 0:25] 108 test, input_iterator, output_iterator >(); [ 0:25] 109 test, input_iterator, forward_iterator >(); [ 0:25] 110 test, input_iterator, bidirectional_iterator >(); [ 0:25] 111 test, input_iterator, random_access_iterator >(); [ 0:25] 112 test, input_iterator, int*>(); [ 0:25] 113 [ 0:25] 114 test, forward_iterator, output_iterator >(); [ 0:25] 115 test, forward_iterator, forward_iterator >(); [ 0:25] 116 test, forward_iterator, bidirectional_iterator >(); [ 0:25] 117 test, forward_iterator, random_access_iterator >(); [ 0:25] 118 test, forward_iterator, int*>(); [ 0:25] 119 [ 0:25] 120 test, bidirectional_iterator, output_iterator >(); [ 0:25] 121 test, bidirectional_iterator, forward_iterator >(); [ 0:25] 122 test, bidirectional_iterator, bidirectional_iterator >(); [ 0:25] 123 test, bidirectional_iterator, random_access_iterator >(); [ 0:25] 124 test, bidirectional_iterator, int*>(); [ 0:25] 125 [ 0:25] 126 test, random_access_iterator, output_iterator >(); [ 0:25] 127 test, random_access_iterator, forward_iterator >(); [ 0:25] 128 test, random_access_iterator, bidirectional_iterator >(); [ 0:25] 129 test, random_access_iterator, random_access_iterator >(); [ 0:25] 130 test, random_access_iterator, int*>(); [ 0:25] 131 [ 0:25] 132 test, const int*, output_iterator >(); [ 0:25] 133 test, const int*, forward_iterator >(); [ 0:25] 134 test, const int*, bidirectional_iterator >(); [ 0:25] 135 test, const int*, random_access_iterator >(); [ 0:25] 136 test, const int*, int*>(); [ 0:25] 137 [ 0:25] 138 test, input_iterator, output_iterator >(); [ 0:25] 139 test, input_iterator, forward_iterator >(); [ 0:25] 140 test, input_iterator, bidirectional_iterator >(); [ 0:25] 141 test, input_iterator, random_access_iterator >(); [ 0:25] 142 test, input_iterator, int*>(); [ 0:25] 143 [ 0:25] 144 test, forward_iterator, output_iterator >(); [ 0:25] 145 test, forward_iterator, forward_iterator >(); [ 0:25] 146 test, forward_iterator, bidirectional_iterator >(); [ 0:25] 147 test, forward_iterator, random_access_iterator >(); [ 0:25] 148 test, forward_iterator, int*>(); [ 0:25] 149 [ 0:25] 150 test, bidirectional_iterator, output_iterator >(); [ 0:25] 151 test, bidirectional_iterator, forward_iterator >(); [ 0:25] 152 test, bidirectional_iterator, bidirectional_iterator >(); [ 0:25] 153 test, bidirectional_iterator, random_access_iterator >(); [ 0:25] 154 test, bidirectional_iterator, int*>(); [ 0:25] 155 [ 0:25] 156 test, random_access_iterator, output_iterator >(); [ 0:25] 157 test, random_access_iterator, forward_iterator >(); [ 0:25] 158 test, random_access_iterator, bidirectional_iterator >(); [ 0:25] 159 test, random_access_iterator, random_access_iterator >(); [ 0:25] 160 test, random_access_iterator, int*>(); [ 0:25] 161 [ 0:25] 162 test, const int*, output_iterator >(); [ 0:25] 163 test, const int*, forward_iterator >(); [ 0:25] 164 test, const int*, bidirectional_iterator >(); [ 0:25] 165 test, const int*, random_access_iterator >(); [ 0:25] 166 test, const int*, int*>(); [ 0:25] 167 [ 0:25] 168 test, input_iterator, output_iterator >(); [ 0:25] 169 test, input_iterator, bidirectional_iterator >(); [ 0:25] 170 test, input_iterator, bidirectional_iterator >(); [ 0:25] 171 test, input_iterator, random_access_iterator >(); [ 0:25] 172 test, input_iterator, int*>(); [ 0:25] 173 [ 0:25] 174 test, forward_iterator, output_iterator >(); [ 0:25] 175 test, forward_iterator, forward_iterator >(); [ 0:25] 176 test, forward_iterator, bidirectional_iterator >(); [ 0:25] 177 test, forward_iterator, random_access_iterator >(); [ 0:25] 178 test, forward_iterator, int*>(); [ 0:25] 179 [ 0:25] 180 test, bidirectional_iterator, output_iterator >(); [ 0:25] 181 test, bidirectional_iterator, forward_iterator >(); [ 0:25] 182 test, bidirectional_iterator, bidirectional_iterator >(); [ 0:25] 183 test, bidirectional_iterator, random_access_iterator >(); [ 0:25] 184 test, bidirectional_iterator, int*>(); [ 0:25] 185 [ 0:25] 186 test, random_access_iterator, output_iterator >(); [ 0:25] 187 test, random_access_iterator, forward_iterator >(); [ 0:25] 188 test, random_access_iterator, bidirectional_iterator >(); [ 0:25] 189 test, random_access_iterator, random_access_iterator >(); [ 0:25] 190 test, random_access_iterator, int*>(); [ 0:25] 191 [ 0:25] 192 test, const int*, output_iterator >(); [ 0:25] 193 test, const int*, forward_iterator >(); [ 0:25] 194 test, const int*, bidirectional_iterator >(); [ 0:25] 195 test, const int*, random_access_iterator >(); [ 0:25] 196 test, const int*, int*>(); [ 0:25] 197 [ 0:25] 198 test, input_iterator, output_iterator >(); [ 0:25] 199 test, input_iterator, bidirectional_iterator >(); [ 0:25] 200 test, input_iterator, bidirectional_iterator >(); [ 0:25] 201 test, input_iterator, random_access_iterator >(); [ 0:25] 202 test, input_iterator, int*>(); [ 0:25] 203 [ 0:25] 204 test, forward_iterator, output_iterator >(); [ 0:25] 205 test, forward_iterator, forward_iterator >(); [ 0:25] 206 test, forward_iterator, bidirectional_iterator >(); [ 0:25] 207 test, forward_iterator, random_access_iterator >(); [ 0:25] 208 test, forward_iterator, int*>(); [ 0:25] 209 [ 0:25] 210 test, bidirectional_iterator, output_iterator >(); [ 0:25] 211 test, bidirectional_iterator, forward_iterator >(); [ 0:25] 212 test, bidirectional_iterator, bidirectional_iterator >(); [ 0:25] 213 test, bidirectional_iterator, random_access_iterator >(); [ 0:25] 214 test, bidirectional_iterator, int*>(); [ 0:25] 215 [ 0:25] 216 test, random_access_iterator, output_iterator >(); [ 0:25] 217 test, random_access_iterator, forward_iterator >(); [ 0:25] 218 test, random_access_iterator, bidirectional_iterator >(); [ 0:25] 219 test, random_access_iterator, random_access_iterator >(); [ 0:25] 220 test, random_access_iterator, int*>(); [ 0:25] 221 [ 0:25] 222 test, const int*, output_iterator >(); [ 0:25] 223 test, const int*, forward_iterator >(); [ 0:25] 224 test, const int*, bidirectional_iterator >(); [ 0:25] 225 test, const int*, random_access_iterator >(); [ 0:25] 226 test, const int*, int*>(); [ 0:25] 227 [ 0:25] 228 test, output_iterator >(); [ 0:25] 229 test, bidirectional_iterator >(); [ 0:25] 230 test, bidirectional_iterator >(); [ 0:25] 231 test, random_access_iterator >(); [ 0:25] 232 test, int*>(); [ 0:25] 233 [ 0:25] 234 test, output_iterator >(); [ 0:25] 235 test, forward_iterator >(); [ 0:25] 236 test, bidirectional_iterator >(); [ 0:25] 237 test, random_access_iterator >(); [ 0:25] 238 test, int*>(); [ 0:25] 239 [ 0:25] 240 test, output_iterator >(); [ 0:25] 241 test, forward_iterator >(); [ 0:25] 242 test, bidirectional_iterator >(); [ 0:25] 243 test, random_access_iterator >(); [ 0:25] 244 test, int*>(); [ 0:25] 245 [ 0:25] 246 test, output_iterator >(); [ 0:25] 247 test, forward_iterator >(); [ 0:25] 248 test, bidirectional_iterator >(); [ 0:25] 249 test, random_access_iterator >(); [ 0:25] 250 test, int*>(); [ 0:25] 251 [ 0:25] 252 test >(); [ 0:25] 253 test >(); [ 0:25] 254 test >(); [ 0:25] 255 test >(); [ 0:25] 256 test(); [ 0:25] 257 [ 0:25] 258 #if TEST_STD_VER > 17 [ 0:25] 259 // Not yet - waiting on std::copy [ 0:25] 260 // static_assert(test_constexpr()); [ 0:25] 261 #endif [ 0:25] 262 [ 0:25] 263 return 0; [ 0:25] 264 } [ 0:25] # no errors were expected but one was found anyway