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);
      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  }