From: Eric Botcazou Date: Fri, 6 Aug 2010 12:58:04 +0000 (+0000) Subject: decl.c (gnat_to_gnu_entity): Do not build an allocator for large imported objects. X-Git-Tag: releases/gcc-4.6.0~5201 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f25496f35244af6ff790cdff903b92d38c4bd4ec;p=thirdparty%2Fgcc.git decl.c (gnat_to_gnu_entity): Do not build an allocator for large imported objects. * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not build an allocator for large imported objects. From-SVN: r162947 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 224099ba77e0..2079538a75e4 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2010-08-06 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not build an + allocator for large imported objects. + 2010-08-05 Robert Dewar * gnat1drv.adb: Minor reformatting. diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c index 13a31536e575..ff821cf4660f 100644 --- a/gcc/ada/gcc-interface/decl.c +++ b/gcc/ada/gcc-interface/decl.c @@ -1180,7 +1180,6 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition) gnu_type = build_reference_type (gnu_type); gnu_size = NULL_TREE; used_by_ref = true; - const_flag = true; /* In case this was a aliased object whose nominal subtype is unconstrained, the pointer above will be a thin pointer and @@ -1194,7 +1193,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition) If we are elaborating a mutable object, tell build_allocator to ignore a possibly simpler size from the initializer, if any, as we must allocate the maximum possible size in this case. */ - if (definition) + if (definition && !imported_p) { tree gnu_alloc_type = TREE_TYPE (gnu_type); @@ -1217,14 +1216,14 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition) } if (TREE_CODE (TYPE_SIZE_UNIT (gnu_alloc_type)) == INTEGER_CST - && TREE_OVERFLOW (TYPE_SIZE_UNIT (gnu_alloc_type)) - && !Is_Imported (gnat_entity)) + && TREE_OVERFLOW (TYPE_SIZE_UNIT (gnu_alloc_type))) post_error ("?`Storage_Error` will be raised at run time!", gnat_entity); gnu_expr = build_allocator (gnu_alloc_type, gnu_expr, gnu_type, Empty, Empty, gnat_entity, mutable_p); + const_flag = true; } else {