public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/50285] New: no known conversion for argument 1: 'X' to 'X&'
@ 2011-09-03 20:03 mainmail at chello dot at
  2011-09-04 18:07 ` [Bug c++/50285] " redi at gcc dot gnu.org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: mainmail at chello dot at @ 2011-09-03 20:03 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50285

             Bug #: 50285
           Summary: no known conversion for argument 1: 'X' to 'X&'
    Classification: Unclassified
           Product: gcc
           Version: 4.6.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: mainmail@chello.at


Please tell me I'm misreading the error message.

g++ -v -save-temps -DHAVE_CONFIG_H -I.
-I../../../../../../trunk/source/gepetto/database/access -I../../../..   
-I../../../../../../trunk/source  -isystem/home/anubis/CPP/boost-svn/ -O2 -g3
-Wall -Wno-long-long -Wfloat-equal -pedantic -ansi -MT
test/test_unit__join-join.tc.o -MD -MP -MF
test/.deps/test_unit__join-join.tc.Tpo -c -o test/test_unit__join-join.tc.o
`test -f 'test/join.tc.cpp' || echo
'../../../../../../trunk/source/gepetto/database/access/'`test/join.tc.cpp
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /build/src/gcc-4.6-20110819/configure --prefix=/usr
--libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man
--infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/
--enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared
--enable-threads=posix --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-clocale=gnu --enable-gnu-unique-object
--enable-linker-build-id --with-ppl --enable-cloog-backend=isl --enable-lto
--enable-gold --enable-ld=default --enable-plugin --with-plugin-ld=ld.gold
--disable-multilib --disable-libssp --disable-libstdcxx-pch
--enable-checking=release
Thread model: posix
gcc version 4.6.1 20110819 (prerelease) (GCC) 
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-D' 'HAVE_CONFIG_H' '-I' '.' '-I'
'../../../../../../trunk/source/gepetto/database/access' '-I' '../../../..'
'-I' '../../../../../../trunk/source' '-isystem' '/home/anubis/CPP/boost-svn/'
'-O2' '-g3' '-Wall' '-Wno-long-long' '-Wfloat-equal' '-pedantic' '-ansi' '-MT'
'test/test_unit__join-join.tc.o' '-MD' '-MP' '-MF'
'test/.deps/test_unit__join-join.tc.Tpo' '-c' '-o'
'test/test_unit__join-join.tc.o' '-shared-libgcc' '-mtune=generic'
'-march=x86-64'
 /usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/cc1plus -E -quiet -v -I . -I
../../../../../../trunk/source/gepetto/database/access -I ../../../.. -I
../../../../../../trunk/source -MD test/test_unit__join-join.tc.d -MF
test/.deps/test_unit__join-join.tc.Tpo -MP -MT test/test_unit__join-join.tc.o
-dD -D_GNU_SOURCE -D HAVE_CONFIG_H -isystem /home/anubis/CPP/boost-svn/
../../../../../../trunk/source/gepetto/database/access/test/join.tc.cpp
-mtune=generic -march=x86-64 -ansi -Wall -Wno-long-long -Wfloat-equal -pedantic
-g3 -fworking-directory -O2 -fpch-preprocess -o join.tc.ii
ignoring nonexistent directory
"/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../x86_64-unknown-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 .
 ../../../../../../trunk/source/gepetto/database/access
 ../../../..
 ../../../../../../trunk/source
 /home/anubis/CPP/boost-svn/
 /usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../include/c++/4.6.1

/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../include/c++/4.6.1/x86_64-unknown-linux-gnu

/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../include/c++/4.6.1/backward
 /usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/include
 /usr/local/include
 /usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/include-fixed
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-D' 'HAVE_CONFIG_H' '-I' '.' '-I'
'../../../../../../trunk/source/gepetto/database/access' '-I' '../../../..'
'-I' '../../../../../../trunk/source' '-isystem' '/home/anubis/CPP/boost-svn/'
'-O2' '-g3' '-Wall' '-Wno-long-long' '-Wfloat-equal' '-pedantic' '-ansi' '-MT'
'test/test_unit__join-join.tc.o' '-MD' '-MP' '-MF'
'test/.deps/test_unit__join-join.tc.Tpo' '-c' '-o'
'test/test_unit__join-join.tc.o' '-shared-libgcc' '-mtune=generic'
'-march=x86-64'
 /usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/cc1plus -fpreprocessed join.tc.ii
-quiet -dumpbase join.tc.cpp -mtune=generic -march=x86-64 -auxbase-strip
test/test_unit__join-join.tc.o -g3 -O2 -Wall -Wno-long-long -Wfloat-equal
-pedantic -ansi -version -o join.tc.s
GNU C++ (GCC) version 4.6.1 20110819 (prerelease) (x86_64-unknown-linux-gnu)
        compiled by GNU C version 4.6.1 20110819 (prerelease), GMP version
5.0.2, MPFR version 3.0.1-p4, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU C++ (GCC) version 4.6.1 20110819 (prerelease) (x86_64-unknown-linux-gnu)
        compiled by GNU C version 4.6.1 20110819 (prerelease), GMP version
5.0.2, MPFR version 3.0.1-p4, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 28ab00cbdb55abc964d7174615d645a6
In file included from
../../../../../../trunk/source/gepetto/database/access/test/../../access/request/tabex.h:11:0,
                 from
../../../../../../trunk/source/gepetto/database/access/test/../../access/request/ensemble.h:14,
                 from
../../../../../../trunk/source/gepetto/database/access/test/../../access/ensemble.h:13,
                 from
../../../../../../trunk/source/gepetto/database/access/test/../../access.h:8,
                 from
../../../../../../trunk/source/gepetto/database/access/test/join.tc.cpp:9:
../../../../../../trunk/source/gepetto/database/access/test/../../access/request/tabex/tabex.h:
In member function ‘gepetto::database::access::request::Tabex<E>&
gepetto::database::access::request::Tabex<E>::operator=(const
gepetto::database::access::request::Tabex<E>&) [with E =
gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > >,
gepetto::database::access::request::Tabex<E> =
gepetto::database::access::request::Tabex<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > > >]’:
../../../../../../trunk/source/gepetto/database/access/test/../../access/access.template.cpp:44:2:
  instantiated from ‘typename E::request_type
gepetto::database::access::Access<E>::request(const typename E::gsql_type&)
const [with E =
gepetto::database::access::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > >, typename
E::request_type =
gepetto::database::access::request::Query<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > > >, typename
E::gsql_type =
gepetto::database::access::gsql::Query<gepetto::database::access::gsql::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, std::basic_string<char> > >]’
../../../../../../trunk/source/gepetto/database/access/test/join.tc.cpp:48:190:
  instantiated from here
../../../../../../trunk/source/gepetto/database/access/test/../../access/request/tabex/tabex.h:56:112:
warning: no return statement in function returning non-void [-Wreturn-type]
../../../../../../trunk/source/gepetto/database/access/test/../../access/request/tabex/tabex.h:
In member function ‘const typename E::metatable_t&
gepetto::database::access::request::Tabex<E>::operator()() const [with E =
gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > >, typename
E::metatable_t =
gepetto::database::access::request::MetaTable<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > > >]’:
../../../../../../trunk/source/gepetto/database/access/test/../../access/request/tabex/tabex.h:54:67:
  instantiated from ‘gepetto::database::access::request::Tabex<E>::Tabex(const
typename E::tabex_expression_t&) [with E =
gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > >, typename
E::tabex_expression_t =
boost::variant<gepetto::database::access::request::Empty,
gepetto::database::access::request::Table<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > > >,
boost::shared_ptr<gepetto::database::access::request::join::JoinBinary<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > > > >,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_>]’
../../../../../../trunk/source/gepetto/database/access/test/../../access/access.template.cpp:35:2:
  instantiated from ‘typename E::request_type
gepetto::database::access::Access<E>::request(const typename E::gsql_type&)
const [with E =
gepetto::database::access::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > >, typename
E::request_type =
gepetto::database::access::request::Query<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > > >, typename
E::gsql_type =
gepetto::database::access::gsql::Query<gepetto::database::access::gsql::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, std::basic_string<char> > >]’
../../../../../../trunk/source/gepetto/database/access/test/join.tc.cpp:48:190:
  instantiated from here
../../../../../../trunk/source/gepetto/database/access/test/../../access/request/tabex/tabex.h:62:3:
error: no match for ‘operator=’ in ‘((const
gepetto::database::access::request::Tabex<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > >
>*)this)->gepetto::database::access::request::Tabex<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > > >::Table =
boost::apply_visitor(Visitor&, Visitable&) [with Visitor =
gepetto::database::access::request::Visitor_Tabex<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > > >, Visitable
= const boost::variant<gepetto::database::access::request::Empty,
gepetto::database::access::request::Table<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > > >,
boost::shared_ptr<gepetto::database::access::request::join::JoinBinary<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > > > >,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_>, typename Visitor::result_type =
gepetto::database::access::request::MetaTable<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > > >]((*
&((const
gepetto::database::access::request::Tabex<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > >
>*)this)->gepetto::database::access::request::Tabex<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > >
>::Expression))’
../../../../../../trunk/source/gepetto/database/access/test/../../access/request/tabex/tabex.h:62:3:
note: candidate is:
../../../../../../trunk/source/gepetto/database/access/test/../../access/request/tabex/metatable.h:32:29:
note:
gepetto::database::access::request::MetaTable<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > > >&
gepetto::database::access::request::MetaTable<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > >
>::operator=(gepetto::database::access::request::MetaTable<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > > >&)
../../../../../../trunk/source/gepetto/database/access/test/../../access/request/tabex/metatable.h:32:29:
note:   no known conversion for argument 1 from
‘boost::static_visitor<gepetto::database::access::request::MetaTable<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > > >
>::result_type {aka
gepetto::database::access::request::MetaTable<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > > >}’ to
‘gepetto::database::access::request::MetaTable<gepetto::database::access::request::Ensemble<gepetto::database::storage::buffered::Ensemble<gepetto::database::storage::value::uidsv::Valor,
std::basic_string<char>, unsigned int, std::basic_string<char> > > >&’


This is really a problem of going from boost V1.47 to svn (development), but
the relevant code section should not have changed and unless I'm misreading the
error message GCC somehow cannot convert a type to itself.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug c++/50285] no known conversion for argument 1: 'X' to 'X&'
  2011-09-03 20:03 [Bug c++/50285] New: no known conversion for argument 1: 'X' to 'X&' mainmail at chello dot at
@ 2011-09-04 18:07 ` redi at gcc dot gnu.org
  2011-10-10 12:04 ` manu at gcc dot gnu.org
  2011-10-10 12:22 ` redi at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: redi at gcc dot gnu.org @ 2011-09-04 18:07 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50285

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |WAITING
   Last reconfirmed|                            |2011-09-04
     Ever Confirmed|0                           |1

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-09-04 18:06:54 UTC ---
An error message is not a bug, please follow the bug reporting instructions and
provide source code for a testcase demonstrating your problem:
http://gcc.gnu.org/bugs/

