diff options
author | Marc Glisse <marc.glisse@inria.fr> | 2013-05-06 23:11:24 +0200 |
---|---|---|
committer | Marc Glisse <glisse@gcc.gnu.org> | 2013-05-06 21:11:24 +0000 |
commit | 6698175d1591c25041f3979a5c01ef5f81e2f4ff (patch) | |
tree | 95d67b1150ca65255d7700df9f543409450ca2aa | |
parent | f2c17ea905f2cc272d31cc867324e21757a7eae9 (diff) | |
download | gcc-6698175d1591c25041f3979a5c01ef5f81e2f4ff.zip gcc-6698175d1591c25041f3979a5c01ef5f81e2f4ff.tar.gz gcc-6698175d1591c25041f3979a5c01ef5f81e2f4ff.tar.bz2 |
typeck.c (cp_build_binary_op): Call save_expr before build_vector_from_val.
2013-05-06 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.
From-SVN: r198648
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/typeck.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/vector-scalar-2.c | 14 |
4 files changed, 25 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 387f44a..21c4e39 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2013-05-06 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 b761dd5..2d9711b 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -3972,6 +3972,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); @@ -3981,6 +3982,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); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 73d27cf..dc8c10e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2013-05-06 Marc Glisse <marc.glisse@inria.fr> + + * c-c++-common/vector-scalar-2.c: New testcase. + 2013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com> * gcc.target/i386/asm-dialect-2.c: New testcase. diff --git a/gcc/testsuite/c-c++-common/vector-scalar-2.c b/gcc/testsuite/c-c++-common/vector-scalar-2.c new file mode 100644 index 0000000..f624c4c --- /dev/null +++ b/gcc/testsuite/c-c++-common/vector-scalar-2.c @@ -0,0 +1,14 @@ +/* { dg-do compile } */ +/* { dg-options "-fdump-tree-gimple" } */ + +typedef int veci __attribute__ ((vector_size (4 * sizeof (int)))); + +int c; + +void f (veci *a) +{ + *a = *a + ++c; +} + +/* { dg-final { scan-tree-dump-times " \\\+ 1" 1 "gimple" } } */ +/* { dg-final { cleanup-tree-dump "gimple" } } */ |