1  /* { dg-do run } */
       2  /* { dg-options "-fsanitize=null -fno-sanitize-recover=null -w" } */
       3  /* { dg-shouldfail "ubsan" } */
       4  
       5  struct S {
       6    int i;
       7    long long j;
       8    long long m;
       9  };
      10  union U {
      11    int k;
      12    struct S l;
      13  };
      14  
      15  __attribute__((noinline, noclone)) int
      16  foo (struct S s)
      17  {
      18    return s.i + s.j + s.m;
      19  }
      20  
      21  __attribute__((noinline, noclone)) int
      22  bar (union U *u)
      23  {
      24    foo (u->l);
      25  }
      26  
      27  union U v;
      28  
      29  int
      30  main (void)
      31  {
      32    union U *u = 0;
      33    asm volatile ("" : "+r" (u) : "r" (&v) : "memory");
      34    return bar (u);
      35  }
      36  
      37  /* { dg-output "member access within null pointer of type 'union U'" } */