blob: 2e1e6a09feadc89b126cf88c7fa40bc7ddf16dca (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
/* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } { "" } } */
/* { dg-additional-options "-fsanitize=bounds" } */
#include <stdlib.h>
#include "../analyzer-decls.h"
int test_1 (int *arr, int i, int n)
{
if (i >= n)
return 0;
return arr[i];
}
int test_2 (int *arr, int i, int n)
{
if (i >= n)
return 0;
if (arr[i])
__analyzer_eval (arr[i]); /* { dg-warning "TRUE" } */
else
__analyzer_eval (arr[i]); /* { dg-warning "FALSE" } */
return 1;
}
int test_3 (int arr[], int i, int n)
{
if (i >= n)
return 0;
if (arr[i])
__analyzer_eval (arr[i]); /* { dg-warning "TRUE" } */
else
__analyzer_eval (arr[i]); /* { dg-warning "FALSE" } */
return 1;
}
void test_4 (int i, int n)
{
int arr[n];
arr[i] = 42;
__analyzer_eval (arr[i] == 42); /* { dg-warning "TRUE" } */
}
void test_5 (int i, int n)
{
int *arr = malloc (sizeof(int) * n);
if (arr)
{
arr[i] = 42;
__analyzer_eval (arr[i] == 42); /* { dg-warning "TRUE" } */
}
free (arr);
}
int global;
void test_6 (int i, int n)
{
int arr[n];
int saved = global;
arr[i] = 42;
__analyzer_eval (saved == global); /* { dg-warning "TRUE" } */
}
|