modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/20110401-1.c (about)

     1  void asn1_length_der (unsigned long int len, unsigned char *ans, int *ans_len)
     2  {
     3      int k;
     4      unsigned char temp[4];
     5      if (len < 128) {
     6  	if (ans != ((void *) 0))
     7  	    ans[0] = (unsigned char) len;
     8  	*ans_len = 1;
     9      } else {
    10  	k = 0;
    11  	while (len) {
    12  	    temp[k++] = len & 0xFF;
    13  	    len = len >> 8;
    14  	}
    15  	*ans_len = k + 1;
    16  	if (ans != ((void *) 0)) {
    17  	    ans[0] = ((unsigned char) k & 0x7F) + 128;
    18  	    while (k--)
    19  		ans[*ans_len - 1 - k] = temp[k];
    20  	}
    21      }
    22  }