aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorMarc Glisse <marc.glisse@inria.fr>2013-05-08 13:46:44 +0000
committerMarc Glisse <marc.glisse@inria.fr>2013-05-08 13:46:44 +0000
commitc8e9c000468875c90c5ee7df293db470af09b8ad (patch)
treed8ab5c0c769637e82896d8d087e629255ee1f1a2 /gcc/cp
parent93a9fc7fa12de60c115e047545b80bd3edc65c39 (diff)
2013-05-08 Marc Glisse <marc.glisse@inria.fr>
gcc/cp/ * typeck.c (cp_build_binary_op): Call save_expr before build_vector_from_val. gcc/testsuite/ * c-c++-common/vector-scalar-2.c: New testcase. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gcc-4_8-branch@198712 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/typeck.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 5fba2fdb4e9..b91a4c572ae 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2013-05-08 Marc Glisse <marc.glisse@inria.fr>
+
+ * typeck.c (cp_build_binary_op): Call save_expr before
+ build_vector_from_val.
+
2013-05-06 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/57183
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index cb7e03d5598..76de973da2f 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -3958,6 +3958,7 @@ cp_build_binary_op (location_t location,
return error_mark_node;
case stv_firstarg:
{
+ op0 = save_expr (op0);
op0 = convert (TREE_TYPE (type1), op0);
op0 = build_vector_from_val (type1, op0);
type0 = TREE_TYPE (op0);
@@ -3967,6 +3968,7 @@ cp_build_binary_op (location_t location,
}
case stv_secondarg:
{
+ op1 = save_expr (op1);
op1 = convert (TREE_TYPE (type0), op1);
op1 = build_vector_from_val (type0, op1);
type1 = TREE_TYPE (op1);