Line data Source code
1 : /*
2 : * Copyright (c) 2014-2016 ISPRAS (http://www.ispras.ru)
3 : * Institute for System Programming of the Russian Academy of Sciences
4 : *
5 : * Licensed under the Apache License, Version 2.0 (the "License");
6 : * you may not use this file except in compliance with the License.
7 : * You may obtain a copy of the License at
8 : *
9 : * http://www.apache.org/licenses/LICENSE-2.0
10 : *
11 : * Unless required by applicable law or agreed to in writing, software
12 : * distributed under the License is distributed on an "AS IS" BASIS,
13 : * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 : * ee the License for the specific language governing permissions and
15 : * limitations under the License.
16 : */
17 :
18 : #include <verifier/common.h>
19 :
20 : /* http://sv-comp.sosy-lab.org/2015/rules.php */
21 : void __VERIFIER_error(void);
22 :
23 : void ldv_assume(int expression)
24 : {
25 22 : if (!expression)
26 11 : {
27 : /* Cut this path */
28 : ldv_assume_label:
29 11 : goto ldv_assume_label;
30 : }
31 11 : }
32 :
33 : void ldv_stop(void) {
34 : /* Stop analysis */
35 : ldv_stop_label:
36 2 : goto ldv_stop_label;
37 : }
38 2 :
39 : /* Explicit model for GCC function __builin_expect(). Without this model
40 : * return value of __builtin_expect() will be treated as nondetermined by
41 : * verifiers.
42 : */
43 : long __builtin_expect(long exp, long c)
44 : {
45 0 : return exp;
46 : }
47 :
48 : /* This function causes the program to exit abnormally. GCC implements this
49 : * function by using a target-dependent mechanism (such as intentionally
50 : * executing an illegal instruction) or by calling abort. The mechanism used
51 : * may vary from release to release so you should not rely on any particular
52 : * implementation (http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html).
53 : */
54 : void __builtin_trap(void)
55 : {
56 0 : ldv_assert("", 0);
57 0 : }
|