diff options
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 4c6bada..be7e947 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -1758,10 +1758,8 @@ static const struct attribute_spec rs6000_attribute_table[] = #define TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION \ rs6000_builtin_md_vectorized_function -#ifdef TARGET_THREAD_SSP_OFFSET #undef TARGET_STACK_PROTECT_GUARD -#define TARGET_STACK_PROTECT_GUARD hook_tree_void_null -#endif +#define TARGET_STACK_PROTECT_GUARD rs6000_init_stack_protect_guard #if !TARGET_MACHO #undef TARGET_STACK_PROTECT_FAIL @@ -9479,6 +9477,17 @@ rs6000_legitimize_tls_address (rtx addr, enum tls_model model) return dest; } +/* Only create the global variable for the stack protect guard if we are using + the global flavor of that guard. */ +static tree +rs6000_init_stack_protect_guard (void) +{ + if (rs6000_stack_protector_guard == SSP_GLOBAL) + return default_stack_protect_guard (); + + return NULL_TREE; +} + /* Implement TARGET_CANNOT_FORCE_CONST_MEM. */ static bool |