1 template<int N> struct S { };
2 
3 template<template<typename> class TT>
4 void foo();
5 
bar()6 void bar()
7 {
8   foo<S>(); // { dg-error "no matching function" }
9   // { dg-error "type/value mismatch at argument 1" "" { target *-*-* } .-1 }
10   // { dg-message "expected a template of type .template<class> class TT., got .template<int N> struct S." "" { target *-*-* } .-2 }
11 }
12