[RISC-V] Avoid unnecessary extensions when value is already extended
[official-gcc.git] / gcc / testsuite / c-c++-common / analyzer / symbolic-7.c
blobc1464555e8ac4a52b6b1d49745e370a24d1afd2b
1 #include "analyzer-decls.h"
3 extern void maybe_write (int *);
5 void test_1 (int i)
7 /* An array with purely concrete bindings. */
8 int arr[2];
9 arr[0] = 1066;
10 arr[1] = 1776;
12 /* Concrete reads. */
13 __analyzer_eval (arr[0] == 1066); /* { dg-warning "TRUE" } */
14 __analyzer_eval (arr[1] == 1776); /* { dg-warning "TRUE" } */
16 /* Symbolic read. */
17 __analyzer_describe (0, arr[i]); /* { dg-warning "svalue: 'UNKNOWN\\(int\\)'" } */
18 __analyzer_eval (arr[i] == 1776); /* { dg-warning "UNKNOWN" } */
21 void test_2 (int i)
23 /* An array that could have been touched. */
24 int arr[2];
25 maybe_write (arr);
27 /* Concrete reads. */
28 __analyzer_eval (arr[0] == 42); /* { dg-warning "UNKNOWN" } */
30 /* Symbolic read. */
31 __analyzer_eval (arr[i] == 42); /* { dg-warning "UNKNOWN" } */
34 void test_3_concrete_read (int i)
36 /* An array that can't have been touched. */
37 int arr[2];
39 /* Concrete reads. */
40 __analyzer_eval (arr[0] == 42); /* { dg-warning "use of uninitialized value 'arr\\\[0\\\]'" } */
43 void test_3_symbolic_read (int i)
45 /* An array that can't have been touched. */
46 int arr[2];
48 /* Symbolic read. */
49 __analyzer_eval (arr[i] == 42); /* { dg-warning "use of uninitialized value 'arr\\\[i\\\]'" } */