about summary refs log tree commit diff homepage
path: root/runtime/klee-libc/klee-choose.c
blob: 347933dfaef4ac4536fa7a01a068517f8efa14a5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//===-- klee-choose.c -----------------------------------------------------===//
//
//                     The KLEE Symbolic Virtual Machine
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

#include "klee/klee.h"

unsigned klee_choose(unsigned n) {
  unsigned x;
  klee_make_symbolic(&x, sizeof x, "klee_choose");

  // NB: this will *not* work if they don't compare to n values.
  if(x >= n)
    klee_silent_exit(0);
  return x;
}