summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2017-12-13 20:29:11 +0000
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2017-12-13 20:29:11 +0000
commit184dcc4e29aa4ff47c25805b319dbec3bededa99 (patch)
tree9b90ea22696cd42a9a266ff8ccd88a7ec0606cf6
parentbf4af501c4e31bebef7db76712e7ed1f663c17ce (diff)
downloadgcc-184dcc4e29aa4ff47c25805b319dbec3bededa99.tar.gz
/cp
2017-12-13 Paolo Carlini <paolo.carlini@oracle.com> PR c++/81061 * typeck.c (cp_build_modify_expr): Upon cxx_readonly_error immediately return error_mark_node. /testsuite 2017-12-13 Paolo Carlini <paolo.carlini@oracle.com> PR c++/81061 * g++.dg/other/const5.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@255613 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/typeck.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/other/const5.C8
4 files changed, 20 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index d298315e240..d362c47f6dc 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2017-12-13 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/81061
+ * typeck.c (cp_build_modify_expr): Upon cxx_readonly_error
+ immediately return error_mark_node.
+
2017-12-13 Nathan Sidwell <nathan@acm.org>
PR c++/15272
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index 7210f99fb08..8f3302f1933 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -8037,8 +8037,7 @@ cp_build_modify_expr (location_t loc, tree lhs, enum tree_code modifycode,
{
if (complain & tf_error)
cxx_readonly_error (lhs, lv_assign);
- else
- return error_mark_node;
+ return error_mark_node;
}
/* If storing into a structure or union member, it may have been given a
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 43ef569fb1c..5a3d8f2a3f0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2017-12-13 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/81061
+ * g++.dg/other/const5.C: New.
+
2017-12-13 Alexandre Oliva <aoliva@redhat.com>
Jakub Jelinek <jakub@redhat.com>
diff --git a/gcc/testsuite/g++.dg/other/const5.C b/gcc/testsuite/g++.dg/other/const5.C
new file mode 100644
index 00000000000..fabe361d206
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/const5.C
@@ -0,0 +1,8 @@
+// PR c++/81061
+
+const int i = 0;
+
+void foo()
+{
+ (0, i) = 1; // { dg-error "read-only" }
+}