https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109520

            Bug ID: 109520
           Summary: compiler never terminate
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: yangyibiao at nju dot edu.cn
  Target Milestone: ---

Created attachment 54864
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54864&action=edit
triggering source code

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/13.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-git/configure --enable-languages=c,c++
--disable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 13.0.0 20221107 (experimental) (GCC)

$ cat small.c
#if defined __x86_64__
#define ASM(s) asm (s)
#else
#define ASM(s)
#endif

int
foo (int a0, int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8,
     int a9, int a10, int a11, int a12, int a13, int a14, int a15, int a16)
{
  register int v0 ASM ("rax") = a3;
  register int v1 ASM ("rbx") = a4;
  register int v2 ASM ("rcx") = a5;
  register int v3 ASM ("rdx") = a6;
  register int v4 ASM ("rsi") = a7;
  register int v5 ASM ("rdi") = a8;
  register int v6 ASM ("r8") = a9;
  register int v7 ASM ("r9") = a10;
  register int v8 ASM ("r10") = a11;
  register int v9 ASM ("r11") = a12;
  register int v10 ASM ("r12") = a13;
  register int v11 ASM ("r13") = a14;
  register int v12 ASM ("r14") = a15;
  register int v13 ASM ("r15") = a16;
  int x;

  v0 += a0;
  v1 += a1;
  v2 += a2;
  v0 |= a0;
  v1 |= a1;
  v2 |= a2;
  v0 ^= a0;
  v1 ^= a1;
  v2 ^= a2;
  v0 &= a0;
  v1 &= a1;
  v2 &= a2;
  asm goto ("": "=r" (x) : : : lab);
  a1 ^= a0;
  a2 = a1;
  a0 |= a2;
  a0 |= x;
 lab:
  v0 += x + a0 + a1 + a2;
  v1 -= a0 - a1 - a2;
  v2 |= a0 | a1 | a2;
  v3 |= a0 & a1 & a2;
  v4 ^= a0 ^ a1 ^ a2;
  return  v0 + v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8 + v9 + v10 + v11 + v12 +
v13 + a0 + a1 + a2;
}

$ gcc small.c

Reply via email to