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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|2017-06-28 00:00:00         |2018-12-17

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
I fixed the std::__cxx11::string case on trunk, the output is now:

81239.cc: In function 'int main()':
81239.cc:15:17: error: too few arguments to function 'void test_params(const
string&, std::string&)'
   15 |     test_params();
      |                 ^
81239.cc:7:6: note: declared here
    7 | void test_params(const string & mystr1, string & out_str)
      |      ^~~~~~~~~~~


However the problem still exists in general:

namespace a {
  inline namespace b {
    template<typename C> class foo { };
    using cfoo = foo<char>;
  }
}

using namespace a;

void test_params(const cfoo&, cfoo&)
{
}

int main (void)
{
  test_params();
}


The error: line shows the namespace for one parameter and not the other:

81239.cc: In function 'int main()':
81239.cc:16:15: error: too few arguments to function 'void test_params(const
cfoo&, a::b::cfoo&)'
   16 |   test_params();
      |               ^
81239.cc:10:6: note: declared here
   10 | void test_params(const cfoo&, cfoo&)
      |      ^~~~~~~~~~~

Reply via email to