[Bug middle-end/47650] wrong output of print_generic_decl() called from a plugin

rguenther at suse dot de gcc-bugzilla@gcc.gnu.org
Wed Feb 9 16:45:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47650

--- Comment #9 from rguenther at suse dot de <rguenther at suse dot de> 2011-02-09 16:33:30 UTC ---
On Wed, 9 Feb 2011, joe at mcknight dot de wrote:

> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47650
> 
> --- Comment #8 from joe at mcknight dot de 2011-02-09 16:23:44 UTC ---
> (In reply to comment #6)
> > See http://gcc.gnu.org/ml/gcc-patches/2011-01/msg00956.html for a patch
> > (queued for 4.7, several tree-dump check testcases have to be adjusted).
> 
> Richard, I've found another example for incorrect output of
> print_generic_decl().
> 
> Here:
> 
> typedef struct {
>   double dvar;
>   int   ivar;
> } *tpdefp;
> 
> int myfunc(tpdefp var);
> 
> The output would not treat the variable as being of the new type but it would
> repeat the declaration of the struct in print_generic_decl() and output
> (including newlines):
> 
> extern int myfunc (struct
> {
>   double dvar;
>   int ivar;
> } *);
> 
> That could be related to the function pointer issue where print_generic_decl()
> also rather repeats the declaration instead of printing the new type.

You should use a debugger to see why that happens, it should end up
printing TYPE_NAME which should be a TYPE_DECL with a DECL_NAME
which should be an IDENTIFIER_NODE.  You can also try TDF_SLIM.

Richard.



More information about the Gcc-bugs mailing list