<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/120462>120462</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            It takes a very long time to compile a glibc test
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          hjl-tools
      </td>
    </tr>
</table>

<pre>
    Clang 19 takes a very long time, it ran more than 27 minutes on Intel Core
i7-1195G7 before the process was killed, to compile bug28.c. in glibc test:
```
[hjl@gnu-tgl-3 tmp]$ time gcc -c -O2 bug28.c 

real    0m0.059s
user    0m0.046s
sys     0m0.011s
[hjl@gnu-tgl-3 tmp]$ time clang -c -O2 bug28.c 
 ^c
real    8m46.993s
user    8m44.904s
sys     0m0.132s

[hjl@gnu-tgl-3 tmp]$ cat bug28.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int
main (void)
{
  size_t instances = 16384;
#define X0 "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
  const char *item = "\na\nabbcd55";
#define X3 X0 X0 X0 X0 X0 X0 X0 X0
#define X6 X3 X3 X3 X3 X3 X3 X3 X3
#define X9 X6 X6 X6 X6 X6 X6 X6 X6
#define X12 X9 X9 X9 X9 X9 X9 X9 X9
#define X14 X12 X12 X12 X12
#define TRAILER "%%%%%%%%%%%%%%%%%%%%%%%%%%"
#define TRAILER2 TRAILER TRAILER
 size_t length = instances * strlen (item) + strlen (TRAILER) + 1;

  char *buf = malloc (length + 1);
  snprintf (buf, length + 1,
            X14 TRAILER2 "\n",
            "a", "b", "c", "d", 5);

  const char *p = buf;
 size_t i;
  for (i = 0; i < instances; ++i)
    {
      const char *expected;
      for (expected = item; *expected; ++expected)
        {
          if (*p != *expected)
            {
              printf ("mismatch at offset %zu (%zu): expected %d, got %d\n",
                      (size_t) (p - buf), i, *expected & 0xFF, *p & 0xFF);
              return 1;
            }
          ++p;
        }
    }
  if (strcmp (p, TRAILER "\n") != 0)
    {
      printf ("mismatch at trailer: [%s]\n", p);
      return 1;
    }
  free (buf);
  return 0;
}
[hjl@gnu-tgl-3 tmp]$ 
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysVk2P4ygT_jXkUkqEyyaxDz446cmrkV5ppdEe9rbCNnaYwdgC3PPx61fgjzjT6dYeNqI7UJ9PPQUBbq1stRA5YWfCXnZ8dLfe5Levau_6Xtld2dc_84viuoUoA8e_CQscXoX5CarXLTjZCYIXkA4M19D1RoC7cQ14gk7q0QkLvYbP2gkFl94IQgt52kdRxv53glI0k4OAwfSVsBa-cwvfpFKi9mFdD1XfDVIJKMcW00N1AKmhVbKswAnrSFwQWpAjnQctCDvfviqS0FaPe9eqfQyuGwh7IZgEuNBWFewr2P-BS1DwfrQwgitCM9rRA2WZJbQYrTCLJDl6if1pF0EU2X-Vrwr0vc0IhH2q7mnTLjkesize5E27JDlkNHlMHMVoJ8Af5q64W7J5U4ylrtRYCyDxxbpa9ocbiT89URmp2_d0tZLlqqOF1I7QouNSA8H0tZc1wcyrTmdfIFj5S_ztQGrruK6EBRK_QHSM04TE5yl8LRqpBfxFgSASdtEEWUQwsdMcg3gRrUv8cBk_LpPHJSOY1G-XAXDVa-ugunEDBAvpRBcgz9B4-FeWVe298E0NsS_j2Xg0OwbLJ-PRLAuWT8ajWYTB9Mn4zS6ZbO9_D_o_vxSf___py0zKfzqeJsI14_zt-Z_3ixK6dbfA_GbrYAHWGSXCXvOtIZgBwfNGuoSaFdHcodDZuafl2ITAHVeqr7zTki04YDb5AFg9GKld403KsfE_R4-WlxA6A4BA7lrXuo_xwYYg8knmp-V9Wt2n9TxlK44nu3II-D2kCelyyBbgTW8CQ8GMkvgMfnq5U-lFBM8Ez3I6rgHefGT95zGf-DGIyol6ie8_c45FNbXKtySE3rrMmVbJ9PtAsylf4EYGjqfKMJrOW_HG4Q5yXgDcG0QQO2k77qobcAd901jhgCD7NU5q9msMnBZwx4wsXDJt76b5b01b0xBMJ46nfZUOsA_0Yxauvql3xSbuEeiP63WWDxvB2tQ5shFuNPq-T-ciX5bFxN2wqifV3WjhzjpTdUPA5rNuz_JSVLZwS5_3_F0uneFSCeOp868EZNZfMCtXMGzOzNuatlgbI8R6mlaf2Z7ORU7Ff3SxbS_8XZ3HdRZnfCfy6BQnLGEpst0tZxgzZJhFpwbTWNCyiZDFqWCniJecHncyR4pJhFEapdGJskOVJHVEIzyJpPFWJKGi41IdlHrtDr1pd9LaUeQR0uSIO8VLoWx4OCFq8R2CNjD-sjO5d9qXY2tJQpW0zt7DOOmUyD-7d55T20cP3zx1dqNR-c25wfpHD14JXlvpbmN5qPqO4NXHn7_2g-m_isoRvAZUluB1hv2a4z8BAAD__9HNrrs">