1  int val;
       2  
       3  int *ptr = &val;
       4  float *ptr2 = &val;
       5  
       6  __attribute__((optimize ("-fno-strict-aliasing")))
       7  typepun ()
       8  {
       9    *ptr2=0;
      10  }
      11  
      12  main()
      13  {
      14    *ptr=1;
      15    typepun ();
      16    if (*ptr)
      17      __builtin_abort ();
      18  }
      19