From: jakub Date: Tue, 31 Jan 2017 21:38:00 +0000 (+0000) Subject: PR c++/79304 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=636eeb71f3e957152b9e82839bf1737b4a996767;p=thirdparty%2Fgcc.git PR c++/79304 * error.c (dump_expr) : Don't print . after ARROW_EXPR. * g++.dg/diagnostic/pr79304.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245073 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 04d2a6017e81..560bbfab3e85 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2017-01-31 Jakub Jelinek + + PR c++/79304 + * error.c (dump_expr) : Don't print . + after ARROW_EXPR. + 2017-01-31 David Malcolm PR c++/79298 diff --git a/gcc/cp/error.c b/gcc/cp/error.c index 4f4c11df570a..92137f7c0213 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -2247,7 +2247,8 @@ dump_expr (cxx_pretty_printer *pp, tree t, int flags) else { dump_expr (pp, ob, flags | TFF_EXPR_IN_PARENS); - pp_cxx_dot (pp); + if (TREE_CODE (ob) != ARROW_EXPR) + pp_cxx_dot (pp); } dump_expr (pp, TREE_OPERAND (t, 1), flags & ~TFF_EXPR_IN_PARENS); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ef50edab5622..c313baa64379 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-01-31 Jakub Jelinek + + PR c++/79304 + * g++.dg/diagnostic/pr79304.C: New test. + 2017-01-31 David Malcolm PR c++/79298 diff --git a/gcc/testsuite/g++.dg/diagnostic/pr79304.C b/gcc/testsuite/g++.dg/diagnostic/pr79304.C new file mode 100644 index 000000000000..eedae42cbdf1 --- /dev/null +++ b/gcc/testsuite/g++.dg/diagnostic/pr79304.C @@ -0,0 +1,20 @@ +// PR c++/79304 +// { dg-do compile } + +struct C { }; + +template +struct X +{ + C* c; + + void f() { + this->c.s(); // { dg-error "->c" } + } +}; + +int main() +{ + X x; + x.f(); +}