diff options
author | Richard Biener <rguenther@suse.de> | 2016-06-29 07:30:31 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2016-06-29 07:30:31 +0000 |
commit | 4aa83879c93d2367f5245c94bd2f12c19f486dae (patch) | |
tree | 29eb8891c24a3daecbf68e50445cf77606b498d4 /gcc/fortran/f95-lang.c | |
parent | 36088299955f95ab58a5758cba2f29b84c8fbfbc (diff) | |
download | gcc-4aa83879c93d2367f5245c94bd2f12c19f486dae.zip gcc-4aa83879c93d2367f5245c94bd2f12c19f486dae.tar.gz gcc-4aa83879c93d2367f5245c94bd2f12c19f486dae.tar.bz2 |
re PR middle-end/71002 (-fstrict-aliasing breaks Boost's short string optimization implementation)
2016-06-29 Richard Biener <rguenther@suse.de>
PR middle-end/71002
* alias.c (component_uses_parent_alias_set_from): Handle
type punning through union accesses by using the union alias set.
* gimple.c (gimple_get_alias_set): Remove union type punning case.
c-family/
* c-common.c (c_common_get_alias_set): Remove union type punning case.
fortran/
* f95-lang.c (LANG_HOOKS_GET_ALIAS_SET): Remove (un-)define.
(gfc_get_alias_set): Remove.
* g++.dg/torture/pr71002.C: Adjust testcase.
From-SVN: r237839
Diffstat (limited to 'gcc/fortran/f95-lang.c')
-rw-r--r-- | gcc/fortran/f95-lang.c | 21 |
1 files changed, 0 insertions, 21 deletions
diff --git a/gcc/fortran/f95-lang.c b/gcc/fortran/f95-lang.c index b89a291..5849073 100644 --- a/gcc/fortran/f95-lang.c +++ b/gcc/fortran/f95-lang.c @@ -74,7 +74,6 @@ static bool global_bindings_p (void); static bool gfc_init (void); static void gfc_finish (void); static void gfc_be_parse_file (void); -static alias_set_type gfc_get_alias_set (tree); static void gfc_init_ts (void); static tree gfc_builtin_function (tree); @@ -110,7 +109,6 @@ static const struct attribute_spec gfc_attribute_table[] = #undef LANG_HOOKS_MARK_ADDRESSABLE #undef LANG_HOOKS_TYPE_FOR_MODE #undef LANG_HOOKS_TYPE_FOR_SIZE -#undef LANG_HOOKS_GET_ALIAS_SET #undef LANG_HOOKS_INIT_TS #undef LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE #undef LANG_HOOKS_OMP_PREDETERMINED_SHARING @@ -142,7 +140,6 @@ static const struct attribute_spec gfc_attribute_table[] = #define LANG_HOOKS_PARSE_FILE gfc_be_parse_file #define LANG_HOOKS_TYPE_FOR_MODE gfc_type_for_mode #define LANG_HOOKS_TYPE_FOR_SIZE gfc_type_for_size -#define LANG_HOOKS_GET_ALIAS_SET gfc_get_alias_set #define LANG_HOOKS_INIT_TS gfc_init_ts #define LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE gfc_omp_privatize_by_reference #define LANG_HOOKS_OMP_PREDETERMINED_SHARING gfc_omp_predetermined_sharing @@ -503,24 +500,6 @@ gfc_init_decl_processing (void) } -/* Return the typed-based alias set for T, which may be an expression - or a type. Return -1 if we don't do anything special. */ - -static alias_set_type -gfc_get_alias_set (tree t) -{ - tree u; - - /* Permit type-punning when accessing an EQUIVALENCEd variable or - mixed type entry master's return value. */ - for (u = t; handled_component_p (u); u = TREE_OPERAND (u, 0)) - if (TREE_CODE (u) == COMPONENT_REF - && TREE_CODE (TREE_TYPE (TREE_OPERAND (u, 0))) == UNION_TYPE) - return 0; - - return -1; -} - /* Builtin function initialization. */ static tree |