diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2008-07-31 22:04:03 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2008-07-31 22:04:03 +0000 |
commit | 4c5a06150c83d2afa3354c22c4f340774fcacdc8 (patch) | |
tree | 0a3c9f745a58ffbd76137af01e163baa34eefb99 /gcc | |
parent | 90d245c5622d1f805f1936e03331d0b26b1cfd49 (diff) | |
download | gcc-4c5a06150c83d2afa3354c22c4f340774fcacdc8.zip gcc-4c5a06150c83d2afa3354c22c4f340774fcacdc8.tar.gz gcc-4c5a06150c83d2afa3354c22c4f340774fcacdc8.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ada/gcc-interface/decl.c | 2 | ||||
-rw-r--r-- | gcc/ada/gcc-interface/utils.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/discr10.adb | 8 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/discr10.ads | 23 |
6 files changed, 42 insertions, 2 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index f563595..fdb714c 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2008-07-31 Eric Botcazou <ebotcazou@adacore.com> + + * 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 <obry@adacore.com> * 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 b02b9a0..f8ebf5a 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 61e36fe..2105abd 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 feca055..6e460bc 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2008-07-31 Eric Botcazou <ebotcazou@adacore.com> + + * gnat.dg/discr10.ad[sb]: New test. + 2008-07-31 Jakub Jelinek <jakub@redhat.com> PR target/35100 diff --git a/gcc/testsuite/gnat.dg/discr10.adb b/gcc/testsuite/gnat.dg/discr10.adb new file mode 100644 index 0000000..4ad834f --- /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 0000000..8df7ef1 --- /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; |