]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c/53060 (Typo in build_binary_op for scalar-vector ops)
authorRichard Biener <rguenth@gcc.gnu.org>
Mon, 23 Apr 2012 10:20:05 +0000 (10:20 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Mon, 23 Apr 2012 10:20:05 +0000 (10:20 +0000)
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.

From-SVN: r186696

gcc/ChangeLog
gcc/c-typeck.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr53060.c [new file with mode: 0644]

index b204f8268a201b479fbe63f18117ba6bd8f8ac40..9673a1ef37f5fbc3bb55a913f2e857762c4f7d0e 100644 (file)
@@ -1,3 +1,8 @@
+2012-04-23  Richard Guenther  <rguenther@suse.de>
+
+       PR c/53060
+       * c-typeck.c (build_binary_op): Fix typo.
+
 2012-04-23  Jakub Jelinek  <jakub@redhat.com>
 
        PR tree-optimizations/52891
@@ -7,7 +12,8 @@
 
 2012-04-22  Jan Hubicka  <jh@suse.cz>
 
-       * 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  <jh@suse.cz>
 
index 7fd2c95b8377b58bbc683b6bad5282cc3f6b6ead..fcf751f0b8816972da91a2e3e19e562e0e0938bb 100644 (file)
@@ -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;
index f1b50fa39d0393dcbb6ce7f4dd48fd47b78c9b3e..7843587d772e7dec242ec11480e73ecc8a979f6c 100644 (file)
@@ -1,3 +1,8 @@
+2012-04-23  Richard Guenther  <rguenther@suse.de>
+
+       PR c/53060
+       * gcc.dg/pr53060.c: New testcase.
+
 2012-04-23  Jakub Jelinek  <jakub@redhat.com>
 
        PR tree-optimizations/52891
diff --git a/gcc/testsuite/gcc.dg/pr53060.c b/gcc/testsuite/gcc.dg/pr53060.c
new file mode 100644 (file)
index 0000000..3b2f193
--- /dev/null
@@ -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;
+}