mirror of git://gcc.gnu.org/git/gcc.git
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
This commit is contained in:
parent
8a09ef91fa
commit
2fbe0e5aec
|
|
@ -1,3 +1,9 @@
|
||||||
|
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>
|
2007-08-10 Paolo Carlini <pcarlini@suse.de>
|
||||||
|
|
||||||
PR c++/22256
|
PR c++/22256
|
||||||
|
|
|
||||||
|
|
@ -1550,13 +1550,13 @@ dump_expr (tree t, int flags)
|
||||||
if (TREE_CODE (ob) == ADDR_EXPR)
|
if (TREE_CODE (ob) == ADDR_EXPR)
|
||||||
{
|
{
|
||||||
dump_expr (TREE_OPERAND (ob, 0), flags | TFF_EXPR_IN_PARENS);
|
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
|
else if (TREE_CODE (ob) != PARM_DECL
|
||||||
|| strcmp (IDENTIFIER_POINTER (DECL_NAME (ob)), "this"))
|
|| strcmp (IDENTIFIER_POINTER (DECL_NAME (ob)), "this"))
|
||||||
{
|
{
|
||||||
dump_expr (ob, flags | TFF_EXPR_IN_PARENS);
|
dump_expr (ob, flags | TFF_EXPR_IN_PARENS);
|
||||||
pp_arrow (cxx_pp);
|
pp_cxx_arrow (cxx_pp);
|
||||||
}
|
}
|
||||||
skipfirst = true;
|
skipfirst = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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>
|
2007-08-10 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||||
|
|
||||||
PR libfortran/33039
|
PR libfortran/33039
|
||||||
|
|
|
||||||
|
|
@ -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" }
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue