// { dg-do assemble } // Contributed by Reid M. Pinchback // Adapted by Alexandre Oliva // plain char, signed char and unsigned char are distinct types template struct bug {}; template struct bug { typedef char t; }; template struct bug { typedef unsigned char t; }; template struct bug { typedef signed char t; }; template struct bug { typedef char t; }; template struct bug { typedef unsigned char t; }; template struct bug { typedef signed char t; }; void foo() { bug::t(); bug::t(); bug::t(); bug::t(); bug::t(); bug::t(); }