public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode
@ 2012-02-08 21:37 ebotcazou at gcc dot gnu.org
  2012-02-10 15:10 ` [Bug lto/52178] " rguenth at gcc dot gnu.org
                   ` (25 more replies)
  0 siblings, 26 replies; 27+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-02-08 21:37 UTC (permalink / raw)
  To: gcc-bugs

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

             Bug #: 52178
           Summary: [4.7 regression] Ada bootstrap failure in LTO mode
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: lto
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: ebotcazou@gcc.gnu.org
             Build: x86_64-*-linux


The problem has been present for months despite the various LTO changes.

The typical error message issued during LTRANS is:

/home/eric/svn/gcc/gcc/ada/lib-load.adb: In function 'lib__load__load_unit':
/home/eric/svn/gcc/gcc/ada/lib-load.adb:344:0: error: type mismatch in
component reference
atree__atree_private_part__node_record___is_extension___XVN

atree__atree_private_part__node_record___is_extension___XVN

# VUSE <.MEM_328>
T142b_492 =
*atree__atree_private_part__nodes__table.19_489[D.105830_491].is_extension___XVN.S0.sloc;

It's a type mismatch between a COMPONENT_REF and the FIELD_DECL (operand #1).
Everything is OK during compilation and the problem is apparently already there
when LTRANS kicks in, so the problem is probably in WPA.  As far as I can see,
it merges 2 equivalent types and then updates the cache (uniquify_nodes):

            /* If we're going to replace an element which we'd
               still visit in the next iterations, we wouldn't
               handle it, so do it here.  We do have to handle it
               even though the field_decl itself will be removed,
               as it could refer to e.g. integer_cst which we
               wouldn't reach via any other way, hence they
               (and their type) would stay uncollected.  */
            /* ???  We should rather make sure to replace all
               references to f2 with f1.  That means handling
               COMPONENT_REFs and CONSTRUCTOR elements in
               lto_fixup_types and special-case the field-decl
               operand handling.  */
            if (ix < i)
              lto_fixup_types (f2);
            streamer_tree_cache_insert_at (cache, f1, ix);

But, while the types of the old set and the new set of fields are compatible in
GIMPLE, there is at least one field for which the type isn't compatible in the
middle-end sense, and the type verifier chokes.

I'm a little at a loss as to how this is supposed to work: should the type of
the COMPONENT_REF be updated too, i.e is that the ??? above?  Should this be
handled via TYPE_CANONICAL, i.e the old and new type must have the same?  Or
should this be patched up in input_gimple_stmt, similarly to what is already
done:
      /* Fixup FIELD_DECLs in COMPONENT_REFs, they are not handled
         by decl merging.  */
      if (TREE_CODE (op) == ADDR_EXPR)
        op = TREE_OPERAND (op, 0);
      while (handled_component_p (op))

Any hint is welcome!


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
@ 2012-02-10 15:10 ` rguenth at gcc dot gnu.org
  2012-02-10 17:51 ` ebotcazou at gcc dot gnu.org
                   ` (24 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-02-10 15:10 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.7.0

--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-02-10 15:09:38 UTC ---
(In reply to comment #0)
> The problem has been present for months despite the various LTO changes.
> 
> The typical error message issued during LTRANS is:
> 
> /home/eric/svn/gcc/gcc/ada/lib-load.adb: In function 'lib__load__load_unit':
> /home/eric/svn/gcc/gcc/ada/lib-load.adb:344:0: error: type mismatch in
> component reference
> atree__atree_private_part__node_record___is_extension___XVN
> 
> atree__atree_private_part__node_record___is_extension___XVN
> 
> # VUSE <.MEM_328>
> T142b_492 =
> *atree__atree_private_part__nodes__table.19_489[D.105830_491].is_extension___XVN.S0.sloc;
> 
> It's a type mismatch between a COMPONENT_REF and the FIELD_DECL (operand #1).
> Everything is OK during compilation and the problem is apparently already there
> when LTRANS kicks in, so the problem is probably in WPA.  As far as I can see,
> it merges 2 equivalent types and then updates the cache (uniquify_nodes):
> 
>             /* If we're going to replace an element which we'd
>                still visit in the next iterations, we wouldn't
>                handle it, so do it here.  We do have to handle it
>                even though the field_decl itself will be removed,
>                as it could refer to e.g. integer_cst which we
>                wouldn't reach via any other way, hence they
>                (and their type) would stay uncollected.  */
>             /* ???  We should rather make sure to replace all
>                references to f2 with f1.  That means handling
>                COMPONENT_REFs and CONSTRUCTOR elements in
>                lto_fixup_types and special-case the field-decl
>                operand handling.  */
>             if (ix < i)
>               lto_fixup_types (f2);
>             streamer_tree_cache_insert_at (cache, f1, ix);
> 
> But, while the types of the old set and the new set of fields are compatible in
> GIMPLE, there is at least one field for which the type isn't compatible in the
> middle-end sense, and the type verifier chokes.

I don't understand this sentence completely - if the types have been merged
then the COMPONENT_REFs should have been updated, too (do they only have
"weak" matched types at the point of LTO streaming?  Thus, do they maybe
depend on the frontend TYPE_CANONICAL setting?)

> I'm a little at a loss as to how this is supposed to work: should the type of
> the COMPONENT_REF be updated too, i.e is that the ??? above?  Should this be
> handled via TYPE_CANONICAL, i.e the old and new type must have the same?  Or
> should this be patched up in input_gimple_stmt, similarly to what is already
> done:
>       /* Fixup FIELD_DECLs in COMPONENT_REFs, they are not handled
>          by decl merging.  */
>       if (TREE_CODE (op) == ADDR_EXPR)
>         op = TREE_OPERAND (op, 0);
>       while (handled_component_p (op))
> 
> Any hint is welcome!

The code is mostly to paper over invalid-code issues and to give some
sensible warning to users if they declare decls with mismatching types.
But the code should also silence all tree checking errors that are
remaining (but issue a warning, so with -Werror it would not help you).
Unless the COMPONENT_REF in question comes from constant folding from
a global variable initializer for example (which is what the ??? is about)?
So - at which point during the compilation does the verification issue
happen?


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
  2012-02-10 15:10 ` [Bug lto/52178] " rguenth at gcc dot gnu.org
