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).