aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/trans.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/gcc-interface/trans.c')
-rw-r--r--gcc/ada/gcc-interface/trans.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c
index 96e7c80..ec3ec31 100644
--- a/gcc/ada/gcc-interface/trans.c
+++ b/gcc/ada/gcc-interface/trans.c
@@ -2123,6 +2123,9 @@ establish_gnat_vms_condition_handler (void)
ptr_void_type_node,
NULL_TREE),
NULL_TREE, 0, 1, 1, 0, Empty);
+
+ /* ??? DECL_CONTEXT shouldn't have been set because of DECL_EXTERNAL. */
+ DECL_CONTEXT (gnat_vms_condition_handler_decl) = NULL_TREE;
}
/* Do nothing if the establish builtin is not available, which might happen
@@ -2242,7 +2245,8 @@ Subprogram_Body_to_gnu (Node_Id gnat_node)
this happens. The foreign or exported condition is expected to satisfy
all the constraints. */
if (TARGET_ABI_OPEN_VMS
- && (Has_Foreign_Convention (gnat_node) || Is_Exported (gnat_node)))
+ && (Has_Foreign_Convention (gnat_subprog_id)
+ || Is_Exported (gnat_subprog_id)))
establish_gnat_vms_condition_handler ();
process_decls (Declarations (gnat_node), Empty, Empty, true, true);