(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
arm/
pr60650-2.c
       1  /* { dg-do compile } */
       2  /* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
       3  /* { dg-options "-O2 -fno-omit-frame-pointer -march=armv7-a" } */
       4  
       5  int a, h, j;
       6  long long d, e, i;
       7  int f;
       8  int
       9  fn1 (void *p1, int p2)
      10  {
      11      switch (p2)
      12      case 8:
      13  {
      14      register int b = *(long long *) p1, c asm ("r2");
      15      asm ("%0": "=r" (a), "=r" (c):"r" (b), "r" (0));
      16      *(long long *) p1 = c;
      17      }
      18  }
      19  
      20  int
      21  fn2 ()
      22  {
      23      int k;
      24      k = f;
      25      while (1)
      26      {
      27          fn1 (&i, sizeof i);
      28          e = d + k;
      29          switch (d)
      30          case 0:
      31          (
      32          {
      33              register int l asm ("r4");
      34              register int m asm ("r0");
      35              asm ("  .err  .endif\n\t": "=r" (h), "=r" (j):"r" (m),
      36              "r"
      37              (l));;
      38          });
      39      }
      40  }