diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2010-09-19 13:18:26 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2010-09-19 13:18:26 +0000 |
commit | a10623fb71eb10046cbd3d7ad7dc3b9cef781666 (patch) | |
tree | a5ed8033e0b3c5546a5519b7b314e7bbb3dd8ed4 /gcc/ada/gcc-interface/decl.c | |
parent | 50a6af053af7a89702c7093eec85b717257e88bc (diff) | |
download | gcc-a10623fb71eb10046cbd3d7ad7dc3b9cef781666.zip gcc-a10623fb71eb10046cbd3d7ad7dc3b9cef781666.tar.gz gcc-a10623fb71eb10046cbd3d7ad7dc3b9cef781666.tar.bz2 |
decl.c (gnat_to_gnu_entity): Explicitly test _LEVEL variables against zero in all cases.
* gcc-interface/decl.c (gnat_to_gnu_entity): Explicitly test _LEVEL
variables against zero in all cases.
(rest_of_type_decl_compilation): Likewise.
* gcc-interface/trans.c (gigi): Pass properly typed constants to
create_var_decl.
(call_to_gnu): Fix formatting.
(Handled_Sequence_Of_Statements_to_gnu): Likewise.
(Exception_Handler_to_gnu_zcx): Likewise.
(gnat_to_gnu) <N_Object_Declaration>: Short-circuit handling of
constant
expressions in presence of a freeze node.
From-SVN: r164415
Diffstat (limited to 'gcc/ada/gcc-interface/decl.c')
-rw-r--r-- | gcc/ada/gcc-interface/decl.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c index 6d77ffb..850777d 100644 --- a/gcc/ada/gcc-interface/decl.c +++ b/gcc/ada/gcc-interface/decl.c @@ -3510,7 +3510,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition) && TYPE_IS_DUMMY_P (TREE_TYPE (get_gnu_tree (gnat_desig_equiv)))) || (!in_main_unit - && defer_incomplete_level + && defer_incomplete_level != 0 && !present_gnu_tree (gnat_desig_equiv)) || (in_main_unit && is_from_limited_with @@ -3594,7 +3594,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition) access type may be the full view of a private type. Note that the unconstrained array case is handled above. */ || ((!in_main_unit || imported_p) - && defer_incomplete_level + && defer_incomplete_level != 0 && !present_gnu_tree (gnat_desig_equiv) && (Is_Record_Type (gnat_desig_rep) || Is_Array_Type (gnat_desig_rep))) @@ -3728,7 +3728,8 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition) Besides, variants of this non-dummy type might have been created along the way. update_pointer_to is expected to properly take care of those situations. */ - if (!defer_incomplete_level && !is_from_limited_with_in_main_unit) + if (defer_incomplete_level == 0 + && !is_from_limited_with_in_main_unit) update_pointer_to (TYPE_MAIN_VARIANT (gnu_old_desig_type), gnat_to_gnu_type (gnat_desig_equiv)); else @@ -5045,7 +5046,7 @@ rest_of_type_decl_compilation (tree decl) { /* We need to defer finalizing the type if incomplete types are being deferred or if they are being processed. */ - if (defer_incomplete_level || defer_finalize_level) + if (defer_incomplete_level != 0 || defer_finalize_level != 0) VEC_safe_push (tree, heap, defer_finalize_list, decl); else rest_of_type_decl_compilation_no_defer (decl); |