aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2007-08-10 14:57:52 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2007-08-10 14:57:52 +0000
commit2fbe0e5aec26f9a07df2146aeb427b94fdabe27e (patch)
treefb34a6380509b6c4b96ad27dedf8ab2756acb3b5
parent8a09ef91fa2a67d82dd353c0bd8250d0d96c8fd0 (diff)
downloadgcc-2fbe0e5aec26f9a07df2146aeb427b94fdabe27e.zip
gcc-2fbe0e5aec26f9a07df2146aeb427b94fdabe27e.tar.gz
gcc-2fbe0e5aec26f9a07df2146aeb427b94fdabe27e.tar.bz2
re PR c++/17763 (Wrong context in error message for template parameter)
/cp 2007-08-10 Paolo Carlini <pcarlini@suse.de> PR c++/17763 * error.c (dump_expr): Consistently use the *_cxx_* variants of the pretty-print functions. /testsuite 2007-08-10 Paolo Carlini <pcarlini@suse.de> PR c++/17763 * g++.dg/other/error16.C: New. From-SVN: r127335
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/error.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/other/error16.C14
4 files changed, 27 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 1260e10..876939b 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,11 @@
2007-08-10 Paolo Carlini <pcarlini@suse.de>
+ PR c++/17763
+ * error.c (dump_expr): Consistently use the *_cxx_*
+ variants of the pretty-print functions.
+
+2007-08-10 Paolo Carlini <pcarlini@suse.de>
+
PR c++/22256
* decl.c (check_special_function_return_type): Just error
on return type specified for conversion operator.
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index 46785f9..404fbd0 100644
--- a/gcc/cp/error.c
+++ b/gcc/cp/error.c
@@ -1550,13 +1550,13 @@ dump_expr (tree t, int flags)
if (TREE_CODE (ob) == ADDR_EXPR)
{
dump_expr (TREE_OPERAND (ob, 0), flags | TFF_EXPR_IN_PARENS);
- pp_dot (cxx_pp);
+ pp_cxx_dot (cxx_pp);
}
else if (TREE_CODE (ob) != PARM_DECL
|| strcmp (IDENTIFIER_POINTER (DECL_NAME (ob)), "this"))
{
dump_expr (ob, flags | TFF_EXPR_IN_PARENS);
- pp_arrow (cxx_pp);
+ pp_cxx_arrow (cxx_pp);
}
skipfirst = true;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b56e0d5..e380348 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-08-10 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/17763
+ * g++.dg/other/error16.C: New.
+
2007-08-10 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/33039
diff --git a/gcc/testsuite/g++.dg/other/error16.C b/gcc/testsuite/g++.dg/other/error16.C
new file mode 100644
index 0000000..1e34647
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/error16.C
@@ -0,0 +1,14 @@
+// PR c++/17763
+
+template <typename U> struct Outer {
+ struct Inner {};
+ Inner foo();
+};
+
+typedef int X;
+typedef Outer<X> XOuter;
+
+int main() {
+ Outer<int> ab;
+ ab.foo() == 1; // { dg-error "ab.Outer" }
+}