aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2014-11-19 14:03:20 -0500
committerJason Merrill <jason@gcc.gnu.org>2014-11-19 14:03:20 -0500
commit3bdf0a9ba51c25ab13d5f37e311d77c12aca55ae (patch)
tree01c552187bbd817808764c705179037283348e9f /gcc
parent92c66d8311bb83157dbbf0008f750e12761d5296 (diff)
downloadgcc-3bdf0a9ba51c25ab13d5f37e311d77c12aca55ae.zip
gcc-3bdf0a9ba51c25ab13d5f37e311d77c12aca55ae.tar.gz
gcc-3bdf0a9ba51c25ab13d5f37e311d77c12aca55ae.tar.bz2
re PR c++/63928 (use after free in cp/constexpr.c)
PR c++/63928 * constexpr.c (cxx_eval_store_expression): Return init, not *valp. From-SVN: r217790
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/constexpr.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 13a9965..ac4d2a5 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2014-11-19 Jason Merrill <jason@redhat.com>
+
+ PR c++/63928
+ * constexpr.c (cxx_eval_store_expression): Return init, not *valp.
+
2014-11-19 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/55425
diff --git a/gcc/cp/constexpr.c b/gcc/cp/constexpr.c
index d98d9b9..77f5159 100644
--- a/gcc/cp/constexpr.c
+++ b/gcc/cp/constexpr.c
@@ -2554,7 +2554,7 @@ cxx_eval_store_expression (const constexpr_ctx *ctx, tree t,
else if (addr)
return target;
else
- return *valp;
+ return init;
}
/* Evaluate a ++ or -- expression. */