diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2011-03-24 15:15:44 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2011-03-24 15:15:44 +0000 |
commit | abbc8c7b156d75c1f4baad852af5762482203ee1 (patch) | |
tree | c1c65e774a237e5997724407c49c3b5a2b70bd41 /gcc/ada | |
parent | 61be2a1ce3ab4b79b7238dcd92af3ec63de9dedb (diff) | |
download | gcc-abbc8c7b156d75c1f4baad852af5762482203ee1.zip gcc-abbc8c7b156d75c1f4baad852af5762482203ee1.tar.gz gcc-abbc8c7b156d75c1f4baad852af5762482203ee1.tar.bz2 |
trans.c (gnat_to_gnu): Remove obsolete case of non-conversion to the nominal result type at the end.
* gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
non-conversion to the nominal result type at the end.
From-SVN: r171398
Diffstat (limited to 'gcc/ada')
-rw-r--r-- | gcc/ada/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ada/gcc-interface/trans.c | 22 |
2 files changed, 12 insertions, 15 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 2468644..e586919 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2011-03-24 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of + non-conversion to the nominal result type at the end. + 2011-03-23 Eric Botcazou <ebotcazou@adacore.com> * gcc-interface/trans.c (create_temporary): New function taken from... diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c index dc83f0a..ab0725b 100644 --- a/gcc/ada/gcc-interface/trans.c +++ b/gcc/ada/gcc-interface/trans.c @@ -5879,15 +5879,11 @@ gnat_to_gnu (Node_Id gnat_node) since we need to ignore those conversions (for 'Valid). 2. If we have a label (which doesn't have any well-defined type), a - field or an error, return the result almost unmodified. Also don't - do the conversion if the result type involves a PLACEHOLDER_EXPR in - its size since those are the cases where the front end may have the - type wrong due to "instantiating" the unconstrained record with - discriminant values. Similarly, if the two types are record types - with the same name don't convert. This will be the case when we are - converting from a packable version of a type to its original type and - we need those conversions to be NOPs in order for assignments into - these types to work properly. + field or an error, return the result almost unmodified. Similarly, + if the two types are record types with the same name, don't convert. + This will be the case when we are converting from a packable version + of a type to its original type and we need those conversions to be + NOPs in order for assignments into these types to work properly. 3. If the type is void or if we have no result, return error_mark_node to show we have no result. @@ -5933,12 +5929,8 @@ gnat_to_gnu (Node_Id gnat_node) else if (TREE_CODE (gnu_result) == LABEL_DECL || TREE_CODE (gnu_result) == FIELD_DECL || TREE_CODE (gnu_result) == ERROR_MARK - || (TYPE_SIZE (gnu_result_type) - && TREE_CODE (TYPE_SIZE (gnu_result_type)) != INTEGER_CST - && TREE_CODE (gnu_result) != INDIRECT_REF - && CONTAINS_PLACEHOLDER_P (TYPE_SIZE (gnu_result_type))) - || ((TYPE_NAME (gnu_result_type) - == TYPE_NAME (TREE_TYPE (gnu_result))) + || (TYPE_NAME (gnu_result_type) + == TYPE_NAME (TREE_TYPE (gnu_result)) && TREE_CODE (gnu_result_type) == RECORD_TYPE && TREE_CODE (TREE_TYPE (gnu_result)) == RECORD_TYPE)) { |