aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2018-06-11 13:47:00 +0200
committerMartin Liska <marxin@gcc.gnu.org>2018-06-11 11:47:00 +0000
commit2dcab30bf737912fab9acfa560282c50c1d65c91 (patch)
tree00c781b72cbcaaf90ba02d40d3ccff60b7997b84 /gcc
parent0c5a38a5f78d88226c14fc1f42208c1fd07dd896 (diff)
downloadgcc-2dcab30bf737912fab9acfa560282c50c1d65c91.zip
gcc-2dcab30bf737912fab9acfa560282c50c1d65c91.tar.gz
gcc-2dcab30bf737912fab9acfa560282c50c1d65c91.tar.bz2
Fix typo done in MPX removal (PR tree-optimization/86089).
2018-06-11 Martin Liska <mliska@suse.cz> PR tree-optimization/86089 * tree-ssa-strlen.c (get_string_length): Move back removed hunk. 2018-06-11 Martin Liska <mliska@suse.cz> PR tree-optimization/86089 * gcc.dg/tree-ssa/pr86089.c: New test. From-SVN: r261434
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr86089.c13
-rw-r--r--gcc/tree-ssa-strlen.c6
4 files changed, 28 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a046620..4032e6c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2018-06-11 Martin Liska <mliska@suse.cz>
+
+ PR tree-optimization/86089
+ * tree-ssa-strlen.c (get_string_length): Move back removed hunk.
+
2018-06-11 Julia Koval <julia.koval@intel.com>
* config/i386/vaesintrin.h (_mm_aesdec_epi128, _mm_aesdeclast_epi128)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4d38f53..5c14949 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2018-06-11 Martin Liska <mliska@suse.cz>
+
+ PR tree-optimization/86089
+ * gcc.dg/tree-ssa/pr86089.c: New test.
+
2018-06-11 Julia Koval <julia.koval@intel.com>
* gcc.target/i386/avx512fvl-vaes-1.c: Remove 128bit versions from test.
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr86089.c b/gcc/testsuite/gcc.dg/tree-ssa/pr86089.c
new file mode 100644
index 0000000..58d5429
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr86089.c
@@ -0,0 +1,13 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -Wall" } */
+
+extern char* stpcpy (char*, const char*);
+
+int f (char* s)
+{
+ char a[32];
+
+ __builtin___strcpy_chk (a, s, __builtin_object_size (a, 1));
+
+ return __builtin_strlen (a);
+}
diff --git a/gcc/tree-ssa-strlen.c b/gcc/tree-ssa-strlen.c
index 804905d..5056214 100644
--- a/gcc/tree-ssa-strlen.c
+++ b/gcc/tree-ssa-strlen.c
@@ -617,8 +617,12 @@ get_string_length (strinfo *si)
lhs = NULL_TREE;
/* FALLTHRU */
case BUILT_IN_STRCPY:
+ case BUILT_IN_STRCPY_CHK:
gcc_assert (builtin_decl_implicit_p (BUILT_IN_STPCPY));
- fn = builtin_decl_implicit (BUILT_IN_STPCPY);
+ if (gimple_call_num_args (stmt) == 2)
+ fn = builtin_decl_implicit (BUILT_IN_STPCPY);
+ else
+ fn = builtin_decl_explicit (BUILT_IN_STPCPY_CHK);
gcc_assert (lhs == NULL_TREE);
if (dump_file && (dump_flags & TDF_DETAILS) != 0)
{