From 54b9f838faa635b6ae638cbc05195b8b181d4cc3 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Mon, 23 Apr 2012 10:20:05 +0000 Subject: [PATCH] re PR c/53060 (Typo in build_binary_op for scalar-vector ops) 2012-04-23 Richard Guenther PR c/53060 * c-typeck.c (build_binary_op): Fix typo. * gcc.dg/pr53060.c: New testcase. From-SVN: r186696 --- gcc/ChangeLog | 8 +++++++- gcc/c-typeck.c | 2 +- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/pr53060.c | 24 ++++++++++++++++++++++++ 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/pr53060.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b204f8268a2..9673a1ef37f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-04-23 Richard Guenther + + PR c/53060 + * c-typeck.c (build_binary_op): Fix typo. + 2012-04-23 Jakub Jelinek PR tree-optimizations/52891 @@ -7,7 +12,8 @@ 2012-04-22 Jan Hubicka - * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Bail out at NULL tree refs. + * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Bail out at NULL + tree refs. 2012-04-22 Jan Hubicka diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index 7fd2c95b837..fcf751f0b88 100644 --- a/gcc/c-typeck.c +++ b/gcc/c-typeck.c @@ -9751,7 +9751,7 @@ build_binary_op (location_t location, enum tree_code code, sc = convert (TREE_TYPE (type0), sc); op1 = build_vector_from_val (type0, sc); if (!maybe_const) - op0 = c_wrap_maybe_const (op1, true); + op1 = c_wrap_maybe_const (op1, true); orig_type1 = type1 = TREE_TYPE (op1); code1 = TREE_CODE (type1); converted = 1; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f1b50fa39d0..7843587d772 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-04-23 Richard Guenther + + PR c/53060 + * gcc.dg/pr53060.c: New testcase. + 2012-04-23 Jakub Jelinek PR tree-optimizations/52891 diff --git a/gcc/testsuite/gcc.dg/pr53060.c b/gcc/testsuite/gcc.dg/pr53060.c new file mode 100644 index 00000000000..3b2f193d9e3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr53060.c @@ -0,0 +1,24 @@ +/* { dg-do run } */ + +extern void abort (void); + +int f(void) { return 2; } +unsigned int g(void) { return 5; } +unsigned int h = 1; + +typedef unsigned int vec __attribute__((vector_size(16))); + +vec i = { 1, 2, 3, 4}; + +vec fv1(void) { return i + (h ? f() : g()); } +vec fv2(void) { return (h ? f() : g()) + i; } + +int main() +{ + vec i, j; + j = fv1(); + if (j[0] != 3) abort(); + i = fv2(); + if (i[0] != 3) abort(); + return 0; +} -- 2.30.2