modernc.org/cc@v1.0.1/testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/pr37669.c (about)

     1  /* This testcase used to fail because a miscompiled execute_fold_all_builtins. */
     2  /* { dg-options "-fgnu89-inline" } */
     3  
     4  typedef __SIZE_TYPE__ size_t;
     5  extern __inline __attribute__ ((__always_inline__)) int __attribute__
     6  ((__nothrow__)) snprintf (char *__restrict __s, size_t __n, __const char
     7  *__restrict __fmt, ...)  {
     8    return __builtin___snprintf_chk (__s, __n, 2 - 1,       
     9  __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ());
    10  }
    11  int n1, n2, n3, n4, f5, f6;
    12  char * BackgroundGetUniqueString(void)
    13  {
    14    char s[256];
    15    const char *chmap =
    16  "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";
    17    snprintf(s, sizeof(s),
    18  "%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",
    19             chmap[(n1 >> 0) & 0x3f], chmap[(n1 >> 6) & 0x3f],
    20             chmap[(n1 >> 12) & 0x3f], chmap[(n1 >> 18) & 0x3f],
    21             chmap[(n1 >> 24) & 0x3f], chmap[(n1 >> 28) & 0x3f],
    22             chmap[(n2 >> 0) & 0x3f], chmap[(n2 >> 6) & 0x3f],
    23             chmap[(n2 >> 12) & 0x3f], chmap[(n2 >> 18) & 0x3f],
    24             chmap[(n2 >> 24) & 0x3f], chmap[(n2 >> 28) & 0x3f],
    25             chmap[(n3 >> 0) & 0x3f], chmap[(n3 >> 6) & 0x3f],
    26             chmap[(n3 >> 12) & 0x3f], chmap[(n3 >> 18) & 0x3f],
    27             chmap[(n3 >> 24) & 0x3f], chmap[(n3 >> 28) & 0x3f],
    28             chmap[(n4 >> 0) & 0x3f], chmap[(n4 >> 6) & 0x3f],
    29             chmap[(n4 >> 12) & 0x3f], chmap[(n4 >> 18) & 0x3f],
    30             chmap[(n4 >> 24) & 0x3f], chmap[(n4 >> 28) & 0x3f],
    31             chmap[(f5 >> 12) & 0x3f], chmap[(f5 >> 18) & 0x3f],
    32             chmap[(f5 >> 24) & 0x3f], chmap[(f5 >> 28) & 0x3f],
    33             chmap[(f6 >> 0) & 0x3f], chmap[(f6 >> 6) & 0x3f]
    34             );
    35    return __builtin_strdup(s);
    36  }