1/* PR debug/61923 */
2/* { dg-do compile } */
3/* { dg-options "-O2 -fcompare-debug" } */
4
5typedef struct
6{
7  struct
8  {
9    struct
10    {
11      char head;
12    } tickets;
13  };
14} arch_spinlock_t;
15struct ext4_map_blocks
16{
17  int m_lblk;
18  int m_len;
19  int m_flags;
20};
21int ext4_da_map_blocks_ei_0;
22void fn2 (int, int);
23void fn1 (int p1, struct ext4_map_blocks *p2)
24{
25  int ret;
26  if (p2->m_flags)
27    {
28      ext4_da_map_blocks_ei_0++;
29      arch_spinlock_t *lock;
30      switch (sizeof *&lock->tickets.head)
31      case 1:
32      asm("" : "+m"(*&lock->tickets.head) : ""(0));
33      __asm__("");
34      ret = 0;
35    }
36  fn2 (p2->m_lblk, p2->m_len);
37}
38