aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Reichelt <v.reichelt@netcologne.de>2017-04-04 16:30:44 +0000
committerVolker Reichelt <reichelt@gcc.gnu.org>2017-04-04 16:30:44 +0000
commitc0ea338bd2765c1af808a96e72a3928a52e4f558 (patch)
treeb36519a20682d109be8765e8b50a528a647bd8a5
parenta1527a93a6a7dcc031b917db1e6ff7efa8916c4a (diff)
downloadgcc-c0ea338bd2765c1af808a96e72a3928a52e4f558.zip
gcc-c0ea338bd2765c1af808a96e72a3928a52e4f558.tar.gz
gcc-c0ea338bd2765c1af808a96e72a3928a52e4f558.tar.bz2
re PR c++/80296 (Broken diagnostic 'unary_plus_expr' not supported by expression)
PR c++/80296 * cxx-pretty-print.c (cxx_pretty_printer::expression): Add UNARY_PLUS_EXPR case. * g++.dg/cpp0x/alias-decl-80296.C: New test. From-SVN: r246683
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/cxx-pretty-print.c1
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/alias-decl-80296.C9
4 files changed, 21 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index a28dcb5..6cacac1 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2017-04-04 Volker Reichelt <v.reichelt@netcologne.de>
+
+ PR c++/80296
+ * cxx-pretty-print.c (cxx_pretty_printer::expression): Add
+ UNARY_PLUS_EXPR case.
+
2017-04-03 Jason Merrill <jason@redhat.com>
* semantics.c (finish_template_type): Check CLASSTYPE_TEMPLATE_INFO.
diff --git a/gcc/cp/cxx-pretty-print.c b/gcc/cp/cxx-pretty-print.c
index 470d124..f76c30a 100644
--- a/gcc/cp/cxx-pretty-print.c
+++ b/gcc/cp/cxx-pretty-print.c
@@ -1112,6 +1112,7 @@ cxx_pretty_printer::expression (tree t)
case SIZEOF_EXPR:
case ALIGNOF_EXPR:
case NOEXCEPT_EXPR:
+ case UNARY_PLUS_EXPR:
unary_expression (t);
break;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0d5f128..9c1a764 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2017-04-04 Volker Reichelt <v.reichelt@netcologne.de>
+
+ PR c++/80296
+ * g++.dg/cpp0x/alias-decl-80296.C: New test.
+
2017-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
PR target/80307
diff --git a/gcc/testsuite/g++.dg/cpp0x/alias-decl-80296.C b/gcc/testsuite/g++.dg/cpp0x/alias-decl-80296.C
new file mode 100644
index 0000000..8664387
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/alias-decl-80296.C
@@ -0,0 +1,9 @@
+// { dg-do compile { target c++11 } }
+// { dg-bogus "not supported by" "" { target *-*-* } 0 }
+
+template <int...> struct A {};
+
+template <int... N> using B = A<+N...>;
+
+B<int> b; // { dg-error "type/value mismatch" }
+ // { dg-message "expected a constant" "expected" { target *-*-* } 8 }