diff options
Diffstat (limited to 'gcc/ada/utils.c')
-rw-r--r-- | gcc/ada/utils.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/ada/utils.c b/gcc/ada/utils.c index dc8a5b1..3d525a0 100644 --- a/gcc/ada/utils.c +++ b/gcc/ada/utils.c @@ -3224,6 +3224,11 @@ unchecked_convert (tree type, tree expr, int notrunc_p) else { expr = maybe_unconstrained_array (expr); + + /* There's no point in doing two unchecked conversions in a row. */ + if (TREE_CODE (expr) == VIEW_CONVERT_EXPR) + expr = TREE_OPERAND (expr, 0); + etype = TREE_TYPE (expr); expr = build1 (VIEW_CONVERT_EXPR, type, expr); } |