diff options
author | Paolo Carlini <pcarlini@suse.de> | 2007-08-10 14:57:52 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2007-08-10 14:57:52 +0000 |
commit | 2fbe0e5aec26f9a07df2146aeb427b94fdabe27e (patch) | |
tree | fb34a6380509b6c4b96ad27dedf8ab2756acb3b5 | |
parent | 8a09ef91fa2a67d82dd353c0bd8250d0d96c8fd0 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/error.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/other/error16.C | 14 |
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" } +} |