1  /* PR sanitizer/81281 */
       2  
       3  void
       4  foo (unsigned p, unsigned a, unsigned b)
       5  {
       6    unsigned q = p + 7;
       7    if (a - (1U + __INT_MAX__) >= 2)
       8      __builtin_unreachable ();
       9    int d = p + b;
      10    int c = p + a;
      11    if (c - d != __INT_MAX__)
      12      __builtin_abort ();
      13  }
      14  
      15  void
      16  bar (unsigned p, unsigned a)
      17  {
      18    unsigned q = p + 7;
      19    if (a - (1U + __INT_MAX__) >= 2)
      20      __builtin_unreachable ();
      21    int c = p;
      22    int d = p + a;
      23    if (c - d != -__INT_MAX__ - 1)
      24      __builtin_abort ();
      25  }
      26  
      27  int
      28  main ()
      29  {
      30    foo (-1U, 1U + __INT_MAX__, 1U);
      31    bar (-1U, 1U + __INT_MAX__);
      32    return 0;
      33  }