aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThomas Preud'homme <thomas.preudhomme@arm.com>2017-12-07 21:48:35 +0000
committerThomas Preud'homme <thopre01@gcc.gnu.org>2017-12-07 21:48:35 +0000
commit38b28c6eb28463feadfc7e18d553f8f2327a2219 (patch)
tree0911da3ce64cf83a36681782588324c347aff783 /gcc
parentd3861707ebebb3c4dc6965582cb7ff696f9b6b73 (diff)
downloadgcc-38b28c6eb28463feadfc7e18d553f8f2327a2219.zip
gcc-38b28c6eb28463feadfc7e18d553f8f2327a2219.tar.gz
gcc-38b28c6eb28463feadfc7e18d553f8f2327a2219.tar.bz2
Improve fstack_protector effective target
Effective target fstack_protector fails to return an error for newlib-based target (such as arm-none-eabi targets) which does not support stack protector. This is due to the test being too simplist for stack protection code to be generated by GCC: it does not contain a local buffer and does not read unknown input. This commit adds a small local buffer with a copy of the filename to trigger stack protector code to be generated. The filename is used instead of the full path so as to ensure the size will fit in the local buffer. 2017-12-07 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/testsuite/ * lib/target-supports.exp (check_effective_target_fstack_protector): Copy filename in local buffer to trigger stack protection. From-SVN: r255484
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/lib/target-supports.exp6
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index dab24f4..9f8e837 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2017-12-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
+
+ * lib/target-supports.exp (check_effective_target_fstack_protector):
+ Copy filename in local buffer to trigger stack protection.
+
2017-12-07 Joseph Myers <joseph@codesourcery.com>
* gcc.dg/c11-align-7.c, gcc.dg/c11-align-8.c,
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 6242ce9..ed7d624 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -1064,7 +1064,11 @@ proc check_effective_target_static {} {
# Return 1 if the target supports -fstack-protector
proc check_effective_target_fstack_protector {} {
return [check_runtime fstack_protector {
- int main (void) { return 0; }
+ #include <string.h>
+ int main (int argc, char *argv[]) {
+ char buf[64];
+ return !strcpy (buf, strrchr (argv[0], '/'));
+ }
} "-fstack-protector"]
}