From: Jan Hubicka Date: Fri, 30 Oct 2020 13:28:23 +0000 (+0100) Subject: Disable TBAA for array descriptors. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=40cb3f8ac875c6cf6610a5f93da571cfdd2a1513;p=gcc.git Disable TBAA for array descriptors. * trans-types.c: Include alias.h (gfc_get_array_type_bounds): Set typeless storage. --- diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c index b15ea667411..b7129dcbe6d 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)