This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Fix PR53060
- From: Richard Guenther <rguenther at suse dot de>
- To: gcc-patches at gcc dot gnu dot org
- Date: Mon, 23 Apr 2012 12:18:01 +0200 (CEST)
- Subject: [PATCH] Fix PR53060
This fixes a typo.
Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to trunk.
Richard.
2012-04-23 Richard Guenther <rguenther@suse.de>
PR c/53060
* c-typeck.c (build_binary_op): Fix typo.
* gcc.dg/pr53060.c: New testcase.
Index: gcc/c-typeck.c
===================================================================
--- gcc/c-typeck.c (revision 186623)
+++ gcc/c-typeck.c (working copy)
@@ -9733,7 +9733,7 @@ build_binary_op (location_t location, en
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;
Index: gcc/testsuite/gcc.dg/pr53060.c
===================================================================
--- gcc/testsuite/gcc.dg/pr53060.c (revision 0)
+++ gcc/testsuite/gcc.dg/pr53060.c (revision 0)
@@ -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;
+}