https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88095
--- Comment #6 from Jason Merrill <jason at gcc dot gnu.org> --- Author: jason Date: Mon Aug 12 17:46:37 2019 New Revision: 274317 URL: https://gcc.gnu.org/viewcvs?rev=274317&root=gcc&view=rev Log: PR c++/88095, CTAD for literal operator templates per P0732 This patch fixes PR c++/88095: class nontype template parameter UDL string literals doesn't accepts deduction placeholder It also addresses a latent issue; literal operator templates with template parameter packs of literal class type were previously accepted. The patch corrects this and adds a test (udlit-class-nttp-neg.C). This fix is needed for one of the char8_t remediation approaches documented in P1423, and may be helpful for existing code bases impacted by the char8_t changes adopted via P0482 for C++20. gcc/cp/ChangeLog: 2019-08-02 Tom Honermann <t...@honermann.net> * parser.c (cp_parser_template_declaration_after_parameters): Enable class template argument deduction for non-type template parameters in literal operator templates. gcc/testsuite/ChangeLog: 2019-08-02 Tom Honermann <t...@honermann.net> PR c++/88095 * g++.dg/cpp2a/udlit-class-nttp-ctad.C: New test. * g++.dg/cpp2a/udlit-class-nttp-ctad-neg.C: New test. * g++.dg/cpp2a/udlit-class-nttp-ctad-neg2.C: New test. * g++.dg/cpp2a/udlit-class-nttp.C: New test. * g++.dg/cpp2a/udlit-class-nttp-neg.C: New test. * g++.dg/cpp2a/udlit-class-nttp-neg2.C: New test. Added: branches/gcc-9-branch/gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-ctad-neg.C branches/gcc-9-branch/gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-ctad-neg2.C branches/gcc-9-branch/gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-ctad.C branches/gcc-9-branch/gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-neg.C branches/gcc-9-branch/gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-neg2.C branches/gcc-9-branch/gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp.C Modified: branches/gcc-9-branch/gcc/cp/ChangeLog branches/gcc-9-branch/gcc/cp/parser.c branches/gcc-9-branch/gcc/testsuite/ChangeLog