1// { dg-do assemble  }
2
3// by Alexandre Oliva <oliva@dcc.unicamp.br>
4
5typedef int t;
6typedef t* u;
7typedef u v;
8typedef v* (*w)(t);
9typedef int t;
10typedef t* u;
11typedef u v;
12typedef v* (*w)(t const); // this is ok
13typedef v* (*w)(t); // { dg-error "" } covers message `previously declared here'
14typedef v* (*const w)(t); // { dg-error "" } invalid redeclaration
15typedef v const* (*w)(t); // { dg-error "" } invalid redeclaration
16typedef v* const (*w)(t); // { dg-error "" } invalid redeclaration
17