source:
CIVL/examples/languageFeatures/pointersBad.cvl@
e2570cd
| Last change on this file since e2570cd was ea777aa, checked in by , 3 years ago | |
|---|---|
|
|
| File size: 1.0 KB | |
| Rev | Line | |
|---|---|---|
| [262ecde] | 1 | /* Commandline execution: |
| 2 | * civl verify pointersBad.cvl | |
| [c33bde8] | 3 | * This is an example for covering some erroneous cases. |
| [262ecde] | 4 | * */ |
| 5 | #include<civlc.cvh> | |
| [1e10e73] | 6 | #include<pointer.cvh> |
| [262ecde] | 7 | #include<stdlib.h> |
| 8 | ||
| [1e10e73] | 9 | #ifdef UNION |
| 10 | union myStruct { | |
| 11 | int integer; | |
| 12 | double real; | |
| 13 | }number0, number1; | |
| 14 | #else | |
| 15 | struct myStruct { | |
| 16 | int integer; | |
| 17 | double real; | |
| 18 | }number0, number1; | |
| 19 | #endif | |
| 20 | ||
| [262ecde] | 21 | $output int out; |
| [1e10e73] | 22 | $input int X; |
| [050ee5d] | 23 | $input int *x_ptr; |
| [262ecde] | 24 | void main() { |
| [1e10e73] | 25 | int a = 0; |
| [f79e288] | 26 | int* b, *c; |
| 27 | int * nilPtr = NULL; | |
| [1e10e73] | 28 | int arr0[]; |
| 29 | int arr1[X]; | |
| [262ecde] | 30 | |
| [f79e288] | 31 | c = (void *)(-1); |
| [262ecde] | 32 | b = (int *)malloc(sizeof(int)); |
| [1e10e73] | 33 | number0.integer = 0; |
| 34 | number0.real = .1; | |
| [262ecde] | 35 | free(b); |
| [f79e288] | 36 | $choose { |
| [1e10e73] | 37 | #ifdef ICLeafNode //pointer to incomplete array |
| 38 | {$leaf_node_ptrs(&arr1, &arr0);} | |
| 39 | #elif defined NCLeafNode //pointer to array of non-concrete extent | |
| 40 | {$leaf_node_ptrs(&arr0, &arr1);} | |
| 41 | #else | |
| 42 | {$leaf_node_ptrs(&number1, &number0);}//pointer to an object of struct type | |
| [19d1808f] | 43 | {a = *(&out);} |
| 44 | {a = *x_ptr;} | |
| 45 | {c = &a + 1; a = *c;} | |
| 46 | {a = *c;} | |
| 47 | {a = *b;} | |
| 48 | {a = *nilPtr;} | |
| [1e10e73] | 49 | #endif |
| [f79e288] | 50 | } |
| [262ecde] | 51 | } |
Note:
See TracBrowser
for help on using the repository browser.