The message clearly isn't about converting a type to  itself, it's about
converting a type to a non-const lvalue reference to that type (X is not the
same as X&)

I assume it means you're trying to pass an rvalue (e.g. a temporary) to a
function that requires an lvalue

e.g. this produces a similar error

struct X {
  X& operator=(X&);
};

X f();

void g()
{
  X x;
  x = f();
}


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug c++/50285] no known conversion for argument 1: 'X' to 'X&'
  2011-09-03 20:03 [Bug c++/50285] New: no known conversion for argument 1: 'X' to 'X&' mainmail at chello dot at
  2011-09-04 18:07 ` [Bug c++/50285] " redi at gcc dot gnu.org
@ 2011-10-10 12:04 ` manu at gcc dot gnu.org
  2011-10-10 12:22 ` redi at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: manu at gcc dot gnu.org @ 2011-10-10 12:04 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50285

Manuel López-Ibáñez <manu at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |RESOLVED
                 CC|                            |manu at gcc dot gnu.org
         Resolution|                            |INVALID

--- Comment #2 from Manuel López-Ibáñez <manu at gcc dot gnu.org> 2011-10-10 12:00:07 UTC ---
I don't get why this is WAITING, if you have suggestions on how to improve the
diagnostic, please REOPEN. Otherwise this is not a bug.

Clang prints something similar:

/tmp/webcompile/_26316_0.cc:11:5: error: no viable overloaded '='
  x = f();
  ~ ^ ~~~
/tmp/webcompile/_26316_0.cc:3:6: note: candidate function not viable: no known
conversion from 'X' to 'X &' for 1st argument
  X& operator=(X&);
     ^
1 error generated.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug c++/50285] no known conversion for argument 1: 'X' to 'X&'
  2011-09-03 20:03 [Bug c++/50285] New: no known conversion for argument 1: 'X' to 'X&' mainmail at chello dot at
  2011-09-04 18:07 ` [Bug c++/50285] " redi at gcc dot gnu.org
  2011-10-10 12:04 ` manu at gcc dot gnu.org
@ 2011-10-10 12:22 ` redi at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: redi at gcc dot gnu.org @ 2011-10-10 12:22 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50285

--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-10-10 12:15:44 UTC ---
(In reply to comment #2)
> I don't get why this is WAITING

Really?  The OP never provided any source that demonstrates the "bug" so I
couldn't be sure if my guess was right or if they found a real bug.  When an
incomplete bug report is submitted the usual response is to request more
details and set WAITING.

As feedback has not been forthcoming I agree with closing it.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-10-10 12:22 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-09-03 20:03 [Bug c++/50285] New: no known conversion for argument 1: 'X' to 'X&' mainmail at chello dot at
2011-09-04 18:07 ` [Bug c++/50285] " redi at gcc dot gnu.org
2011-10-10 12:04 ` manu at gcc dot gnu.org
2011-10-10 12:22 ` redi at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).