aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2020-05-15 14:51:24 +0200
committerMartin Liska <mliska@suse.cz>2020-10-22 10:06:06 +0200
commit5a99796b85c93fe9d61ee52fc3a38b8698709479 (patch)
treee651cd8b76a30ec463c31855993fe437a2bbe520 /gcc
parentdf7f0a3a21418f8e06bb4710f09587e54225da93 (diff)
downloadgcc-5a99796b85c93fe9d61ee52fc3a38b8698709479.zip
gcc-5a99796b85c93fe9d61ee52fc3a38b8698709479.tar.gz
gcc-5a99796b85c93fe9d61ee52fc3a38b8698709479.tar.bz2
Come up with stack_protector enum.
gcc/ChangeLog: 2020-05-15 Martin Liska <mliska@suse.cz> * cfgexpand.c: Move the enum to ... * coretypes.h (enum stack_protector): ... here. * function.c (assign_parm_adjust_stack_rtl): Use the stack_protector enum. gcc/c-family/ChangeLog: 2020-05-15 Martin Liska <mliska@suse.cz> * c-cppbuiltin.c (c_cpp_builtins): Use the stack_protector enum.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/c-family/c-cppbuiltin.c8
-rw-r--r--gcc/cfgexpand.c7
-rw-r--r--gcc/coretypes.h8
-rw-r--r--gcc/function.c2
4 files changed, 13 insertions, 12 deletions
diff --git a/gcc/c-family/c-cppbuiltin.c b/gcc/c-family/c-cppbuiltin.c
index 74ecca8..e5ebb79 100644
--- a/gcc/c-family/c-cppbuiltin.c
+++ b/gcc/c-family/c-cppbuiltin.c
@@ -1427,13 +1427,13 @@ c_cpp_builtins (cpp_reader *pfile)
/* Make the choice of the stack protector runtime visible to source code.
The macro names and values here were chosen for compatibility with an
earlier implementation, i.e. ProPolice. */
- if (flag_stack_protect == 4)
+ if (flag_stack_protect == SPCT_FLAG_EXPLICIT)
cpp_define (pfile, "__SSP_EXPLICIT__=4");
- if (flag_stack_protect == 3)
+ if (flag_stack_protect == SPCT_FLAG_STRONG)
cpp_define (pfile, "__SSP_STRONG__=3");
- if (flag_stack_protect == 2)
+ if (flag_stack_protect == SPCT_FLAG_ALL)
cpp_define (pfile, "__SSP_ALL__=2");
- else if (flag_stack_protect == 1)
+ else if (flag_stack_protect == SPCT_FLAG_DEFAULT)
cpp_define (pfile, "__SSP__=1");
if (flag_openacc)
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index 1eaa1da..2ac9aef 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -1762,13 +1762,6 @@ clear_tree_used (tree block)
clear_tree_used (t);
}
-enum {
- SPCT_FLAG_DEFAULT = 1,
- SPCT_FLAG_ALL = 2,
- SPCT_FLAG_STRONG = 3,
- SPCT_FLAG_EXPLICIT = 4
-};
-
/* Examine TYPE and determine a bit mask of the following features. */
#define SPCT_HAS_LARGE_CHAR_ARRAY 1
diff --git a/gcc/coretypes.h b/gcc/coretypes.h
index 6b6cfcd..81a1b59 100644
--- a/gcc/coretypes.h
+++ b/gcc/coretypes.h
@@ -219,6 +219,14 @@ enum profile_reproducibility {
PROFILE_REPRODUCIBILITY_MULTITHREADED
};
+/* Type of -fstack-protector-*. */
+enum stack_protector {
+ SPCT_FLAG_DEFAULT = 1,
+ SPCT_FLAG_ALL = 2,
+ SPCT_FLAG_STRONG = 3,
+ SPCT_FLAG_EXPLICIT = 4
+};
+
/* Types of unwind/exception handling info that can be generated. */
enum unwind_info_type
diff --git a/gcc/function.c b/gcc/function.c
index c612959..f903a1e 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -2846,7 +2846,7 @@ assign_parm_adjust_stack_rtl (struct assign_parm_data_one *data)
/* If stack protection is in effect for this function, don't leave any
pointers in their passed stack slots. */
else if (crtl->stack_protect_guard
- && (flag_stack_protect == 2
+ && (flag_stack_protect == SPCT_FLAG_ALL
|| data->arg.pass_by_reference
|| POINTER_TYPE_P (data->nominal_type)))
stack_parm = NULL;