2
OPT: -deps -slice-print -slice-return main -journal-disable
3
OPT: -deps -slice-print -slice-return SizeOf_1 -slicing-debug -no-slice-callers -journal-disable
4
OPT: -deps -slice-print -slice-return SizeOf_2 -slicing-debug -no-slice-callers -journal-disable
5
OPT: -deps -slice-print -slice-return SizeOfE_pt1 -slicing-debug -no-slice-callers -journal-disable
6
OPT: -deps -slice-print -slice-return SizeOfE_pt2 -slicing-debug -no-slice-callers -journal-disable
7
OPT: -deps -slice-print -slice-return SizeOfE_pt3 -slicing-debug -no-slice-callers -journal-disable
8
OPT: -deps -slice-print -slice-return SizeOfE_pt_deref_1 -slicing-debug -no-slice-callers -journal-disable
9
OPT: -deps -slice-print -slice-return SizeOfE_tab_1 -slicing-debug -no-slice-callers -journal-disable
10
OPT: -deps -slice-print -slice-return SizeOfE_pt_tab_1 -slicing-debug -no-slice-callers -journal-disable
11
OPT: -deps -slice-print -slice-return SizeOfE_pt_tab_2 -slicing-debug -no-slice-callers -journal-disable
12
OPT: -deps -slice-print -slice-return SizeOfE_tab_acces_1 -slicing-debug -no-slice-callers -journal-disable
13
OPT: -deps -slice-print -slice-pragma main -journal-disable
14
OPT: -deps -slice-print -slice-assert main -journal-disable
16
struct St { int i, *p, tab[5] ; } st ;
18
unsigned int SizeOf_1 (void) {
22
int tab[5] = {0,1,2,3,4};
23
return sizeof(int *) ;
25
unsigned int SizeOf_2 (void) {
29
int tab[5] = {0,1,2,3,4};
30
return sizeof(struct St) ;
32
unsigned int SizeOfE_pt1 (void) {
36
int tab[5] = {0,1,2,3,4};
39
unsigned int SizeOfE_pt2 (void) {
43
int tab[5] = {0,1,2,3,4};
46
unsigned int SizeOfE_pt3 (void) {
50
int tab[5] = {0,1,2,3,4};
53
unsigned int SizeOfE_pt_deref_1 (void) {
57
int tab[5] = {0,1,2,3,4};
58
return sizeof(*(p+i)) ;
60
unsigned int SizeOfE_tab_1 (void) {
64
int tab[5] = {0,1,2,3,4};
67
unsigned int SizeOfE_pt_tab_1 (void) {
71
int tab[5] = {0,1,2,3,4};
72
return sizeof(tab+i) ;
74
unsigned int SizeOfE_pt_tab_2 (void) {
78
int tab[5] = {0,1,2,3,4};
79
return sizeof(&(tab[i])) ;
81
unsigned int SizeOfE_tab_acces_1 (void) {
85
int tab[5] = {0,1,2,3,4};
86
return sizeof(tab[i]) ;
91
r += sizeof (struct St);
92
// How to write something like this: assert r == sizeof (st)
99
r += SizeOfE_pt_deref_1 ();
100
r += SizeOfE_tab_1 ();
101
r += SizeOfE_pt_tab_1 ();
102
r += SizeOfE_pt_tab_2 ();
103
r += SizeOfE_tab_acces_1 ();
104
//@ slice pragma expr r;