// { dg-do compile { target c++11 } }

template<class T> struct S0 {};
template<class T> using AS0 = S0<T>;

template<template<class> class TT>
void f(TT<int>);

template class AS0<char>; // { dg-error "alias templ\[^\n\r\]*specialization\[^\n\r\]*after\[^\n\r\]*class" }

void
foo()
{
  AS0<int> a;
  f(a);
}

template<class T, class U> struct Vector{};
template<class T> struct Alloc {};

template<class T> using Vec = Vector<T, Alloc<T> >;

template<class T> void g(Vector<T, Alloc<T> >);

template<template<class T> class TT> void h(TT<int>); // { dg-message "" }

void
bar()
{
  Vec<int> a;
  g(a);
  h(a); // { dg-error "no matching function|wrong number of template arguments" }
}
