This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [SKETCH] Refactor implicit function template implementation and fix 58534, 58536, 58548, 58549 and 58637.
- From: Adam Butcher <adam at jessamine dot co dot uk>
- To: Jason Merrill <jason at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org, Volker Reichelt <reichelt at gcc dot gnu dot org>, Adam Butcher <adam at jessamine dot co dot uk>
- Date: Thu, 31 Oct 2013 09:47:01 +0000
- Subject: Re: [SKETCH] Refactor implicit function template implementation and fix 58534, 58536, 58548, 58549 and 58637.
- Authentication-results: sourceware.org; auth=none
Hi Jason,
I've got the tsubst solution for implicit parameter packs working now. I've
also improved the efficiency of incremental template parameter synthesis and
added some testcases. All C++14 generic lambda examples pass and no new
regressions.
Cheers,
Adam
Patch summary (3):
Refactor implicit function template implementation and fix 58534,
58536, 58548, 58549 and 58637.
Support implicit parameter packs.
Add some generic lambda test cases.
gcc/cp/decl.c | 30 +-
gcc/cp/parser.c | 331 +++++++++++++++------
gcc/cp/parser.h | 19 ++
gcc/testsuite/g++.dg/cpp1y/lambda-generic-cfun.C | 25 ++
gcc/testsuite/g++.dg/cpp1y/lambda-generic-dep.C | 42 +++
gcc/testsuite/g++.dg/cpp1y/lambda-generic-mixed.C | 10 +
gcc/testsuite/g++.dg/cpp1y/lambda-generic-udt.C | 51 ++++
.../g++.dg/cpp1y/lambda-generic-variadic.C | 15 +
gcc/testsuite/g++.dg/cpp1y/lambda-generic-x.C | 25 ++
gcc/testsuite/g++.dg/cpp1y/lambda-generic-xcfun.C | 25 ++
gcc/testsuite/g++.dg/cpp1y/lambda-generic-xudt.C | 4 +
gcc/testsuite/g++.dg/cpp1y/lambda-generic.C | 23 ++
gcc/testsuite/g++.dg/cpp1y/pr58534.C | 9 +
gcc/testsuite/g++.dg/cpp1y/pr58536.C | 12 +
gcc/testsuite/g++.dg/cpp1y/pr58548.C | 10 +
gcc/testsuite/g++.dg/cpp1y/pr58549.C | 10 +
gcc/testsuite/g++.dg/cpp1y/pr58637.C | 7 +
gcc/tree.c | 22 ++
gcc/tree.h | 5 +
19 files changed, 561 insertions(+), 114 deletions(-)
create mode 100644 gcc/testsuite/g++.dg/cpp1y/lambda-generic-cfun.C
create mode 100644 gcc/testsuite/g++.dg/cpp1y/lambda-generic-dep.C
create mode 100644 gcc/testsuite/g++.dg/cpp1y/lambda-generic-mixed.C
create mode 100644 gcc/testsuite/g++.dg/cpp1y/lambda-generic-udt.C
create mode 100644 gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic.C
create mode 100644 gcc/testsuite/g++.dg/cpp1y/lambda-generic-x.C
create mode 100644 gcc/testsuite/g++.dg/cpp1y/lambda-generic-xcfun.C
create mode 100644 gcc/testsuite/g++.dg/cpp1y/lambda-generic-xudt.C
create mode 100644 gcc/testsuite/g++.dg/cpp1y/lambda-generic.C
create mode 100644 gcc/testsuite/g++.dg/cpp1y/pr58534.C
create mode 100644 gcc/testsuite/g++.dg/cpp1y/pr58536.C
create mode 100644 gcc/testsuite/g++.dg/cpp1y/pr58548.C
create mode 100644 gcc/testsuite/g++.dg/cpp1y/pr58549.C
create mode 100644 gcc/testsuite/g++.dg/cpp1y/pr58637.C
--
1.8.4