]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR c++/80363 (#'vec_cond_expr' not supported by dump_expr#<expression...
authorJakub Jelinek <jakub@redhat.com>
Tue, 30 May 2017 08:25:10 +0000 (10:25 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 30 May 2017 08:25:10 +0000 (10:25 +0200)
Backported from mainline
2017-04-11  Jakub Jelinek  <jakub@redhat.com>

PR c++/80363
* error.c (dump_expr): Handle VEC_COND_EXPR like COND_EXPR.

* g++.dg/ext/pr80363.C: New test.

From-SVN: r248670

gcc/cp/ChangeLog
gcc/cp/error.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ext/pr80363.C [new file with mode: 0644]

index 1bd0d7cd486131cba3034afa0efcf93e5d51ba25..54eee0911b56e574a2668b94183b845dd594304e 100644 (file)
@@ -1,6 +1,11 @@
 2017-05-30  Jakub Jelinek  <jakub@redhat.com>
 
        Backported from mainline
+       2017-04-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/80363
+       * error.c (dump_expr): Handle VEC_COND_EXPR like COND_EXPR.
+
        2017-04-10  Jakub Jelinek  <jakub@redhat.com>
 
        PR c++/80176
index 4bcd281965e4635baedb054e6e1ae94e14325c54..0c8bd66a325bbfcad179292da8c335bd5ae36683 100644 (file)
@@ -2005,6 +2005,7 @@ dump_expr (cxx_pretty_printer *pp, tree t, int flags)
       break;
 
     case COND_EXPR:
+    case VEC_COND_EXPR:
       pp_cxx_left_paren (pp);
       dump_expr (pp, TREE_OPERAND (t, 0), flags | TFF_EXPR_IN_PARENS);
       pp_string (pp, " ? ");
index d6179039f1a99f5b434520ba1777cc8d26941c05..3494df82b19ba84a9fa82235e42b1984f92d9ed6 100644 (file)
@@ -1,6 +1,11 @@
 2017-05-30  Jakub Jelinek  <jakub@redhat.com>
 
        Backported from mainline
+       2017-04-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/80363
+       * g++.dg/ext/pr80363.C: New test.
+
        2017-04-10  Jakub Jelinek  <jakub@redhat.com>
 
        PR c++/80176
diff --git a/gcc/testsuite/g++.dg/ext/pr80363.C b/gcc/testsuite/g++.dg/ext/pr80363.C
new file mode 100644 (file)
index 0000000..2ff7bca
--- /dev/null
@@ -0,0 +1,12 @@
+// PR c++/80363
+// { dg-do compile }
+
+typedef int V __attribute__((vector_size (16)));
+
+int
+foo (V *a, V *b)
+{
+  if (*a < *b) // { dg-error "could not convert\[^#]*from" }
+    return 1;
+  return 0;
+}