From: Eric Botcazou Date: Thu, 31 Jul 2008 22:04:03 +0000 (+0000) Subject: decl.c (gnat_to_gnu_entity): Fix formatting. X-Git-Tag: releases/gcc-4.4.0~3532 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4c5a06150c83d2afa3354c22c4f340774fcacdc8;p=thirdparty%2Fgcc.git decl.c (gnat_to_gnu_entity): Fix formatting. * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting. * gcc-interface/utils.c (create_field_decl): Avoid superfluous work. From-SVN: r138440 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index f5635950e42f..fdb714c1cb76 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2008-07-31 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting. + * gcc-interface/utils.c (create_field_decl): Avoid superfluous work. + 2008-07-31 Pascal Obry * prj-nmsc.adb: Keep Object and Exec directory casing. diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c index b02b9a041326..f8ebf5a58be6 100644 --- a/gcc/ada/gcc-interface/decl.c +++ b/gcc/ada/gcc-interface/decl.c @@ -3062,7 +3062,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition) /* Discard old fields that are outside the new type. This avoids confusing code scanning it to decide - how to pass it to functions on some platforms. */ + how to pass it to functions on some platforms. */ if (TREE_CODE (gnu_new_pos) == INTEGER_CST && TREE_CODE (TYPE_SIZE (gnu_type)) == INTEGER_CST && !integer_zerop (gnu_size) diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c index 61e36fe208cf..2105abdcb29c 100644 --- a/gcc/ada/gcc-interface/utils.c +++ b/gcc/ada/gcc-interface/utils.c @@ -1755,7 +1755,7 @@ create_field_decl (tree field_name, tree field_type, tree record_type, of a copy. This is the case for true bitfields, but the DECL_BIT_FIELD value we have at this point is not accurate enough, so we don't account for this here and let finish_record_type decide. */ - if (!type_for_nonaliased_component_p (field_type)) + if (!addressable && !type_for_nonaliased_component_p (field_type)) addressable = 1; DECL_NONADDRESSABLE_P (field_decl) = !addressable; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index feca0554451e..6e460bc02833 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2008-07-31 Eric Botcazou + + * gnat.dg/discr10.ad[sb]: New test. + 2008-07-31 Jakub Jelinek PR target/35100 diff --git a/gcc/testsuite/gnat.dg/discr10.adb b/gcc/testsuite/gnat.dg/discr10.adb new file mode 100644 index 000000000000..4ad834fd1245 --- /dev/null +++ b/gcc/testsuite/gnat.dg/discr10.adb @@ -0,0 +1,8 @@ +package body Discr10 is + + function Get (X : R) return R is + begin + return R'(D1 => False, D2 => False, D3 => X.D3); + end; + +end Discr10; diff --git a/gcc/testsuite/gnat.dg/discr10.ads b/gcc/testsuite/gnat.dg/discr10.ads new file mode 100644 index 000000000000..8df7ef146c48 --- /dev/null +++ b/gcc/testsuite/gnat.dg/discr10.ads @@ -0,0 +1,23 @@ +package Discr10 is + + subtype Index is Natural range 0 .. 150; + + type List is array (Index range <>) of Integer; + + type R (D1 : Boolean := True; D2 : Boolean := False; D3 : Index := 0) is + record + case D2 is + when True => + L : List (1 .. D3); + case D1 is + when True => I : Integer; + when False => null; + end case; + when False => + null; + end case; + end record; + + function Get (X : R) return R; + +end Discr10;