This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [C PATCH] Add 'aka's on type printing in diagnostics


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  <polacek@redhat.com>

	* 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]