[ 0:01] compiling /home/xrockai/src/divine/nightly/test/libcxx/algorithms/merge.pass.cpp [ 0:01] In file included from /home/xrockai/src/divine/nightly/test/libcxx/algorithms/merge.pass.cpp:23: [ 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:07] setting up pass: fuse-ctors, options = [ 0:07] KLEE: output directory is "/var/obj/divine-nightly/semidbg/test/__test_work_dir.16/_klee_out" [ 0:14] KLEE: Using Z3 solver backend [ 0:14] 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:23] KLEE: WARNING: undefined reference to function: __dios_tainted_init [ 0:23] KLEE: WARNING: undefined reference to function: klee_free [ 0:23] KLEE: WARNING: undefined reference to function: klee_malloc [ 0:23] KLEE: WARNING ONCE: Using zero size array fix for landingpad instruction filter [ 0:23] i:1 [ 0:23] KLEE: WARNING ONCE: Alignment of memory from call "klee_malloc" is not modelled. Using alignment of 8. [ 0:23] about to __boot:0 [ 0:23] about to run the scheduler:0 [ 0:23] KLEE: WARNING ONCE: calling external: __dios_tainted_init() at /dios/libc/sys/start.cpp:49 5 [ 0:23] KLEE: ERROR: /dios/libc/sys/start.cpp:87: failed external call: __dios_tainted_init [ 0:23] KLEE: NOTE: now ignoring this error at this location [ 0:23] 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: 222265 [ 0:25] Stack: [ 0:25] #000222265 in __dios_start (l=2, argc=1, argv=94593288688136, envp=94593288757256) at /dios/libc/sys/start.cpp:87 [ 0:25] #100170259 in _ZN6__dios10sched_nullINS_5ClockINS_10NondetKleeINS_4BaseEEEEEE13run_schedulerINS_7ContextEEEvv () at /dios/sys/sched_null.hpp:163 [ 0:25] #200230845 in klee_boot (argc=2, argv=94593223568768) 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 [ 0:25] 17 // requires OutputIterator [ 0:25] 18 // && OutputIterator [ 0:25] 19 // && HasLess [ 0:25] 20 // constexpr OutIter // constexpr after C++17 [ 0:25] 21 // merge(InIter1 first1, InIter1 last1, InIter2 first2, InIter2 last2, OutIter result); [ 0:25] 22 [ 0:25] 23 #include [ 0:25] 24 #include [ 0:25] 25 #include [ 0:25] 26 [ 0:25] 27 #include "test_macros.h" [ 0:25] 28 #include "test_iterators.h" [ 0:25] 29 [ 0:25] 30 [ 0:25] 31 // #if TEST_STD_VER > 17 [ 0:25] 32 // TEST_CONSTEXPR bool test_constexpr() { [ 0:25] 33 // int ia[] = {0, 1, 2, 3, 4}; [ 0:25] 34 // int ib[] = {2, 4, 6, 8}; [ 0:25] 35 // int ic[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; [ 0:25] 36 // const int expected[] = {0, 1, 2, 2, 3, 4, 4, 6, 8}; [ 0:25] 37 // [ 0:25] 38 // auto it = std::merge(std::begin(ia), std::end(ia), std::begin(ib), std::end(ib), std::begin(ic)); [ 0:25] 39 // return std::distance(std::begin(ic), it) == (std::size(ia) + std::size(ib)) [ 0:25] 40 // && *it == 0 [ 0:25] 41 // && std::equal(std::begin(ic), it, std::begin(expected), std::end(expected)) [ 0:25] 42 // ; [ 0:25] 43 // } [ 0:25] 44 // #endif [ 0:25] 45 [ 0:25] 46 std::mt19937 randomness; [ 0:25] 47 [ 0:25] 48 template [ 0:25] 49 void [ 0:25] 50 test() [ 0:25] 51 { [ 0:25] 52 { [ 0:25] 53 unsigned N = 1000; // Lowered [ 0:25] 54 int* ia = new int[N]; [ 0:25] 55 int* ib = new int[N]; [ 0:25] 56 int* ic = new int[2*N]; [ 0:25] 57 for (unsigned i = 0; i < N; ++i) [ 0:25] 58 ia[i] = 2*i; [ 0:25] 59 for (unsigned i = 0; i < N; ++i) [ 0:25] 60 ib[i] = 2*i+1; [ 0:25] 61 OutIter r = std::merge(InIter1(ia), InIter1(ia+N), [ 0:25] 62 InIter2(ib), InIter2(ib+N), OutIter(ic)); [ 0:25] 63 assert(base(r) == ic+2*N); [ 0:25] 64 assert(ic[0] == 0); [ 0:25] 65 assert(ic[2*N-1] == static_cast(2*N-1)); [ 0:25] 66 assert(std::is_sorted(ic, ic+2*N)); [ 0:25] 67 delete [] ic; [ 0:25] 68 delete [] ib; [ 0:25] 69 delete [] ia; [ 0:25] 70 } [ 0:25] 71 { [ 0:25] 72 unsigned N = 100; [ 0:25] 73 int* ia = new int[N]; [ 0:25] 74 int* ib = new int[N]; [ 0:25] 75 int* ic = new int[2*N]; [ 0:25] 76 for (unsigned i = 0; i < 2*N; ++i) [ 0:25] 77 ic[i] = i; [ 0:25] 78 std::shuffle(ic, ic+2*N, randomness); [ 0:25] 79 std::copy(ic, ic+N, ia); [ 0:25] 80 std::copy(ic+N, ic+2*N, ib); [ 0:25] 81 std::sort(ia, ia+N); [ 0:25] 82 std::sort(ib, ib+N); [ 0:25] 83 OutIter r = std::merge(InIter1(ia), InIter1(ia+N), [ 0:25] 84 InIter2(ib), InIter2(ib+N), OutIter(ic)); [ 0:25] 85 assert(base(r) == ic+2*N); [ 0:25] 86 assert(ic[0] == 0); [ 0:25] 87 assert(ic[2*N-1] == static_cast(2*N-1)); [ 0:25] 88 assert(std::is_sorted(ic, ic+2*N)); [ 0:25] 89 delete [] ic; [ 0:25] 90 delete [] ib; [ 0:25] 91 delete [] ia; [ 0:25] 92 } [ 0:25] 93 } [ 0:25] 94 [ 0:25] 95 int main(int, char**) [ 0:25] 96 { [ 0:25] 97 test, input_iterator, output_iterator >(); [ 0:25] 98 test, input_iterator, forward_iterator >(); [ 0:25] 99 test, input_iterator, bidirectional_iterator >(); [ 0:25] 100 test, input_iterator, random_access_iterator >(); [ 0:25] 101 test, input_iterator, int*>(); [ 0:25] 102 [ 0:25] 103 test, forward_iterator, output_iterator >(); [ 0:25] 104 test, forward_iterator, forward_iterator >(); [ 0:25] 105 test, forward_iterator, bidirectional_iterator >(); [ 0:25] 106 test, forward_iterator, random_access_iterator >(); [ 0:25] 107 test, forward_iterator, int*>(); [ 0:25] 108 [ 0:25] 109 test, bidirectional_iterator, output_iterator >(); [ 0:25] 110 test, bidirectional_iterator, forward_iterator >(); [ 0:25] 111 test, bidirectional_iterator, bidirectional_iterator >(); [ 0:25] 112 test, bidirectional_iterator, random_access_iterator >(); [ 0:25] 113 test, bidirectional_iterator, int*>(); [ 0:25] 114 [ 0:25] 115 test, random_access_iterator, output_iterator >(); [ 0:25] 116 test, random_access_iterator, forward_iterator >(); [ 0:25] 117 test, random_access_iterator, bidirectional_iterator >(); [ 0:25] 118 test, random_access_iterator, random_access_iterator >(); [ 0:25] 119 test, random_access_iterator, int*>(); [ 0:25] 120 [ 0:25] 121 test, const int*, output_iterator >(); [ 0:25] 122 test, const int*, forward_iterator >(); [ 0:25] 123 test, const int*, bidirectional_iterator >(); [ 0:25] 124 test, const int*, random_access_iterator >(); [ 0:25] 125 test, const int*, int*>(); [ 0:25] 126 [ 0:25] 127 test, input_iterator, output_iterator >(); [ 0:25] 128 test, input_iterator, forward_iterator >(); [ 0:25] 129 test, input_iterator, bidirectional_iterator >(); [ 0:25] 130 test, input_iterator, random_access_iterator >(); [ 0:25] 131 test, input_iterator, int*>(); [ 0:25] 132 [ 0:25] 133 test, forward_iterator, output_iterator >(); [ 0:25] 134 test, forward_iterator, forward_iterator >(); [ 0:25] 135 test, forward_iterator, bidirectional_iterator >(); [ 0:25] 136 test, forward_iterator, random_access_iterator >(); [ 0:25] 137 test, forward_iterator, int*>(); [ 0:25] 138 [ 0:25] 139 test, bidirectional_iterator, output_iterator >(); [ 0:25] 140 test, bidirectional_iterator, forward_iterator >(); [ 0:25] 141 test, bidirectional_iterator, bidirectional_iterator >(); [ 0:25] 142 test, bidirectional_iterator, random_access_iterator >(); [ 0:25] 143 test, bidirectional_iterator, int*>(); [ 0:25] 144 [ 0:25] 145 test, random_access_iterator, output_iterator >(); [ 0:25] 146 test, random_access_iterator, forward_iterator >(); [ 0:25] 147 test, random_access_iterator, bidirectional_iterator >(); [ 0:25] 148 test, random_access_iterator, random_access_iterator >(); [ 0:25] 149 test, random_access_iterator, int*>(); [ 0:25] 150 [ 0:25] 151 test, const int*, output_iterator >(); [ 0:25] 152 test, const int*, forward_iterator >(); [ 0:25] 153 test, const int*, bidirectional_iterator >(); [ 0:25] 154 test, const int*, random_access_iterator >(); [ 0:25] 155 test, const int*, int*>(); [ 0:25] 156 [ 0:25] 157 test, input_iterator, output_iterator >(); [ 0:25] 158 test, input_iterator, bidirectional_iterator >(); [ 0:25] 159 test, input_iterator, bidirectional_iterator >(); [ 0:25] 160 test, input_iterator, random_access_iterator >(); [ 0:25] 161 test, input_iterator, int*>(); [ 0:25] 162 [ 0:25] 163 test, forward_iterator, output_iterator >(); [ 0:25] 164 test, forward_iterator, forward_iterator >(); [ 0:25] 165 test, forward_iterator, bidirectional_iterator >(); [ 0:25] 166 test, forward_iterator, random_access_iterator >(); [ 0:25] 167 test, forward_iterator, int*>(); [ 0:25] 168 [ 0:25] 169 test, bidirectional_iterator, output_iterator >(); [ 0:25] 170 test, bidirectional_iterator, forward_iterator >(); [ 0:25] 171 test, bidirectional_iterator, bidirectional_iterator >(); [ 0:25] 172 test, bidirectional_iterator, random_access_iterator >(); [ 0:25] 173 test, bidirectional_iterator, int*>(); [ 0:25] 174 [ 0:25] 175 test, random_access_iterator, output_iterator >(); [ 0:25] 176 test, random_access_iterator, forward_iterator >(); [ 0:25] 177 test, random_access_iterator, bidirectional_iterator >(); [ 0:25] 178 test, random_access_iterator, random_access_iterator >(); [ 0:25] 179 test, random_access_iterator, int*>(); [ 0:25] 180 [ 0:25] 181 test, const int*, output_iterator >(); [ 0:25] 182 test, const int*, forward_iterator >(); [ 0:25] 183 test, const int*, bidirectional_iterator >(); [ 0:25] 184 test, const int*, random_access_iterator >(); [ 0:25] 185 test, const int*, int*>(); [ 0:25] 186 [ 0:25] 187 test, input_iterator, output_iterator >(); [ 0:25] 188 test, input_iterator, bidirectional_iterator >(); [ 0:25] 189 test, input_iterator, bidirectional_iterator >(); [ 0:25] 190 test, input_iterator, random_access_iterator >(); [ 0:25] 191 test, input_iterator, int*>(); [ 0:25] 192 [ 0:25] 193 test, forward_iterator, output_iterator >(); [ 0:25] 194 test, forward_iterator, forward_iterator >(); [ 0:25] 195 test, forward_iterator, bidirectional_iterator >(); [ 0:25] 196 test, forward_iterator, random_access_iterator >(); [ 0:25] 197 test, forward_iterator, int*>(); [ 0:25] 198 [ 0:25] 199 test, bidirectional_iterator, output_iterator >(); [ 0:25] 200 test, bidirectional_iterator, forward_iterator >(); [ 0:25] 201 test, bidirectional_iterator, bidirectional_iterator >(); [ 0:25] 202 test, bidirectional_iterator, random_access_iterator >(); [ 0:25] 203 test, bidirectional_iterator, int*>(); [ 0:25] 204 [ 0:25] 205 test, random_access_iterator, output_iterator >(); [ 0:25] 206 test, random_access_iterator, forward_iterator >(); [ 0:25] 207 test, random_access_iterator, bidirectional_iterator >(); [ 0:25] 208 test, random_access_iterator, random_access_iterator >(); [ 0:25] 209 test, random_access_iterator, int*>(); [ 0:25] 210 [ 0:25] 211 test, const int*, output_iterator >(); [ 0:25] 212 test, const int*, forward_iterator >(); [ 0:25] 213 test, const int*, bidirectional_iterator >(); [ 0:25] 214 test, const int*, random_access_iterator >(); [ 0:25] 215 test, const int*, int*>(); [ 0:25] 216 [ 0:25] 217 test, output_iterator >(); [ 0:25] 218 test, bidirectional_iterator >(); [ 0:25] 219 test, bidirectional_iterator >(); [ 0:25] 220 test, random_access_iterator >(); [ 0:25] 221 test, int*>(); [ 0:25] 222 [ 0:25] 223 test, output_iterator >(); [ 0:25] 224 test, forward_iterator >(); [ 0:25] 225 test, bidirectional_iterator >(); [ 0:25] 226 test, random_access_iterator >(); [ 0:25] 227 test, int*>(); [ 0:25] 228 [ 0:25] 229 test, output_iterator >(); [ 0:25] 230 test, forward_iterator >(); [ 0:25] 231 test, bidirectional_iterator >(); [ 0:25] 232 test, random_access_iterator >(); [ 0:25] 233 test, int*>(); [ 0:25] 234 [ 0:25] 235 test, output_iterator >(); [ 0:25] 236 test, forward_iterator >(); [ 0:25] 237 test, bidirectional_iterator >(); [ 0:25] 238 test, random_access_iterator >(); [ 0:25] 239 test, int*>(); [ 0:25] 240 [ 0:25] 241 test >(); [ 0:25] 242 test >(); [ 0:25] 243 test >(); [ 0:25] 244 test >(); [ 0:25] 245 test(); [ 0:25] 246 [ 0:25] 247 #if TEST_STD_VER > 17 [ 0:25] 248 // Not yet - waiting on std::copy [ 0:25] 249 // static_assert(test_constexpr()); [ 0:25] 250 #endif [ 0:25] 251 [ 0:25] 252 return 0; [ 0:25] 253 } [ 0:25] # no errors were expected but one was found anyway