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

     1  /* PR optimization/13260 */
     2  
     3  #include <string.h>
     4  
     5  typedef unsigned long u32;
     6  
     7  u32 in_aton(const char* x)
     8  {
     9    return 0x0a0b0c0d;
    10  }
    11  
    12  u32 root_nfs_parse_addr(char *name)
    13  {
    14   u32 addr;
    15   int octets = 0;
    16   char *cp, *cq;
    17  
    18   cp = cq = name;
    19   while (octets < 4) {
    20    while (*cp >= '0' && *cp <= '9')
    21     cp++;
    22    if (cp == cq || cp - cq > 3)
    23     break;
    24    if (*cp == '.' || octets == 3)
    25     octets++;
    26    if (octets < 4)
    27     cp++;
    28    cq = cp;
    29   }
    30  
    31   if (octets == 4 && (*cp == ':' || *cp == '\0')) {
    32    if (*cp == ':')
    33     *cp++ = '\0';
    34    addr = in_aton(name);
    35    strcpy(name, cp);
    36   } else
    37    addr = (-1);
    38  
    39   return addr;
    40  }
    41  
    42  int
    43  main()
    44  {
    45    static char addr[] = "10.11.12.13:/hello";
    46    u32 result = root_nfs_parse_addr(addr);
    47    if (result != 0x0a0b0c0d) { abort(); }
    48    return 0;
    49  }