@ 2012-02-10 17:51 ` ebotcazou at gcc dot gnu.org
  2012-02-13 11:35 ` rguenth at gcc dot gnu.org
                   ` (23 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-02-10 17:51 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-02-10 17:51:19 UTC ---
> I don't understand this sentence completely - if the types have been merged
> then the COMPONENT_REFs should have been updated, too (do they only have
> "weak" matched types at the point of LTO streaming?  Thus, do they maybe
> depend on the frontend TYPE_CANONICAL setting?)

The Ada front-end doesn't touch TYPE_CANONICAL at all.  It's the same type, but
instantiated from different units.  What I don't understand is when type
merging is supposed to be done: WPA, LTRANS, or both?

> Unless the COMPONENT_REF in question comes from constant folding from
> a global variable initializer for example (which is what the ??? is about)?

No, it's in a simple assignment statement.

> So - at which point during the compilation does the verification issue
> happen?

See the opening message, it's LTRANS.  The type mismatch is already present
when the assignment statement is streamed in at the beginning of LTRANS, as the
streamed in FIELD_DECL isn't the original FIELD_DECL that was streamed out.


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
  2012-02-10 15:10 ` [Bug lto/52178] " rguenth at gcc dot gnu.org
  2012-02-10 17:51 ` ebotcazou at gcc dot gnu.org
@ 2012-02-13 11:35 ` rguenth at gcc dot gnu.org
  2012-02-13 11:54 ` ebotcazou at gcc dot gnu.org
                   ` (22 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-02-13 11:35 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rguenth at gcc dot gnu.org

--- Comment #3 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-02-13 11:34:46 UTC ---
(In reply to comment #2)
> > I don't understand this sentence completely - if the types have been merged
> > then the COMPONENT_REFs should have been updated, too (do they only have
> > "weak" matched types at the point of LTO streaming?  Thus, do they maybe
> > depend on the frontend TYPE_CANONICAL setting?)
> 
> The Ada front-end doesn't touch TYPE_CANONICAL at all.  It's the same type, but
> instantiated from different units.  What I don't understand is when type
> merging is supposed to be done: WPA, LTRANS, or both?

Merging happens at WPA time, it happens again at LTRANS but that is an
implementation artifact (it should not be necessary to merge again).

> > Unless the COMPONENT_REF in question comes from constant folding from
> > a global variable initializer for example (which is what the ??? is about)?
> 
> No, it's in a simple assignment statement.
> 
> > So - at which point during the compilation does the verification issue
> > happen?
> 
> See the opening message, it's LTRANS.  The type mismatch is already present
> when the assignment statement is streamed in at the beginning of LTRANS, as the
> streamed in FIELD_DECL isn't the original FIELD_DECL that was streamed out.

Ok, this sounds like it is a real bug, especially if the existing machinery
to plug these holes does not trigger (and issue the warning).

So - do you by chance happen to have a (small) testcase? ;)

I suppose I can try lto-bootstrapping with Ada myself, let's see if I can
find time to do so.


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2012-02-13 11:35 ` rguenth at gcc dot gnu.org
@ 2012-02-13 11:54 ` ebotcazou at gcc dot gnu.org
  2012-02-13 11:58 ` rguenther at suse dot de
                   ` (21 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-02-13 11:54 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-02-13 11:53:38 UTC ---
> Merging happens at WPA time, it happens again at LTRANS but that is an
> implementation artifact (it should not be necessary to merge again).

OK.

> Ok, this sounds like it is a real bug, especially if the existing machinery
> to plug these holes does not trigger (and issue the warning).

Something I remarked while trying to debug this: "regular" type merging has a
sophisticated machinery taking into account SCCs (gtc_visit) while "canonical"
type merging doesn't have it.  The hypothesis I came up with is that the former
was able to merge the various instances of the type whereas the latter wasn't. 
Since the middle-end type system is based on canonical types, it chokes.

> So - do you by chance happen to have a (small) testcase? ;)

No, but I can try to distill one


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2012-02-13 11:54 ` ebotcazou at gcc dot gnu.org
@ 2012-02-13 11:58 ` rguenther at suse dot de
  2012-02-13 12:18 ` ebotcazou at gcc dot gnu.org
                   ` (20 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: rguenther at suse dot de @ 2012-02-13 11:58 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from rguenther at suse dot de <rguenther at suse dot de> 2012-02-13 11:57:43 UTC ---
On Mon, 13 Feb 2012, ebotcazou at gcc dot gnu.org wrote:

> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52178
> 
> --- Comment #4 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-02-13 11:53:38 UTC ---
> > Merging happens at WPA time, it happens again at LTRANS but that is an
> > implementation artifact (it should not be necessary to merge again).
> 
> OK.
> 
> > Ok, this sounds like it is a real bug, especially if the existing machinery
> > to plug these holes does not trigger (and issue the warning).
> 
> Something I remarked while trying to debug this: "regular" type merging has a
> sophisticated machinery taking into account SCCs (gtc_visit) while "canonical"
> type merging doesn't have it.  The hypothesis I came up with is that the former
> was able to merge the various instances of the type whereas the latter wasn't. 
> Since the middle-end type system is based on canonical types, it chokes.

The good thing about the "canonical" type merging machinery is that it
does not need one!  It merges structurally equivalent types (thus
considers all pointers equal).  So, if "canonical" type merging does _not_
merge sth that the "regular" type merging merges then that's a bug
(in which part remains to be identified ...).

> > So - do you by chance happen to have a (small) testcase? ;)
> 
> No, but I can try to distill one

I'm LTO bootstrapping Ada now, let's see if I can figure out sth quickly
(well, I doubt that ... ;))

