1 /* PR debug/61923 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -fcompare-debug" } */
4 
5 typedef struct
6 {
7   struct
8   {
9     struct
10     {
11       char head;
12     } tickets;
13   };
14 } arch_spinlock_t;
15 struct ext4_map_blocks
16 {
17   int m_lblk;
18   int m_len;
19   int m_flags;
20 };
21 int ext4_da_map_blocks_ei_0;
22 void fn2 (int, int);
fn1(int p1,struct ext4_map_blocks * p2)23 void 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