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