diff options
Diffstat (limited to 'gcc/tree-ssa.c')
-rw-r--r-- | gcc/tree-ssa.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index ddf5202..edbae39 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -1573,7 +1573,9 @@ execute_update_addresses_taken (bool do_optimize) if (!DECL_GIMPLE_REG_P (var) && !bitmap_bit_p (not_reg_needs, DECL_UID (var)) && (TREE_CODE (TREE_TYPE (var)) == COMPLEX_TYPE - || TREE_CODE (TREE_TYPE (var)) == VECTOR_TYPE)) + || TREE_CODE (TREE_TYPE (var)) == VECTOR_TYPE) + && !TREE_THIS_VOLATILE (var) + && (TREE_CODE (var) != VAR_DECL || !DECL_HARD_REGISTER (var))) { DECL_GIMPLE_REG_P (var) = 1; mark_sym_for_renaming (var); |