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