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