https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121527

--- Comment #19 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> The following fixes the bug as well:
> 
> diff --git a/gcc/tree-sra.cc b/gcc/tree-sra.cc
> index 032f2770484..9bf0672cf41 100644
> --- a/gcc/tree-sra.cc
> +++ b/gcc/tree-sra.cc
> @@ -4086,12 +4089,6 @@ get_access_for_expr (tree expr)
>    tree base;
>    bool reverse;
>  
> -  /* FIXME: This should not be necessary but Ada produces V_C_Es with a
> type of
> -     a different size than the size of its argument and we need the latter
> -     one.  */
> -  if (TREE_CODE (expr) == VIEW_CONVERT_EXPR)
> -    expr = TREE_OPERAND (expr, 0);
> -
>    base = get_ref_base_and_extent (expr, &poffset, &psize, &pmax_size,
>                                   &reverse);
>    if (!known_size_p (pmax_size)

Unfortunately only removing the FIXME introduced more regressions:

                === acats tests ===
+FAIL:  c390003
 FAIL:  c391002
+FAIL:  c41303a
+FAIL:  c41303i
+FAIL:  c41303m
+FAIL:  c41303u
+FAIL:  c432002

                === acats Summary ===
-# of expected passes           2577
-# of unexpected failures       1
+# of expected passes           2571
+# of unexpected failures       7
 Native configuration is x86_64-suse-linux-gnu

Reply via email to