source: CIVL/examples/languageFeatures/pointersBad.cvl@ 7d77e64

main test-branch
Last change on this file since 7d77e64 was ea777aa, checked in by Alex Wilton <awilton@…>, 3 years ago

Moved examples, include, build_default.properties, common.xml, and README out from dev.civl.com into the root of the repo.

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

  • Property mode set to 100644
File size: 1.0 KB
RevLine 
[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
10union myStruct {
11 int integer;
12 double real;
13}number0, number1;
14#else
15struct 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]24void 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.