On Wed, Apr 09, 2014 at 02:10:04PM -0400, Jason Merrill wrote:
> On 04/09/2014 04:21 AM, Richard Biener wrote:
> >>The names of the in-charge and not-in-charge constructor clones are
> >>complete_ctor_identifier and base_ctor_identifier (and dtor for
> >>destructors); you could check for those.
> >
> >I was more asking for how we present those To the user in diagnostics. I 
> >wanted to use a consistent 'quoting' style. If using <clone> is fine then 
> >I'll just stick to that.
> 
> I think saying <complete> and <base> would be helpful for
> distinguishing them.

My preference for 4.9 would be just print the abstract name
and nothing else and for stage1 improve that to make it clear
what is a clone (and with what kind of changes), what is which cdtor etc.

Thus, I've bootstrapped/regtested this version on x86_64-linux and
i686-linux, is this ok to everybody for now?

2014-04-10  Richard Biener  <rguent...@suse.de>
            Jakub Jelinek  <ja...@redhat.com>

        PR ipa/60761
        * error.c (dump_decl) <case FUNCTION_DECL>: If
        DECL_LANG_SPECIFIC is NULL, but DECL_ABSTRACT_ORIGIN is not,
        recurse on DECL_ABSTRACT_ORIGIN instead of printing
        <built-in>.

--- gcc/cp/error.c.jj   2014-03-03 08:24:14.000000000 +0100
+++ gcc/cp/error.c      2014-04-10 12:10:39.065707779 +0200
@@ -1145,7 +1145,12 @@ dump_decl (cxx_pretty_printer *pp, tree
 
     case FUNCTION_DECL:
       if (! DECL_LANG_SPECIFIC (t))
-       pp_string (pp, M_("<built-in>"));
+       {
+         if (DECL_ABSTRACT_ORIGIN (t))
+           dump_decl (pp, DECL_ABSTRACT_ORIGIN (t), flags);
+         else
+           pp_string (pp, M_("<built-in>"));
+       }
       else if (DECL_GLOBAL_CTOR_P (t) || DECL_GLOBAL_DTOR_P (t))
        dump_global_iord (pp, t);
       else


        Jakub

Reply via email to