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