https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87386
--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Author: jakub Date: Wed Nov 21 22:41:07 2018 New Revision: 266359 URL: https://gcc.gnu.org/viewcvs?rev=266359&root=gcc&view=rev Log: PR c++/87386 * parser.c (cp_parser_primary_expression): Use id_expression.get_location () instead of id_expr_token->location. Adjust the range from id_expr_token->location to id_expressio.get_finish (). (cp_parser_operator_function_id): Pass location of the operator token down to cp_parser_operator. (cp_parser_operator): Add start_loc argument, always construct a location with caret at start_loc and range from start_loc to the finish of the last token. gcc/testsuite/ * g++.dg/diagnostic/pr87386.C: New test. * g++.dg/parse/error17.C: Adjust expected diagnostics. libstdc++-v3/ * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust expected line. * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise. * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise. * testsuite/experimental/propagate_const/requirements2.cc: Likewise. * testsuite/experimental/propagate_const/requirements3.cc: Likewise. * testsuite/experimental/propagate_const/requirements4.cc: Likewise. * testsuite/experimental/propagate_const/requirements5.cc: Likewise. Added: trunk/gcc/testsuite/g++.dg/diagnostic/pr87386.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/parser.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/parse/error17.C trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/testsuite/20_util/scoped_allocator/69293_neg.cc trunk/libstdc++-v3/testsuite/20_util/uses_allocator/69293_neg.cc trunk/libstdc++-v3/testsuite/20_util/uses_allocator/cons_neg.cc trunk/libstdc++-v3/testsuite/experimental/propagate_const/requirements2.cc trunk/libstdc++-v3/testsuite/experimental/propagate_const/requirements3.cc trunk/libstdc++-v3/testsuite/experimental/propagate_const/requirements4.cc trunk/libstdc++-v3/testsuite/experimental/propagate_const/requirements5.cc