diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2016-06-13 08:00:17 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2016-06-13 08:00:17 +0000 |
commit | 42e77cbc7d5c00e637bca5614a8d688ad08a39c7 (patch) | |
tree | a050bf546eea4542eff56409c4ae815fac2beffd /gcc | |
parent | 7474dcc1fed2bbce551341798bd4d7e6e10a5aa5 (diff) | |
download | gcc-42e77cbc7d5c00e637bca5614a8d688ad08a39c7.zip gcc-42e77cbc7d5c00e637bca5614a8d688ad08a39c7.tar.gz gcc-42e77cbc7d5c00e637bca5614a8d688ad08a39c7.tar.bz2 |
decl.c (gnat_to_gnu_entity): Deal with PLUS_EXPR in the expression of a renaming.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Deal with
PLUS_EXPR in the expression of a renaming.
From-SVN: r237360
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ada/gcc-interface/decl.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/renaming10.adb | 12 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/renaming10.ads | 9 |
5 files changed, 31 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 41a6c61..4ab6648 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,10 @@ 2016-06-13 Eric Botcazou <ebotcazou@adacore.com> + * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Deal with + PLUS_EXPR in the expression of a renaming. + +2016-06-13 Eric Botcazou <ebotcazou@adacore.com> + * gcc-interface/utils2.c (known_alignment) <CALL_EXPR>: Deal specially with calls to malloc. diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c index 8d4ff3f..985527e 100644 --- a/gcc/ada/gcc-interface/decl.c +++ b/gcc/ada/gcc-interface/decl.c @@ -1003,6 +1003,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, bool definition) && !call_is_atomic_load (inner)) || TREE_CODE (inner) == ADDR_EXPR || TREE_CODE (inner) == NULL_EXPR + || TREE_CODE (inner) == PLUS_EXPR || TREE_CODE (inner) == CONSTRUCTOR || CONSTANT_CLASS_P (inner) /* We need to detect the case where a temporary is created to diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 506c7f7..803f9b0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2016-06-13 Eric Botcazou <ebotcazou@adacore.com> + + * gnat.dg/renaming10.ad[sb]: New test. + 2016-06-13 Paul Thomas <pault@gcc.gnu.org> PR fortran/70673 diff --git a/gcc/testsuite/gnat.dg/renaming10.adb b/gcc/testsuite/gnat.dg/renaming10.adb new file mode 100644 index 0000000..07d4312 --- /dev/null +++ b/gcc/testsuite/gnat.dg/renaming10.adb @@ -0,0 +1,12 @@ +-- { dg-do compile } + +package body Renaming10 is + + function F (Input : Rec) return Natural is + Position : Natural renames Input.Position; + Index : Natural renames Natural'Succ(Position); + begin + return Index; + end; + +end Renaming10; diff --git a/gcc/testsuite/gnat.dg/renaming10.ads b/gcc/testsuite/gnat.dg/renaming10.ads new file mode 100644 index 0000000..aeb9fc1 --- /dev/null +++ b/gcc/testsuite/gnat.dg/renaming10.ads @@ -0,0 +1,9 @@ +package Renaming10 is + + type Rec is record + Position : Natural; + end record; + + function F (Input : Rec) return Natural; + +end Renaming10; |