Michael, I really don't understand the need for this change in your original patch. I don't know if this was a temporary testing change or what.

For instance, you had the following commented out in your original patch:

  if (/*DECL_ABSTRACT (decl) &&*/ DECL_ABSTRACT_ORIGIN (decl) == decl)
     return NULL_TREE;

but then you also had:

 tree origin = decl_ultimate_origin (decl);
<snip>
<snip>
-  if (origin != NULL)
+  if (origin != NULL && origin != decl)

It seems to me that if origin is not null, then "origin != decl" will always be true, since with your change, decl_ultimate_origin() will always return NULL when DECL_ABSTRACT_ORIGIN (decl) == decl.

I suppose your /*DECL_ABSTRACT (decl) &&*/ change could be used in other uses of decl_ultimate_origin() that don't have this "&& origin != decl" business.

Anyway... I don't understand the need for it (actually, to be honest, I don't understand what you were trying to do). I'm going to remove it.

If you feel strongly about it, please chime in, and perhaps provide an explanation so I can include a comment.

I'm happy to report that with this and the last set of patches, both C and C++ guality tests have <= regressions than mainline. Yay.

Committing to mainline.

Thanks.
Aldy
commit 7254ec0893f9b56a0ba78de9eab8895c9582c24b
Author: Aldy Hernandez <al...@redhat.com>
Date:   Thu Sep 18 16:54:39 2014 -0600

        * dwarf2out.c (decl_ultimate_origin): Allow checking of
        DECL_ABSTRACT.

diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index f6c7f4a..68b4650 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -3683,7 +3683,7 @@ decl_ultimate_origin (const_tree decl)
   /* output_inline_function sets DECL_ABSTRACT_ORIGIN for all the
      nodes in the function to point to themselves; ignore that if
      we're trying to output the abstract instance of this function.  */
-  if (/*DECL_ABSTRACT (decl) &&*/ DECL_ABSTRACT_ORIGIN (decl) == decl)
+  if (DECL_ABSTRACT (decl) && DECL_ABSTRACT_ORIGIN (decl) == decl)
     return NULL_TREE;
 
   /* Since the DECL_ABSTRACT_ORIGIN for a DECL is supposed to be the

Reply via email to