[ 0:01] compiling /home/xrockai/src/divine/nightly/test/libcxx/containers/lower_bound.pass.cpp [ 0:01] In file included from /home/xrockai/src/divine/nightly/test/libcxx/containers/lower_bound.pass.cpp:19: [ 0:01] In file included from /dios/libcxx/include/set:427: [ 0:01] In file included from /dios/libcxx/include/__tree:14: [ 0:01] In file included from /dios/libcxx/include/iterator:420: [ 0:01] In file included from /dios/libcxx/include/iosfwd:95: [ 0:01] In file included from /dios/libcxx/include/wchar.h:118: [ 0:01] In file included from /dios/include/wchar.h:9: [ 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.21/_klee_out" [ 0:15] KLEE: Using Z3 solver backend [ 0:15] WARNING: this target does not support the llvm.stacksave intrinsic. [ 0:15] 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:16] [ 0:16] KLEE: WARNING: undefined reference to function: _Z10klee_abortv [ 0:31] KLEE: WARNING: undefined reference to function: __dios_tainted_init [ 0:31] KLEE: WARNING: undefined reference to function: klee_free [ 0:31] KLEE: WARNING: undefined reference to function: klee_malloc [ 0:31] KLEE: WARNING ONCE: Using zero size array fix for landingpad instruction filter [ 0:31] i:1 [ 0:31] KLEE: WARNING ONCE: Alignment of memory from call "klee_malloc" is not modelled. Using alignment of 8. [ 0:31] about to __boot:0 [ 0:31] about to run the scheduler:0 [ 0:31] KLEE: WARNING ONCE: calling external: __dios_tainted_init() at /dios/libc/sys/start.cpp:49 5 [ 0:31] KLEE: ERROR: /dios/libc/sys/start.cpp:87: failed external call: __dios_tainted_init [ 0:31] KLEE: NOTE: now ignoring this error at this location [ 0:31] KLEE: ERROR: EXITING ON ERROR: [ 0:34] Error: failed external call: __dios_tainted_init [ 0:34] File: /dios/libc/sys/start.cpp [ 0:34] Line: 87 [ 0:34] assembly.ll line: 150915 [ 0:34] Stack: [ 0:34] #000150915 in __dios_start (l=2, argc=1, argv=94111271461896, envp=94111271539208) at /dios/libc/sys/start.cpp:87 [ 0:34] #100098744 in _ZN6__dios10sched_nullINS_5ClockINS_10NondetKleeINS_4BaseEEEEEE13run_schedulerINS_7ContextEEEvv () at /dios/sys/sched_null.hpp:163 [ 0:34] #200159495 in klee_boot (argc=2, argv=94111089147392) at /dios/arch/klee/boot.c:41 [ 0:34] [ 0:34] [ 0:34] 1 /* TAGS: c++ fin */ [ 0:34] 2 /* CC_OPTS: -std=c++2a */ [ 0:34] 3 /* VERIFY_OPTS: -o nofail:malloc */ [ 0:34] 4 //===----------------------------------------------------------------------===// [ 0:34] 5 // [ 0:34] 6 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. [ 0:34] 7 // See https://llvm.org/LICENSE.txt for license information. [ 0:34] 8 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception [ 0:34] 9 // [ 0:34] 10 //===----------------------------------------------------------------------===// [ 0:34] 11 [ 0:34] 12 // [ 0:34] 13 [ 0:34] 14 // class set [ 0:34] 15 [ 0:34] 16 // iterator lower_bound(const key_type& k); [ 0:34] 17 // const_iterator lower_bound(const key_type& k) const; [ 0:34] 18 [ 0:34] 19 #include [ 0:34] 20 #include [ 0:34] 21 [ 0:34] 22 #include "test_macros.h" [ 0:34] 23 #include "min_allocator.h" [ 0:34] 24 #include "private_constructor.hpp" [ 0:34] 25 [ 0:34] 26 int main(int, char**) [ 0:34] 27 { [ 0:34] 28 { [ 0:34] 29 typedef int V; [ 0:34] 30 typedef std::set M; [ 0:34] 31 { [ 0:34] 32 typedef M::iterator R; [ 0:34] 33 V ar[] = [ 0:34] 34 { [ 0:34] 35 5, [ 0:34] 36 7, [ 0:34] 37 9, [ 0:34] 38 11, [ 0:34] 39 13, [ 0:34] 40 15, [ 0:34] 41 17, [ 0:34] 42 19 [ 0:34] 43 }; [ 0:34] 44 M m(ar, ar+sizeof(ar)/sizeof(ar[0])); [ 0:34] 45 R r = m.lower_bound(5); [ 0:34] 46 assert(r == m.begin()); [ 0:34] 47 r = m.lower_bound(7); [ 0:34] 48 assert(r == next(m.begin())); [ 0:34] 49 r = m.lower_bound(9); [ 0:34] 50 assert(r == next(m.begin(), 2)); [ 0:34] 51 r = m.lower_bound(11); [ 0:34] 52 assert(r == next(m.begin(), 3)); [ 0:34] 53 r = m.lower_bound(13); [ 0:34] 54 assert(r == next(m.begin(), 4)); [ 0:34] 55 r = m.lower_bound(15); [ 0:34] 56 assert(r == next(m.begin(), 5)); [ 0:34] 57 r = m.lower_bound(17); [ 0:34] 58 assert(r == next(m.begin(), 6)); [ 0:34] 59 r = m.lower_bound(19); [ 0:34] 60 assert(r == next(m.begin(), 7)); [ 0:34] 61 r = m.lower_bound(4); [ 0:34] 62 assert(r == next(m.begin(), 0)); [ 0:34] 63 r = m.lower_bound(6); [ 0:34] 64 assert(r == next(m.begin(), 1)); [ 0:34] 65 r = m.lower_bound(8); [ 0:34] 66 assert(r == next(m.begin(), 2)); [ 0:34] 67 r = m.lower_bound(10); [ 0:34] 68 assert(r == next(m.begin(), 3)); [ 0:34] 69 r = m.lower_bound(12); [ 0:34] 70 assert(r == next(m.begin(), 4)); [ 0:34] 71 r = m.lower_bound(14); [ 0:34] 72 assert(r == next(m.begin(), 5)); [ 0:34] 73 r = m.lower_bound(16); [ 0:34] 74 assert(r == next(m.begin(), 6)); [ 0:34] 75 r = m.lower_bound(18); [ 0:34] 76 assert(r == next(m.begin(), 7)); [ 0:34] 77 r = m.lower_bound(20); [ 0:34] 78 assert(r == next(m.begin(), 8)); [ 0:34] 79 } [ 0:34] 80 { [ 0:34] 81 typedef M::const_iterator R; [ 0:34] 82 V ar[] = [ 0:34] 83 { [ 0:34] 84 5, [ 0:34] 85 7, [ 0:34] 86 9, [ 0:34] 87 11, [ 0:34] 88 13, [ 0:34] 89 15, [ 0:34] 90 17, [ 0:34] 91 19 [ 0:34] 92 }; [ 0:34] 93 const M m(ar, ar+sizeof(ar)/sizeof(ar[0])); [ 0:34] 94 R r = m.lower_bound(5); [ 0:34] 95 assert(r == m.begin()); [ 0:34] 96 r = m.lower_bound(7); [ 0:34] 97 assert(r == next(m.begin())); [ 0:34] 98 r = m.lower_bound(9); [ 0:34] 99 assert(r == next(m.begin(), 2)); [ 0:34] 100 r = m.lower_bound(11); [ 0:34] 101 assert(r == next(m.begin(), 3)); [ 0:34] 102 r = m.lower_bound(13); [ 0:34] 103 assert(r == next(m.begin(), 4)); [ 0:34] 104 r = m.lower_bound(15); [ 0:34] 105 assert(r == next(m.begin(), 5)); [ 0:34] 106 r = m.lower_bound(17); [ 0:34] 107 assert(r == next(m.begin(), 6)); [ 0:34] 108 r = m.lower_bound(19); [ 0:34] 109 assert(r == next(m.begin(), 7)); [ 0:34] 110 r = m.lower_bound(4); [ 0:34] 111 assert(r == next(m.begin(), 0)); [ 0:34] 112 r = m.lower_bound(6); [ 0:34] 113 assert(r == next(m.begin(), 1)); [ 0:34] 114 r = m.lower_bound(8); [ 0:34] 115 assert(r == next(m.begin(), 2)); [ 0:34] 116 r = m.lower_bound(10); [ 0:34] 117 assert(r == next(m.begin(), 3)); [ 0:34] 118 r = m.lower_bound(12); [ 0:34] 119 assert(r == next(m.begin(), 4)); [ 0:34] 120 r = m.lower_bound(14); [ 0:34] 121 assert(r == next(m.begin(), 5)); [ 0:34] 122 r = m.lower_bound(16); [ 0:34] 123 assert(r == next(m.begin(), 6)); [ 0:34] 124 r = m.lower_bound(18); [ 0:34] 125 assert(r == next(m.begin(), 7)); [ 0:34] 126 r = m.lower_bound(20); [ 0:34] 127 assert(r == next(m.begin(), 8)); [ 0:34] 128 } [ 0:34] 129 } [ 0:34] 130 #if TEST_STD_VER >= 11 [ 0:34] 131 { [ 0:34] 132 typedef int V; [ 0:34] 133 typedef std::set, min_allocator> M; [ 0:34] 134 { [ 0:34] 135 typedef M::iterator R; [ 0:34] 136 V ar[] = [ 0:34] 137 { [ 0:34] 138 5, [ 0:34] 139 7, [ 0:34] 140 9, [ 0:34] 141 11, [ 0:34] 142 13, [ 0:34] 143 15, [ 0:34] 144 17, [ 0:34] 145 19 [ 0:34] 146 }; [ 0:34] 147 M m(ar, ar+sizeof(ar)/sizeof(ar[0])); [ 0:34] 148 R r = m.lower_bound(5); [ 0:34] 149 assert(r == m.begin()); [ 0:34] 150 r = m.lower_bound(7); [ 0:34] 151 assert(r == next(m.begin())); [ 0:34] 152 r = m.lower_bound(9); [ 0:34] 153 assert(r == next(m.begin(), 2)); [ 0:34] 154 r = m.lower_bound(11); [ 0:34] 155 assert(r == next(m.begin(), 3)); [ 0:34] 156 r = m.lower_bound(13); [ 0:34] 157 assert(r == next(m.begin(), 4)); [ 0:34] 158 r = m.lower_bound(15); [ 0:34] 159 assert(r == next(m.begin(), 5)); [ 0:34] 160 r = m.lower_bound(17); [ 0:34] 161 assert(r == next(m.begin(), 6)); [ 0:34] 162 r = m.lower_bound(19); [ 0:34] 163 assert(r == next(m.begin(), 7)); [ 0:34] 164 r = m.lower_bound(4); [ 0:34] 165 assert(r == next(m.begin(), 0)); [ 0:34] 166 r = m.lower_bound(6); [ 0:34] 167 assert(r == next(m.begin(), 1)); [ 0:34] 168 r = m.lower_bound(8); [ 0:34] 169 assert(r == next(m.begin(), 2)); [ 0:34] 170 r = m.lower_bound(10); [ 0:34] 171 assert(r == next(m.begin(), 3)); [ 0:34] 172 r = m.lower_bound(12); [ 0:34] 173 assert(r == next(m.begin(), 4)); [ 0:34] 174 r = m.lower_bound(14); [ 0:34] 175 assert(r == next(m.begin(), 5)); [ 0:34] 176 r = m.lower_bound(16); [ 0:34] 177 assert(r == next(m.begin(), 6)); [ 0:34] 178 r = m.lower_bound(18); [ 0:34] 179 assert(r == next(m.begin(), 7)); [ 0:34] 180 r = m.lower_bound(20); [ 0:34] 181 assert(r == next(m.begin(), 8)); [ 0:34] 182 } [ 0:34] 183 { [ 0:34] 184 typedef M::const_iterator R; [ 0:34] 185 V ar[] = [ 0:34] 186 { [ 0:34] 187 5, [ 0:34] 188 7, [ 0:34] 189 9, [ 0:34] 190 11, [ 0:34] 191 13, [ 0:34] 192 15, [ 0:34] 193 17, [ 0:34] 194 19 [ 0:34] 195 }; [ 0:34] 196 const M m(ar, ar+sizeof(ar)/sizeof(ar[0])); [ 0:34] 197 R r = m.lower_bound(5); [ 0:34] 198 assert(r == m.begin()); [ 0:34] 199 r = m.lower_bound(7); [ 0:34] 200 assert(r == next(m.begin())); [ 0:34] 201 r = m.lower_bound(9); [ 0:34] 202 assert(r == next(m.begin(), 2)); [ 0:34] 203 r = m.lower_bound(11); [ 0:34] 204 assert(r == next(m.begin(), 3)); [ 0:34] 205 r = m.lower_bound(13); [ 0:34] 206 assert(r == next(m.begin(), 4)); [ 0:34] 207 r = m.lower_bound(15); [ 0:34] 208 assert(r == next(m.begin(), 5)); [ 0:34] 209 r = m.lower_bound(17); [ 0:34] 210 assert(r == next(m.begin(), 6)); [ 0:34] 211 r = m.lower_bound(19); [ 0:34] 212 assert(r == next(m.begin(), 7)); [ 0:34] 213 r = m.lower_bound(4); [ 0:34] 214 assert(r == next(m.begin(), 0)); [ 0:34] 215 r = m.lower_bound(6); [ 0:34] 216 assert(r == next(m.begin(), 1)); [ 0:34] 217 r = m.lower_bound(8); [ 0:34] 218 assert(r == next(m.begin(), 2)); [ 0:34] 219 r = m.lower_bound(10); [ 0:34] 220 assert(r == next(m.begin(), 3)); [ 0:34] 221 r = m.lower_bound(12); [ 0:34] 222 assert(r == next(m.begin(), 4)); [ 0:34] 223 r = m.lower_bound(14); [ 0:34] 224 assert(r == next(m.begin(), 5)); [ 0:34] 225 r = m.lower_bound(16); [ 0:34] 226 assert(r == next(m.begin(), 6)); [ 0:34] 227 r = m.lower_bound(18); [ 0:34] 228 assert(r == next(m.begin(), 7)); [ 0:34] 229 r = m.lower_bound(20); [ 0:34] 230 assert(r == next(m.begin(), 8)); [ 0:34] 231 } [ 0:34] 232 } [ 0:34] 233 #endif [ 0:34] 234 #if TEST_STD_VER > 11 [ 0:34] 235 { [ 0:34] 236 typedef int V; [ 0:34] 237 typedef std::set> M; [ 0:34] 238 typedef M::iterator R; [ 0:34] 239 [ 0:34] 240 V ar[] = [ 0:34] 241 { [ 0:34] 242 5, [ 0:34] 243 7, [ 0:34] 244 9, [ 0:34] 245 11, [ 0:34] 246 13, [ 0:34] 247 15, [ 0:34] 248 17, [ 0:34] 249 19 [ 0:34] 250 }; [ 0:34] 251 M m(ar, ar+sizeof(ar)/sizeof(ar[0])); [ 0:34] 252 R r = m.lower_bound(5); [ 0:34] 253 assert(r == m.begin()); [ 0:34] 254 r = m.lower_bound(7); [ 0:34] 255 assert(r == next(m.begin())); [ 0:34] 256 r = m.lower_bound(9); [ 0:34] 257 assert(r == next(m.begin(), 2)); [ 0:34] 258 r = m.lower_bound(11); [ 0:34] 259 assert(r == next(m.begin(), 3)); [ 0:34] 260 r = m.lower_bound(13); [ 0:34] 261 assert(r == next(m.begin(), 4)); [ 0:34] 262 r = m.lower_bound(15); [ 0:34] 263 assert(r == next(m.begin(), 5)); [ 0:34] 264 r = m.lower_bound(17); [ 0:34] 265 assert(r == next(m.begin(), 6)); [ 0:34] 266 r = m.lower_bound(19); [ 0:34] 267 assert(r == next(m.begin(), 7)); [ 0:34] 268 r = m.lower_bound(4); [ 0:34] 269 assert(r == next(m.begin(), 0)); [ 0:34] 270 r = m.lower_bound(6); [ 0:34] 271 assert(r == next(m.begin(), 1)); [ 0:34] 272 r = m.lower_bound(8); [ 0:34] 273 assert(r == next(m.begin(), 2)); [ 0:34] 274 r = m.lower_bound(10); [ 0:34] 275 assert(r == next(m.begin(), 3)); [ 0:34] 276 r = m.lower_bound(12); [ 0:34] 277 assert(r == next(m.begin(), 4)); [ 0:34] 278 r = m.lower_bound(14); [ 0:34] 279 assert(r == next(m.begin(), 5)); [ 0:34] 280 r = m.lower_bound(16); [ 0:34] 281 assert(r == next(m.begin(), 6)); [ 0:34] 282 r = m.lower_bound(18); [ 0:34] 283 assert(r == next(m.begin(), 7)); [ 0:34] 284 r = m.lower_bound(20); [ 0:34] 285 assert(r == next(m.begin(), 8)); [ 0:34] 286 } [ 0:34] 287 [ 0:34] 288 { [ 0:34] 289 typedef PrivateConstructor V; [ 0:34] 290 typedef std::set> M; [ 0:34] 291 typedef M::iterator R; [ 0:34] 292 [ 0:34] 293 M m; [ 0:34] 294 m.insert ( V::make ( 5 )); [ 0:34] 295 m.insert ( V::make ( 7 )); [ 0:34] 296 m.insert ( V::make ( 9 )); [ 0:34] 297 m.insert ( V::make ( 11 )); [ 0:34] 298 m.insert ( V::make ( 13 )); [ 0:34] 299 m.insert ( V::make ( 15 )); [ 0:34] 300 m.insert ( V::make ( 17 )); [ 0:34] 301 m.insert ( V::make ( 19 )); [ 0:34] 302 [ 0:34] 303 R r = m.lower_bound(5); [ 0:34] 304 assert(r == m.begin()); [ 0:34] 305 r = m.lower_bound(7); [ 0:34] 306 assert(r == next(m.begin())); [ 0:34] 307 r = m.lower_bound(9); [ 0:34] 308 assert(r == next(m.begin(), 2)); [ 0:34] 309 r = m.lower_bound(11); [ 0:34] 310 assert(r == next(m.begin(), 3)); [ 0:34] 311 r = m.lower_bound(13); [ 0:34] 312 assert(r == next(m.begin(), 4)); [ 0:34] 313 r = m.lower_bound(15); [ 0:34] 314 assert(r == next(m.begin(), 5)); [ 0:34] 315 r = m.lower_bound(17); [ 0:34] 316 assert(r == next(m.begin(), 6)); [ 0:34] 317 r = m.lower_bound(19); [ 0:34] 318 assert(r == next(m.begin(), 7)); [ 0:34] 319 r = m.lower_bound(4); [ 0:34] 320 assert(r == next(m.begin(), 0)); [ 0:34] 321 r = m.lower_bound(6); [ 0:34] 322 assert(r == next(m.begin(), 1)); [ 0:34] 323 r = m.lower_bound(8); [ 0:34] 324 assert(r == next(m.begin(), 2)); [ 0:34] 325 r = m.lower_bound(10); [ 0:34] 326 assert(r == next(m.begin(), 3)); [ 0:34] 327 r = m.lower_bound(12); [ 0:34] 328 assert(r == next(m.begin(), 4)); [ 0:34] 329 r = m.lower_bound(14); [ 0:34] 330 assert(r == next(m.begin(), 5)); [ 0:34] 331 r = m.lower_bound(16); [ 0:34] 332 assert(r == next(m.begin(), 6)); [ 0:34] 333 r = m.lower_bound(18); [ 0:34] 334 assert(r == next(m.begin(), 7)); [ 0:34] 335 r = m.lower_bound(20); [ 0:34] 336 assert(r == next(m.begin(), 8)); [ 0:34] 337 } [ 0:34] 338 #endif [ 0:34] 339 [ 0:34] 340 [ 0:34] 341 return 0; [ 0:34] 342 } [ 0:34] # no errors were expected but one was found anyway