From 6c6a27379ca5d770a78ce98100ffdd4a31ba3c73 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Tue, 29 Oct 2019 22:31:08 +0000 Subject: [PATCH] typeck.c (build_x_unary_op): Use the location_t argument in three error_at. /cp 2019-10-29 Paolo Carlini * typeck.c (build_x_unary_op): Use the location_t argument in three error_at. /testsuite 2019-10-29 Paolo Carlini * g++.dg/other/ptrmem8.C: Test locations too. * g++.dg/template/dtor6.C: Likewise. From-SVN: r277595 --- gcc/cp/ChangeLog | 9 +++++++-- gcc/cp/typeck.c | 20 ++++++++++---------- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/other/ptrmem8.C | 4 ++-- gcc/testsuite/g++.dg/template/dtor6.C | 8 ++++---- 5 files changed, 28 insertions(+), 18 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 6b1937557ff..bc2b48eea75 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2019-10-29 Paolo Carlini + + * typeck.c (build_x_unary_op): Use the location_t argument in + three error_at. + 2019-10-29 Marek Polacek PR c++/90998 - ICE with copy elision in init by ctor and -Wconversion. @@ -25,8 +30,8 @@ * cp-tree.h (cxx_simulate_builtin_function_decl): Declare. * decl.c (cxx_simulate_builtin_function_decl): New function. - * cp-objcp-common.h (LANG_HOOKS_SIMULATE_BUILTIN_FUNCTION_DECL): Define - to the above. + * cp-objcp-common.h (LANG_HOOKS_SIMULATE_BUILTIN_FUNCTION_DECL): + Define to the above. 2019-10-28 Martin Sebor diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index 627dfc2a4fc..ad46d42d215 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -5829,10 +5829,10 @@ build_x_unary_op (location_t loc, enum tree_code code, cp_expr xarg, if (DECL_CONSTRUCTOR_P (fn) || DECL_DESTRUCTOR_P (fn)) { if (complain & tf_error) - error (DECL_CONSTRUCTOR_P (fn) - ? G_("taking address of constructor %qD") - : G_("taking address of destructor %qD"), - fn); + error_at (loc, DECL_CONSTRUCTOR_P (fn) + ? G_("taking address of constructor %qD") + : G_("taking address of destructor %qD"), + fn); return error_mark_node; } } @@ -5847,19 +5847,19 @@ build_x_unary_op (location_t loc, enum tree_code code, cp_expr xarg, { if (complain & tf_error) { - error ("invalid use of %qE to form a " - "pointer-to-member-function", xarg.get_value ()); + error_at (loc, "invalid use of %qE to form a " + "pointer-to-member-function", xarg.get_value ()); if (TREE_CODE (xarg) != OFFSET_REF) - inform (input_location, " a qualified-id is required"); + inform (loc, " a qualified-id is required"); } return error_mark_node; } else { if (complain & tf_error) - error ("parentheses around %qE cannot be used to form a" - " pointer-to-member-function", - xarg.get_value ()); + error_at (loc, "parentheses around %qE cannot be used to " + "form a pointer-to-member-function", + xarg.get_value ()); else return error_mark_node; PTRMEM_OK_P (xarg) = 1; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index db443f71729..1c478fe2ad0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-10-29 Paolo Carlini + + * g++.dg/other/ptrmem8.C: Test locations too. + * g++.dg/template/dtor6.C: Likewise. + 2019-10-29 Marek Polacek PR c++/90998 - ICE with copy elision in init by ctor and -Wconversion. diff --git a/gcc/testsuite/g++.dg/other/ptrmem8.C b/gcc/testsuite/g++.dg/other/ptrmem8.C index d0b0ba7228e..755b0ad8647 100644 --- a/gcc/testsuite/g++.dg/other/ptrmem8.C +++ b/gcc/testsuite/g++.dg/other/ptrmem8.C @@ -6,11 +6,11 @@ struct A {}; template void foo(void (A::* f)()) { A a; - &(a.*f); // { dg-error "invalid use of\[^\n\]*\\.\\*\[^\n\]*to form|qualified-id is required" } + &(a.*f); // { dg-error "3:invalid use of\[^\n\]*\\.\\*\[^\n\]*to form|qualified-id is required" } } template void bar(void (A::* f)()) { A *p; - &(p->*f); // { dg-error "invalid use of\[^\n\]*->\\*\[^\n\]*to form|qualified-id is required" } + &(p->*f); // { dg-error "3:invalid use of\[^\n\]*->\\*\[^\n\]*to form|qualified-id is required" } } diff --git a/gcc/testsuite/g++.dg/template/dtor6.C b/gcc/testsuite/g++.dg/template/dtor6.C index c44b780294c..a3d778a1ea1 100644 --- a/gcc/testsuite/g++.dg/template/dtor6.C +++ b/gcc/testsuite/g++.dg/template/dtor6.C @@ -5,12 +5,12 @@ template struct A static int i; }; -template int A::i = { A::~A }; // { dg-error "non-static member function" } +template int A::i = { A::~A }; // { dg-error "36:invalid use of non-static member function" } template class A<0>; struct X { }; -int i1 = X::~X; // { dg-error "non-static member function" } -int i2 = &X::~X; // { dg-error "address of destructor" } -int i3 = &A<0>::~A; // { dg-error "address of destructor" } +int i1 = X::~X; // { dg-error "13:invalid use of non-static member function" } +int i2 = &X::~X; // { dg-error "10:taking address of destructor" } +int i3 = &A<0>::~A; // { dg-error "10:taking address of destructor" } -- 2.30.2