aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/i386/pr78904-5.c
blob: ba06517b7218565a2a2833fdd3924deb468e2cdf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/* PR target/78904 */
/* { dg-do assemble { target { ! ia32 } } } */
/* { dg-options "-O2" } */

typedef __SIZE_TYPE__ size_t;

struct S1
{
  unsigned char pad1;
  unsigned char val;
  unsigned short pad2;
};

extern unsigned char t[256];

void foo (struct S1 a, size_t i)
{
  register size_t _i __asm ("r10") = i;

  asm volatile ("" : "+r" (_i));
  t[_i] = a.val;
}