My patch for 86943 on the branch removed this code, which led to a location change on one of the diagnostics in constexpr-lambda8.C. Removing this bit wasn't the point of the patch, so let's put it back.
Applying to 8 branch. * pt.c (tsubst_copy_and_build): Do still clear expr location for instantiated thunk calls. --- gcc/cp/pt.c | 8 +++++++- gcc/cp/ChangeLog | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index aa57811d7b7..72dc1e0b569 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -18539,12 +18539,18 @@ tsubst_copy_and_build (tree t, bool op = CALL_EXPR_OPERATOR_SYNTAX (t); bool ord = CALL_EXPR_ORDERED_ARGS (t); bool rev = CALL_EXPR_REVERSE_ARGS (t); - if (op || ord || rev) + bool thk = CALL_FROM_THUNK_P (t); + if (op || ord || rev || thk) { function = extract_call_expr (ret); CALL_EXPR_OPERATOR_SYNTAX (function) = op; CALL_EXPR_ORDERED_ARGS (function) = ord; CALL_EXPR_REVERSE_ARGS (function) = rev; + if (thk) + { + /* The thunk location is not interesting. */ + SET_EXPR_LOCATION (function, UNKNOWN_LOCATION); + } } } diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 27f7032652f..7e3d056dc7b 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2019-02-11 Jason Merrill <ja...@redhat.com> + + PR c++/89267 - change of error location. + * pt.c (tsubst_copy_and_build): Do still clear expr location + for instantiated thunk calls. + 2019-02-08 Jason Merrill <ja...@redhat.com> PR c++/88761 - ICE with reference capture of constant. base-commit: 161d165c044a1cc7e5d4c15358817afaf6e82f58 -- 2.20.1