modernc.org/cc@v1.0.1/v2/testdata/bug/1.c (about)

     1  #include <assert.h>
     2  extern void abort (void);
     3  
     4  void f1(int *ip) {
     5  	*ip = 24;
     6  }
     7  
     8  void t1() {
     9    	int i = 42;
    10  	assert(i == 42);
    11  	f1(&i);
    12  	assert(i == 24);
    13  }
    14  
    15  void t2() {
    16  	int i = 42;
    17  	int *ip = &i;
    18  	assert(i == 42);
    19  	assert(*ip == 42);
    20  	assert(ip == &i);
    21  	f1(ip);
    22  	assert(i == 24);
    23  }
    24  
    25  void f3(int **ipp) {
    26  	**ipp = 24;
    27  }
    28  
    29  void t3() {
    30  	int i = 42;
    31  	int *ip = &i;
    32  	assert(i == 42);
    33  	assert(*ip == 42);
    34  	assert(ip == &i);
    35  	f3(&ip);
    36  	assert(i == 24);
    37  }
    38  
    39  void f4(int **ipp) {
    40  }
    41  
    42  void t4() {
    43  	int i = 42;
    44  	int *ip = &i;
    45  	assert(i == 42);
    46  	assert(*ip == 42);
    47  	assert(ip == &i);
    48  	f4(&ip);
    49  }
    50  
    51  int main (void) {
    52  	t1();
    53  	t2();
    54  	t3();
    55  	t4();
    56  	return 0;
    57  }