aboutsummaryrefslogtreecommitdiff
path: root/gcc/sanopt.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2018-08-27 15:21:28 +0200
committerMartin Liska <marxin@gcc.gnu.org>2018-08-27 13:21:28 +0000
commit47c3496bf898e9dfe12799ef6e31ae9b9211c63d (patch)
treea380f3ec58ab3725fe955cde6665f72ac5fa7692 /gcc/sanopt.c
parent6b60ee204f80649803dc78c24ab9c94ff8f51789 (diff)
downloadgcc-47c3496bf898e9dfe12799ef6e31ae9b9211c63d.zip
gcc-47c3496bf898e9dfe12799ef6e31ae9b9211c63d.tar.gz
gcc-47c3496bf898e9dfe12799ef6e31ae9b9211c63d.tar.bz2
Sanopt: ignore params with DECL_HAS_VALUE_EXPR_P (PR sanitizer/86962).
2018-08-27 Martin Liska <mliska@suse.cz> PR sanitizer/86962 * sanopt.c (sanitize_rewrite_addressable_params): Ignore params with DECL_HAS_VALUE_EXPR_P. 2018-08-27 Martin Liska <mliska@suse.cz> PR sanitizer/86962 * gcc.dg/asan/pr86962.c: New test. From-SVN: r263882
Diffstat (limited to 'gcc/sanopt.c')
-rw-r--r--gcc/sanopt.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/sanopt.c b/gcc/sanopt.c
index 223c06a..082f936 100644
--- a/gcc/sanopt.c
+++ b/gcc/sanopt.c
@@ -1165,13 +1165,15 @@ sanitize_rewrite_addressable_params (function *fun)
gimple_add_tmp_var (var);
+ /* We skip parameters that have a DECL_VALUE_EXPR. */
+ if (DECL_HAS_VALUE_EXPR_P (arg))
+ continue;
+
if (dump_file)
fprintf (dump_file,
"Rewriting parameter whose address is taken: %s\n",
IDENTIFIER_POINTER (DECL_NAME (arg)));
- gcc_assert (!DECL_HAS_VALUE_EXPR_P (arg));
-
SET_DECL_PT_UID (var, DECL_PT_UID (arg));
/* Assign value of parameter to newly created variable. */