// PR c/64279
// { dg-do compile }
// { dg-options "-Wduplicated-branches" }

template <typename T>
void
f (signed char i, int *p)
{
  if (i)
    *p = (signed short) i;
  else
    *p = (unsigned short) i;

  if (i) // { dg-warning "this condition has identical branches" }
    *p = (T) i;
  else
    *p = (unsigned short) i;
}

template void f<unsigned short>(signed char, int *); // { dg-message "required from here" }
template void f<signed short>(signed char, int *);
