summaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/decl.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/gcc-interface/decl.c')
-rw-r--r--gcc/ada/gcc-interface/decl.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c
index 48acbfbe3c1..42086128cd7 100644
--- a/gcc/ada/gcc-interface/decl.c
+++ b/gcc/ada/gcc-interface/decl.c
@@ -33,6 +33,7 @@
#include "ggc.h"
#include "target.h"
#include "expr.h"
+#include "tree-inline.h"
#include "ada.h"
#include "types.h"
@@ -2628,12 +2629,6 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
#endif
}
- /* ??? This is necessary to make sure that the container is
- allocated with a null tree upfront; otherwise, it could
- be allocated with an uninitialized tree that is accessed
- before being set below. See ada-tree.h for details. */
- SET_TYPE_ACTUAL_BOUNDS (gnu_inner_type, NULL_TREE);
-
for (gnat_index = First_Index (gnat_entity);
Present (gnat_index); gnat_index = Next_Index (gnat_index))
SET_TYPE_ACTUAL_BOUNDS
@@ -7190,6 +7185,15 @@ annotate_value (tree gnu_size)
case EQ_EXPR: tcode = Eq_Expr; break;
case NE_EXPR: tcode = Ne_Expr; break;
+ case CALL_EXPR:
+ {
+ tree t = maybe_inline_call_in_expr (gnu_size);
+ if (t)
+ return annotate_value (t);
+ }
+
+ /* Fall through... */
+
default:
return No_Uint;
}