source: CIVL/examples/languageFeatures/pointersBad.cvl@ 1e10e73

1.23 2.0 main test-branch
Last change on this file since 1e10e73 was 1e10e73, checked in by Ziqing Luo <ziqing@…>, 11 years ago

add a new example "civlValueUndefined.cvl"
modified a example "pointersBad.cvl"

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@2611 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 1005 bytes
Line 
1/* Commandline execution:
2 * civl verify pointersBad.cvl
3 * */
4#include<civlc.cvh>
5#include<pointer.cvh>
6#include<stdlib.h>
7
8#ifdef UNION
9union myStruct {
10 int integer;
11 double real;
12}number0, number1;
13#else
14struct myStruct {
15 int integer;
16 double real;
17}number0, number1;
18#endif
19
20$output int out;
21$input int X;
22$input int *x_ptr;
23void main() {
24 int a = 0;
25 int* b, *c;
26 int * nilPtr = NULL;
27 int arr0[];
28 int arr1[X];
29
30 c = (void *)(-1);
31 b = (int *)malloc(sizeof(int));
32 number0.integer = 0;
33 number0.real = .1;
34 free(b);
35 $choose {
36#ifdef ICLeafNode //pointer to incomplete array
37 {$leaf_node_ptrs(&arr1, &arr0);}
38#elif defined NCLeafNode //pointer to array of non-concrete extent
39 {$leaf_node_ptrs(&arr0, &arr1);}
40#else
41 {$leaf_node_ptrs(&number1, &number0);}//pointer to an object of struct type
42 {a = *(&out);}
43 {a = *x_ptr;}
44 {c = &a + 1; a = *c;}
45 {a = *c;}
46 {a = *b;}
47 {a = *nilPtr;}
48#endif
49 }
50}
Note: See TracBrowser for help on using the repository browser.