diff options
| author | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-03-07 20:13:41 +0000 |
|---|---|---|
| committer | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-03-07 20:13:41 +0000 |
| commit | a9e7ff04aacf0e1a829e888f6ea2a697ec5465c0 (patch) | |
| tree | 5e3917cbdedfca5ae8e14134aac16acddcd91ae5 | |
| parent | 3fb9f0d45311300aa60390638c889aa98463638d (diff) | |
| download | ppe42-gcc-a9e7ff04aacf0e1a829e888f6ea2a697ec5465c0.tar.gz ppe42-gcc-a9e7ff04aacf0e1a829e888f6ea2a697ec5465c0.zip | |
* gcc-interface/decl.c (gnat_to_gnu_entity): Do not set flags on the
DECL node built for a type which has a non-trivial equivalent type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185076 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ada/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/ada/gcc-interface/decl.c | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 636d6cc4e34..74b72c8a0ec 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,10 @@ 2012-03-07 Eric Botcazou <ebotcazou@adacore.com> + * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set flags on the + DECL node built for a type which has a non-trivial equivalent type. + +2012-03-07 Eric Botcazou <ebotcazou@adacore.com> + * gcc-interface/gigi.h (rest_of_type_decl_compilation): Delete. * gcc-interface/decl.c (defer_finalize_level): Likewise. (defer_finalize_list): Likewise. diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c index 017278911a3..34183bac2ff 100644 --- a/gcc/ada/gcc-interface/decl.c +++ b/gcc/ada/gcc-interface/decl.c @@ -5061,9 +5061,11 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition) } /* If we really have a ..._DECL node, set a couple of flags on it. But we - cannot do so if we are reusing the ..._DECL node made for an alias or a - renamed object as the predicates don't apply to it but to GNAT_ENTITY. */ + cannot do so if we are reusing the ..._DECL node made for an equivalent + type or an alias or a renamed object as the predicates don't apply to it + but to GNAT_ENTITY. */ if (DECL_P (gnu_decl) + && !(is_type && gnat_equiv_type != gnat_entity) && !Present (Alias (gnat_entity)) && !(Present (Renamed_Object (gnat_entity)) && saved)) { |

