On 10/25/14 09:16, Marek Polacek wrote:
This patch teaches the compiler to also print the typedef-stripped version of a type when appropriate. C++ FE does this for a few years now. With this patch we're able to say note: expected 'B * {aka struct A *}' but argument is of type 'struct B *' Compare that with note: expected 'struct B *' but argument is of type 'struct B *' that we output until recently.We must be careful not to print the typedef-stripped part if it's identical to the non-stripped part. I worked it out by using a temporary c_pretty_printer and an obstack (C++'s type_to_string uses an obstack too). Bootstrapped/regtested on x86_64-linux and ppc64-linux, ok for trunk? 2014-10-25 Marek Polacek <[email protected]> * c-objc-common.c (c_tree_printer) <case 'T'>: For a typedef name, print the stripped version as well, if they're not the same. * gcc.dg/diag-aka-1.c: New test. * gcc.dg/pr13804-1.c: Adjust dg-error. * gcc.dg/redecl-14.c: Likewise. * gcc.dg/pr56980.c: Adjust dg-message.
OK. Jeff