Sth I'm not very familiar is the QUAL_UNION record kinds - maybe you
can eye the two merging machineries for obvious errors here?

Richard.


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2012-02-13 11:58 ` rguenther at suse dot de
@ 2012-02-13 12:18 ` ebotcazou at gcc dot gnu.org
  2012-02-13 12:29 ` rguenther at suse dot de
                   ` (19 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-02-13 12:18 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-02-13 12:17:46 UTC ---
> Sth I'm not very familiar is the QUAL_UNION record kinds - maybe you
> can eye the two merging machineries for obvious errors here?

I did, and only came up with the following no-op patchlet:

Index: gimple.c
===================================================================
--- gimple.c    (revision 184143)
+++ gimple.c    (working copy)
@@ -4140,9 +4140,7 @@ iterative_hash_gimple_type (tree type, h
       v = iterative_hash_hashval_t (na, v);
     }

-  if (TREE_CODE (type) == RECORD_TYPE
-      || TREE_CODE (type) == UNION_TYPE
-      || TREE_CODE (type) == QUAL_UNION_TYPE)
+  if (RECORD_OR_UNION_TYPE_P (type))
     {
       unsigned nf;
       tree f;
@@ -4373,9 +4371,7 @@ iterative_hash_canonical_type (tree type
       v = iterative_hash_hashval_t (na, v);
     }

-  if (TREE_CODE (type) == RECORD_TYPE
-      || TREE_CODE (type) == UNION_TYPE
-      || TREE_CODE (type) == QUAL_UNION_TYPE)
+  if (RECORD_OR_UNION_TYPE_P (type))
     {
       unsigned nf;
       tree f;


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2012-02-13 12:18 ` ebotcazou at gcc dot gnu.org
@ 2012-02-13 12:29 ` rguenther at suse dot de
  2012-02-13 12:39 ` ebotcazou at gcc dot gnu.org
                   ` (18 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: rguenther at suse dot de @ 2012-02-13 12:29 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #7 from rguenther at suse dot de <rguenther at suse dot de> 2012-02-13 12:29:36 UTC ---
On Mon, 13 Feb 2012, ebotcazou at gcc dot gnu.org wrote:

> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52178
> 
> --- Comment #6 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-02-13 12:17:46 UTC ---
> > Sth I'm not very familiar is the QUAL_UNION record kinds - maybe you
> > can eye the two merging machineries for obvious errors here?
> 
> I did, and only came up with the following no-op patchlet:
> 
> Index: gimple.c
> ===================================================================
> --- gimple.c    (revision 184143)
> +++ gimple.c    (working copy)
> @@ -4140,9 +4140,7 @@ iterative_hash_gimple_type (tree type, h
>        v = iterative_hash_hashval_t (na, v);
>      }
> 
> -  if (TREE_CODE (type) == RECORD_TYPE
> -      || TREE_CODE (type) == UNION_TYPE
> -      || TREE_CODE (type) == QUAL_UNION_TYPE)
> +  if (RECORD_OR_UNION_TYPE_P (type))
>      {
>        unsigned nf;
>        tree f;
> @@ -4373,9 +4371,7 @@ iterative_hash_canonical_type (tree type
>        v = iterative_hash_hashval_t (na, v);
>      }
> 
> -  if (TREE_CODE (type) == RECORD_TYPE
> -      || TREE_CODE (type) == UNION_TYPE
> -      || TREE_CODE (type) == QUAL_UNION_TYPE)
> +  if (RECORD_OR_UNION_TYPE_P (type))
>      {
>        unsigned nf;
>        tree f;

I see.  I came up with the following, but it's unlikely to make a
difference either

Index: gcc/gimple.c
===================================================================
--- gcc/gimple.c        (revision 184151)
+++ gcc/gimple.c        (working copy)
@@ -3549,10 +3549,6 @@ gimple_types_compatible_p_1 (tree t1, tr
        goto different_types;
     }

-  /* If their attributes are not the same they can't be the same type.  
*/
-  if (!attribute_list_equal (TYPE_ATTRIBUTES (t1), TYPE_ATTRIBUTES (t2)))
-    goto different_types;
-
   /* Do type-specific comparisons.  */
   switch (TREE_CODE (t1))
     {
@@ -4589,10 +4585,6 @@ gimple_canonical_types_compatible_p (tre
       return true;
     }

-  /* If their attributes are not the same they can't be the same type.  
*/
-  if (!attribute_list_equal (TYPE_ATTRIBUTES (t1), TYPE_ATTRIBUTES (t2)))
-    return false;
-
   /* Do type-specific comparisons.  */
   switch (TREE_CODE (t1))
     {
@@ -4646,13 +4638,6 @@ gimple_canonical_types_compatible_p (tre
        }

     case METHOD_TYPE:
-      /* Method types should belong to the same class.  */
-      if (!gimple_canonical_types_compatible_p
-            (TYPE_METHOD_BASETYPE (t1), TYPE_METHOD_BASETYPE (t2)))
-       return false;
-
-      /* Fallthru  */
-
     case FUNCTION_TYPE:
       /* Function types are the same if the return type and arguments 
types
         are the same.  */


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2012-02-13 12:29 ` rguenther at suse dot de
@ 2012-02-13 12:39 ` ebotcazou at gcc dot gnu.org
  2012-02-13 13:29 ` rguenth at gcc dot gnu.org
                   ` (17 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-02-13 12:39 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #8 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-02-13 12:39:06 UTC ---
> I see.  I came up with the following, but it's unlikely to make a
> difference either

Thanks, I'll give it a try.  While Ada doesn't use METHOD_TYPE, it extensively
uses type attributes.


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2012-02-13 12:39 ` ebotcazou at gcc dot gnu.org
@ 2012-02-13 13:29 ` rguenth at gcc dot gnu.org
  2012-02-13 13:43 ` rguenth at gcc dot gnu.org
                   ` (16 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-02-13 13:29 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #9 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-02-13 13:29:38 UTC ---
Ok, the issue is that we end up with using a type streamed into the function
sections - those are assumed to not need participating in merging and thus
we never merge them, even canonically.  Instead they get assigned a "local"
alias-set TYPE_CANONICAL in lto_read_body:

      /* And fixup types we streamed locally.  */
...
              if (TYPE_P (t))
                {
                  gcc_assert (TYPE_CANONICAL (t) == NULL_TREE);
                  TYPE_CANONICAL (t) = TYPE_MAIN_VARIANT (t);

Now the question is why we consider the type "local" even though it is
referred to from "outside".  We decide that "indexability" in
tree_is_indexable which returns false for both copies of the type because
they are variably modified types (those cannot be possibly "global").
Still they are refered to globally.  I'm refering to
atree__atree_private_part__node_record___is_extension___XVN
(it doesn't have any TYPE_CONTEXT though, and its TYPE_SIZE is a constant).
Still variably_modified_type_p (t, NULL_TREE) returns true probaby because
DECL_QUALIFIER of one FIELD_DECL is

 <truth_not_expr 0x7ffff1bb7370
    type <boolean_type 0x7ffff5374a80 boolean asm_written public unsigned QI
        size <integer_cst 0x7ffff5249080 constant 8>
        unit size <integer_cst 0x7ffff52490a0 constant 1>
        align 8 symtab -180747728 alias set 2 canonical type 0x7ffff5374a80
precision 8 min <integer_cst 0x7ffff536b760 0> max <integer_cst 0x7ffff5249620
255>
        pointer_to_this <pointer_type 0x7ffff46e60a8>>

    arg 0 <nop_expr 0x7ffff1bb7398 type <boolean_type 0x7ffff5374a80 boolean>

        arg 0 <component_ref 0x7ffff1ac1e70 type <integer_type 0x7ffff4658348
boolean>

            arg 0 <placeholder_expr 0x7ffff1ba8eb8 type <record_type
0x7ffff46582a0 atree__atree_private_part__node_record>
               > arg 1 <field_decl 0x7ffff4656098 is_extension>>>>

the qualifiers of other FIELD_DECLs are a plain 'true' though (which looks
odd to me).


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (8 preceding siblings ...)
  2012-02-13 13:29 ` rguenth at gcc dot gnu.org
@ 2012-02-13 13:43 ` rguenth at gcc dot gnu.org
  2012-02-13 13:45 ` rguenth at gcc dot gnu.org
                   ` (15 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-02-13 13:43 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #10 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-02-13 13:42:49 UTC ---
Should PLACEHOLDER_EXPRs even survive gimplification?  I see tree.c says
if they survive until expand we'll ICE - but that comment is probably from
before gimple/SSA times.


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (9 preceding siblings ...)
  2012-02-13 13:43 ` rguenth at gcc dot gnu.org
@ 2012-02-13 13:45 ` rguenth at gcc dot gnu.org
  2012-02-13 13:53 ` ebotcazou at gcc dot gnu.org
                   ` (14 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-02-13 13:45 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #11 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-02-13 13:44:44 UTC ---
Or, alternatively - should DECL_QUALIFIER matter at all after gimplification?
Can we simply not stream it (thus, have a NULL_TREE DECL_QUALIFIER in WPA
and LTRANS stage)?


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (10 preceding siblings ...)
  2012-02-13 13:45 ` rguenth at gcc dot gnu.org
@ 2012-02-13 13:53 ` ebotcazou at gcc dot gnu.org
  2012-02-13 13:54 ` ebotcazou at gcc dot gnu.org
                   ` (13 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-02-13 13:53 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #12 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-02-13 13:53:01 UTC ---
> Still they are refered to globally.  I'm refering to
> atree__atree_private_part__node_record___is_extension___XVN
> (it doesn't have any TYPE_CONTEXT though, and its TYPE_SIZE is a constant).

It's a global, self-referential type.

> Still variably_modified_type_p (t, NULL_TREE) returns true probaby because
> DECL_QUALIFIER of one FIELD_DECL is

OK, that looks like the root cause.


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (11 preceding siblings ...)
  2012-02-13 13:53 ` ebotcazou at gcc dot gnu.org
@ 2012-02-13 13:54 ` ebotcazou at gcc dot gnu.org
  2012-02-13 13:56 ` ebotcazou at gcc dot gnu.org
                   ` (12 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-02-13 13:54 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #13 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-02-13 13:54:31 UTC ---
> Should PLACEHOLDER_EXPRs even survive gimplification?  I see tree.c says
> if they survive until expand we'll ICE - but that comment is probably from
> before gimple/SSA times.

Yes, PLACEHOLDER_EXPRs are effectively useless once gimplification is done. 
But they need to be somehow preserved, see free_lang_data_in_one_sizepos in
tree.c.


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (12 preceding siblings ...)
  2012-02-13 13:54 ` ebotcazou at gcc dot gnu.org
@ 2012-02-13 13:56 ` ebotcazou at gcc dot gnu.org
  2012-02-13 14:04 ` rguenther at suse dot de
                   ` (11 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-02-13 13:56 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #14 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-02-13 13:55:47 UTC ---
> Or, alternatively - should DECL_QUALIFIER matter at all after gimplification?

No, it shouldn't.

> Can we simply not stream it (thus, have a NULL_TREE DECL_QUALIFIER in WPA
> and LTRANS stage)?

Yes, I'd think so.


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (13 preceding siblings ...)
  2012-02-13 13:56 ` ebotcazou at gcc dot gnu.org
@ 2012-02-13 14:04 ` rguenther at suse dot de
  2012-02-13 14:13 ` ebotcazou at gcc dot gnu.org
                   ` (10 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: rguenther at suse dot de @ 2012-02-13 14:04 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #15 from rguenther at suse dot de <rguenther at suse dot de> 2012-02-13 14:03:27 UTC ---
On Mon, 13 Feb 2012, ebotcazou at gcc dot gnu.org wrote:

> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52178
> 
> --- Comment #14 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-02-13 13:55:47 UTC ---
> > Or, alternatively - should DECL_QUALIFIER matter at all after gimplification?
> 
> No, it shouldn't.
> 
> > Can we simply not stream it (thus, have a NULL_TREE DECL_QUALIFIER in WPA
> > and LTRANS stage)?
> 
> Yes, I'd think so.

I'm testing a patch to do that now.

Richard.


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (14 preceding siblings ...)
  2012-02-13 14:04 ` rguenther at suse dot de
@ 2012-02-13 14:13 ` ebotcazou at gcc dot gnu.org
  2012-02-13 14:14 ` rguenther at suse dot de
                   ` (9 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-02-13 14:13 UTC (permalink / raw)
  To: gcc-bugs

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

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-02-13
     Ever Confirmed|0                           |1

--- Comment #16 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-02-13 14:12:53 UTC ---
> I'm testing a patch to do that now.

So am I. :-)  Shouldn't we do something in free_lang_data as well?


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (15 preceding siblings ...)
  2012-02-13 14:13 ` ebotcazou at gcc dot gnu.org
@ 2012-02-13 14:14 ` rguenther at suse dot de
  2012-02-13 14:19 ` rguenther at suse dot de
                   ` (8 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: rguenther at suse dot de @ 2012-02-13 14:14 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #17 from rguenther at suse dot de <rguenther at suse dot de> 2012-02-13 14:13:39 UTC ---
On Mon, 13 Feb 2012, Richard Guenther wrote:

> On Mon, 13 Feb 2012, ebotcazou at gcc dot gnu.org wrote:
> 
> > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52178
> > 
> > --- Comment #14 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-02-13 13:55:47 UTC ---
> > > Or, alternatively - should DECL_QUALIFIER matter at all after gimplification?
> > 
> > No, it shouldn't.
> > 
> > > Can we simply not stream it (thus, have a NULL_TREE DECL_QUALIFIER in WPA
> > > and LTRANS stage)?
> > 
> > Yes, I'd think so.
> 
> I'm testing a patch to do that now.

Which should avoid the issue.  But I suppose that variably_modified_type_p
wrongly checks

            if (TREE_CODE (type) == QUAL_UNION_TYPE)
              RETURN_TRUE_IF_VAR (DECL_QUALIFIER (t));

?  It seems it should not look at DECL_QUALIFIER at all.


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (16 preceding siblings ...)
  2012-02-13 14:14 ` rguenther at suse dot de
@ 2012-02-13 14:19 ` rguenther at suse dot de
  2012-02-13 14:22 ` ebotcazou at gcc dot gnu.org
                   ` (7 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: rguenther at suse dot de @ 2012-02-13 14:19 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #18 from rguenther at suse dot de <rguenther at suse dot de> 2012-02-13 14:18:58 UTC ---
On Mon, 13 Feb 2012, ebotcazou at gcc dot gnu.org wrote:

> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52178
> 
> Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:
> 
>            What    |Removed                     |Added
> ----------------------------------------------------------------------------
>              Status|UNCONFIRMED                 |NEW
>    Last reconfirmed|                            |2012-02-13
>      Ever Confirmed|0                           |1
> 
> --- Comment #16 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-02-13 14:12:53 UTC ---
> > I'm testing a patch to do that now.
> 
> So am I. :-)  Shouldn't we do something in free_lang_data as well?

Sure, I'm NULLing DECL_QUALIFIER there.  Otherwise it wouldn't fix
the bug as we decide in which section to put the type at compile time.

Richard.


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (17 preceding siblings ...)
  2012-02-13 14:19 ` rguenther at suse dot de
@ 2012-02-13 14:22 ` ebotcazou at gcc dot gnu.org
  2012-02-13 14:44 ` rguenth at gcc dot gnu.org
                   ` (6 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-02-13 14:22 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #19 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-02-13 14:21:57 UTC ---
> Which should avoid the issue.  But I suppose that variably_modified_type_p
> wrongly checks
> 
>             if (TREE_CODE (type) == QUAL_UNION_TYPE)
>               RETURN_TRUE_IF_VAR (DECL_QUALIFIER (t));
> 
> ?  It seems it should not look at DECL_QUALIFIER at all.

I wouldn't disagree, but I think we should only tweak free_lang_data and
subsequent passes for 4.7.


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (18 preceding siblings ...)
  2012-02-13 14:22 ` ebotcazou at gcc dot gnu.org
@ 2012-02-13 14:44 ` rguenth at gcc dot gnu.org
  2012-02-13 17:07 ` ebotcazou at gcc dot gnu.org
                   ` (5 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-02-13 14:44 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #20 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-02-13 14:43:47 UTC ---
(In reply to comment #19)
> > Which should avoid the issue.  But I suppose that variably_modified_type_p
> > wrongly checks
> > 
> >             if (TREE_CODE (type) == QUAL_UNION_TYPE)
> >               RETURN_TRUE_IF_VAR (DECL_QUALIFIER (t));
> > 
> > ?  It seems it should not look at DECL_QUALIFIER at all.
> 
> I wouldn't disagree, but I think we should only tweak free_lang_data and
> subsequent passes for 4.7.

Yeah.  I'm now getting further with Ada LTO bootstrap, but hit an ICE
during optimization:

/space/rguenther/src/svn/trunk/gcc/ada/sem_prag.adb: In function
'sem_prag__analyze_pragma':
/space/rguenther/src/svn/trunk/gcc/ada/sem_prag.adb:383:0: internal compiler
error: in forward_edge_to_pdom, at tree-ssa-dce.c:1153
Please submit a full bug report,
with preprocessed source if appropriate.

when built with --disable-werror, otherwise I'd see errors with warnings like

ada/b_gnat1.adb:196:7: warning: type of 'locking_policy' does not match
original declaration [enabled by default]
In file included from /usr/include/unistd.h:563:0,
                 from /space/rguenther/src/svn/trunk/gcc/ada/cstreams.c:268,
                 from /usr/include/stdio.h:188,
                 from <built-in>:10,
                 from <built-in>:5,
                 from <built-in>:78,
                 from :9:
/space/rguenther/src/svn/trunk/gcc/ada/init.c:96:7: note: previously declared
here
In file included from :101:0:

The warning appears if the middle-end would not consider the types
compatible and thus would, for example, assign different alias-sets
when accessing the decl from the different modules.


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (19 preceding siblings ...)
  2012-02-13 14:44 ` rguenth at gcc dot gnu.org
@ 2012-02-13 17:07 ` ebotcazou at gcc dot gnu.org
  2012-02-14  8:41 ` rguenth at gcc dot gnu.org
                   ` (4 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-02-13 17:07 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #21 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-02-13 17:06:44 UTC ---
> Yeah.  I'm now getting further with Ada LTO bootstrap, but hit an ICE
> during optimization:
> 
> /space/rguenther/src/svn/trunk/gcc/ada/sem_prag.adb: In function
> 'sem_prag__analyze_pragma':
> /space/rguenther/src/svn/trunk/gcc/ada/sem_prag.adb:383:0: internal compiler
> error: in forward_edge_to_pdom, at tree-ssa-dce.c:1153
> Please submit a full bug report,
> with preprocessed source if appropriate.

OK, thanks, will debug this one.

> when built with --disable-werror, otherwise I'd see errors with warnings like
> 
> ada/b_gnat1.adb:196:7: warning: type of 'locking_policy' does not match
> original declaration [enabled by default]
> In file included from /usr/include/unistd.h:563:0,
>                  from /space/rguenther/src/svn/trunk/gcc/ada/cstreams.c:268,
>                  from /usr/include/stdio.h:188,
>                  from <built-in>:10,
>                  from <built-in>:5,
>                  from <built-in>:78,
>                  from :9:
> /space/rguenther/src/svn/trunk/gcc/ada/init.c:96:7: note: previously declared
> here
> In file included from :101:0:
> 
> The warning appears if the middle-end would not consider the types
> compatible and thus would, for example, assign different alias-sets
> when accessing the decl from the different modules.

-Werror is supposed to have been disabled at link time for Ada though


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (20 preceding siblings ...)
  2012-02-13 17:07 ` ebotcazou at gcc dot gnu.org
@ 2012-02-14  8:41 ` rguenth at gcc dot gnu.org
  2012-02-15  0:11 ` ebotcazou at gcc dot gnu.org
                   ` (3 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-02-14  8:41 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #22 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-02-14 08:39:59 UTC ---
Author: rguenth
Date: Tue Feb 14 08:39:55 2012
New Revision: 184200

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184200
Log:
2012-02-14  Richard Guenther  <rguenther@suse.de>

    PR lto/52178
    * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
    Do not stream DECL_QUALIFIER.
    * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
    * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
    (find_decls_types_r): Do not walk DECL_QUALIFIER.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/tree-streamer-in.c
    trunk/gcc/tree-streamer-out.c
    trunk/gcc/tree.c


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (21 preceding siblings ...)
  2012-02-14  8:41 ` rguenth at gcc dot gnu.org
@ 2012-02-15  0:11 ` ebotcazou at gcc dot gnu.org
  2012-02-15  0:12 ` ebotcazou at gcc dot gnu.org
                   ` (2 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-02-15  0:11 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #23 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-02-15 00:10:06 UTC ---
Author: ebotcazou
Date: Wed Feb 15 00:10:00 2012
New Revision: 184246

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184246
Log:
    PR lto/52178
    * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
    (iterative_hash_canonical_type): Likewise.
    * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
    the dead edges.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/gimple.c
    trunk/gcc/tree-ssa-pre.c


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (22 preceding siblings ...)
  2012-02-15  0:11 ` ebotcazou at gcc dot gnu.org
@ 2012-02-15  0:12 ` ebotcazou at gcc dot gnu.org
  2012-05-25 20:28 ` ebotcazou at gcc dot gnu.org
  2012-05-25 20:30 ` ebotcazou at gcc dot gnu.org
  25 siblings, 0 replies; 27+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-02-15  0:12 UTC (permalink / raw)
  To: gcc-bugs

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

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

--- Comment #24 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-02-15 00:12:15 UTC ---
Thanks for the help.


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (23 preceding siblings ...)
  2012-02-15  0:12 ` ebotcazou at gcc dot gnu.org
@ 2012-05-25 20:28 ` ebotcazou at gcc dot gnu.org
  2012-05-25 20:30 ` ebotcazou at gcc dot gnu.org
  25 siblings, 0 replies; 27+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-05-25 20:28 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #25 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-05-25 20:26:20 UTC ---
Author: ebotcazou
Date: Fri May 25 20:26:11 2012
New Revision: 187892

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=187892
Log:
    PR lto/52178
    * tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL.
    * tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/tree-inline.c
    trunk/gcc/tree.c


^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Bug lto/52178] [4.7 regression] Ada bootstrap failure in LTO mode
  2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
                   ` (24 preceding siblings ...)
  2012-05-25 20:28 ` ebotcazou at gcc dot gnu.org
@ 2012-05-25 20:30 ` ebotcazou at gcc dot gnu.org
  25 siblings, 0 replies; 27+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-05-25 20:30 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #26 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-05-25 20:28:13 UTC ---
Author: ebotcazou
Date: Fri May 25 20:28:10 2012
New Revision: 187893

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=187893
Log:
    PR lto/52178
    * tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL.
    * tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR.

Modified:
    branches/gcc-4_7-branch/gcc/ChangeLog
    branches/gcc-4_7-branch/gcc/tree-inline.c
    branches/gcc-4_7-branch/gcc/tree.c


^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2012-05-25 20:28 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-08 21:37 [Bug lto/52178] New: [4.7 regression] Ada bootstrap failure in LTO mode ebotcazou at gcc dot gnu.org
2012-02-10 15:10 ` [Bug lto/52178] " rguenth at gcc dot gnu.org
2012-02-10 17:51 ` ebotcazou at gcc dot gnu.org
2012-02-13 11:35 ` rguenth at gcc dot gnu.org
2012-02-13 11:54 ` ebotcazou at gcc dot gnu.org
2012-02-13 11:58 ` rguenther at suse dot de
2012-02-13 12:18 ` ebotcazou at gcc dot gnu.org
2012-02-13 12:29 ` rguenther at suse dot de
2012-02-13 12:39 ` ebotcazou at gcc dot gnu.org
2012-02-13 13:29 ` rguenth at gcc dot gnu.org
2012-02-13 13:43 ` rguenth at gcc dot gnu.org
2012-02-13 13:45 ` rguenth at gcc dot gnu.org
2012-02-13 13:53 ` ebotcazou at gcc dot gnu.org
2012-02-13 13:54 ` ebotcazou at gcc dot gnu.org
2012-02-13 13:56 ` ebotcazou at gcc dot gnu.org
2012-02-13 14:04 ` rguenther at suse dot de
2012-02-13 14:13 ` ebotcazou at gcc dot gnu.org
2012-02-13 14:14 ` rguenther at suse dot de
2012-02-13 14:19 ` rguenther at suse dot de
2012-02-13 14:22 ` ebotcazou at gcc dot gnu.org
2012-02-13 14:44 ` rguenth at gcc dot gnu.org
2012-02-13 17:07 ` ebotcazou at gcc dot gnu.org
2012-02-14  8:41 ` rguenth at gcc dot gnu.org
2012-02-15  0:11 ` ebotcazou at gcc dot gnu.org
2012-02-15  0:12 ` ebotcazou at gcc dot gnu.org
2012-05-25 20:28 ` ebotcazou at gcc dot gnu.org
2012-05-25 20:30 ` ebotcazou at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).