// Contributed by Gabriel Dos Reis <gdr@codesourcery.com>
// { dg-do compile }

namespace N { }

namespace M
{
  typedef struct { } N; 
}
