github.com/Konstantin8105/c4go@v0.0.0-20240505174241-768bb1c65a51/tests/code_quality/ap.c (about) 1 #include <stdio.h> 2 3 // input argument - C-pointer 4 void a(int* v1) { printf("a: %d\n", *v1); } 5 6 // input argument - C-array 7 void b(int v1[], int size) 8 { 9 for (size--; size >= 0; size--) { 10 printf("b: %d %d\n", size, v1[size]); 11 } 12 } 13 14 long get() 15 { 16 return (long)(0); 17 } 18 19 int main() 20 { 21 // value 22 int i1 = 42; 23 a(&i1); 24 b(&i1, 1); 25 26 // C-array 27 int i2[] = { 11, 22 }; 28 a(i2); 29 b(i2, 2); 30 31 // C-pointer from value 32 int* i3 = &i1; 33 a(i3); 34 b(i3, 1); 35 36 // C-pointer from array 37 int* i4 = i2; 38 a(i4); 39 b(i4, 2); 40 41 // C-pointer from array 42 int* i5 = i2[1]; 43 a(i5); 44 b(i5, 1); 45 46 // pointer arithmetic 47 int* i6 = i5 + 1; 48 a(i6); 49 b(i6, 1); 50 51 // pointer arithmetic 52 int val = 2 - 2; 53 int* i7 = 1 + (1 - 1) + val + 0 * (100 - 2) + i5 + 0 - 0 * 0; 54 a(i7); 55 b(i7, 1); 56 57 // pointer arithmetic 58 int* i8 = i5 + 1 + 0; 59 a(i8); 60 b(i8, 1); 61 62 // pointer arithmetic 63 int i9[] = { *i3, *(i3 + 1) }; 64 a(i9); 65 b(i9, 1); 66 67 // pointer arithmetic 68 int* i10 = 1 + 0 + i5 + 5 * get() + get() + (12 + 3) * get(); 69 a(i10); 70 b(i10, 1); 71 72 // pointer arithmetic 73 int* i11 = 1 + 0 + i5 + 5 * get() + get() - (12 + 3) * get(); 74 a(i11); 75 b(i11, 1); 76 77 return 0; 78 }