From 40cb3f8ac875c6cf6610a5f93da571cfdd2a1513 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Fri, 30 Oct 2020 14:28:23 +0100 Subject: [PATCH] Disable TBAA for array descriptors. * trans-types.c: Include alias.h (gfc_get_array_type_bounds): Set typeless storage. --- gcc/fortran/trans-types.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c index b15ea667..b7129dc 100644 --- a/gcc/fortran/trans-types.c +++ b/gcc/fortran/trans-types.c @@ -38,6 +38,7 @@ along with GCC; see the file COPYING3. If not see #include "trans-array.h" #include "dwarf2out.h" /* For struct array_descr_info. */ #include "attribs.h" +#include "alias.h" #if (GFC_MAX_DIMENSIONS < 10) @@ -1903,6 +1904,10 @@ gfc_get_array_type_bounds (tree etype, int dimen, int codimen, tree * lbound, base_type = gfc_get_array_descriptor_base (dimen, codimen, false); TYPE_CANONICAL (fat_type) = base_type; TYPE_STUB_DECL (fat_type) = TYPE_STUB_DECL (base_type); + /* Arrays of unknown type must alias with all array descriptors. */ + TYPE_TYPELESS_STORAGE (base_type) = 1; + TYPE_TYPELESS_STORAGE (fat_type) = 1; + gcc_checking_assert (!get_alias_set (base_type) && !get_alias_set (fat_type)); tmp = TYPE_NAME (etype); if (tmp && TREE_CODE (tmp) == TYPE_DECL) -- 2.7.4