https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92221

            Bug ID: 92221
           Summary: [Regression] template argument deduction/substitution
                    failed after "Implement P0846R0, ADL and function
                    templates"
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dimitar.yordanov at sap dot com
  Target Milestone: ---

Hi,

we see a regression for the following example:

$cat > foo.cpp << EOF
template <typename> class a {
  using b = int;
  using c = int;
  b d;
  void e() { g<c>(d); }
  template <typename... f> static void g(f...);
};
EOF

$g++ -c foo.cpp

foo.cpp: In member function ‘void a< <template-parameter-1-1> >::e()’:
foo.cpp:5:20: error: no matching function for call to ‘a<
<template-parameter-1-1> >::g<a< <template-parameter-1-1> >::c>(a<
<template-parameter-1-1> >::b&)’
    5 |   void e() { g<c>(d); }
      |                    ^
foo.cpp:6:40: note: candidate: ‘template<class> template<class ... f> static
void a< <template-parameter-1-1> >::g(f ...)’
    6 |   template <typename... f> static void g(f...);
      |                                        ^
foo.cpp:6:40: note:   template argument deduction/substitution failed:
foo.cpp:5:20: note:   mismatched types ‘f’ and ‘int’
    5 |   void e() { g<c>(d); }
      |                    ^

First appears after:

2018-11-01  Marek Polacek  <pola...@redhat.com>
       Implement P0846R0, ADL and function templates.
       * decl.c (grokfndecl): Allow FUNCTION_DECL in assert.
       ...

Best wishes
Dimitar

Reply via email to