Subject: [Boost-bugs] [Boost C++ Libraries] #3681: Comeau throws "no operator==" and "no suitable conversion" errors
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2009-11-26 20:58:01
#3681: Comeau throws "no operator==" and "no suitable conversion" errors
-----------------------------------------------------------+----------------
Reporter: Mateusz Loskot (mloskot) <mateusz@â¦> | Owner: bemandawes
Type: Bugs | Status: new
Milestone: Boost 1.42.0 | Component: filesystem
Version: Boost Development Trunk | Severity: Problem
Keywords: como,comeau |
-----------------------------------------------------------+----------------
Building Boost.Filesystem library using Comeau C/C++ frontend with GCC
4.3.3 on Linux 32-bit (Ubuntu 9.03) compilation of
''filesystem/src/operations.cpp'' reports missing equal-to operators for
some POSIX-related types:
{{{
como-linux.compile.c++ ../../../bin.v2/libs/filesystem/build/como-
linux/debug/link-static/operations.o
Comeau C/C++ 4.3.10.1 (May 7 2008 12:23:21) for LINUX_INTEL_ELF_Beta
Copyright 1988-2008 Comeau Computing. All rights reserved.
MODE:non-strict warnings C++ noC++0x_extensions
"../../../libs/filesystem/src/operations.cpp", line 1027: error: no
operator
"==" matches these operands
operand types are: __off64_t == int
: path_stat.st_size == 0 );
^
"../../../libs/filesystem/src/operations.cpp", line 1041: error: no
operator
"==" matches these operands
operand types are: __dev_t == __dev_t
s1.st_dev == s2.st_dev
^
"../../../libs/filesystem/src/operations.cpp", line 1042: error: no
operator
"==" matches these operands
operand types are: __ino64_t == __ino64_t
&& s1.st_ino == s2.st_ino
^
"../../../libs/filesystem/src/operations.cpp", line 1046: error: no
operator
"==" matches these operands
operand types are: __off64_t == __off64_t
&& s1.st_size == s2.st_size
^
}}}
Also, ''no suitable conversion'' errors are thrown for the same source
code:
{{{
"../../../libs/filesystem/src/operations.cpp", line 1059: error: no
suitable
conversion function from "__off64_t" to "boost::uintmax_t"
exists
static_cast<boost::uintmax_t>(path_stat.st_size) );
^
"../../../libs/filesystem/src/operations.cpp", line 1077: error: no
suitable
conversion function from "__fsblkcnt64_t" to "boost::uintmax_t"
exists
= static_cast<boost::uintmax_t>(vfs.f_blocks) *
BOOST_STATVFS_F_FRSIZE;
^
"../../../libs/filesystem/src/operations.cpp", line 1079: error: no
suitable
conversion function from "__fsblkcnt64_t" to "boost::uintmax_t"
exists
= static_cast<boost::uintmax_t>(vfs.f_bfree) *
BOOST_STATVFS_F_FRSIZE;
^
"../../../libs/filesystem/src/operations.cpp", line 1081: error: no
suitable
conversion function from "__fsblkcnt64_t" to "boost::uintmax_t"
exists
= static_cast<boost::uintmax_t>(vfs.f_bavail) *
BOOST_STATVFS_F_FRSIZE;
^
"../../../libs/filesystem/src/operations.cpp", line 1317: error: argument
of
type "dirent *" is incompatible with parameter of type "dirent64
*"
{ return ::readdir_r( dirp, entry, result ); }
^
"../../../libs/filesystem/src/operations.cpp", line 1317: error: argument
of
type "dirent **" is incompatible with parameter of type
"dirent64 **"
{ return ::readdir_r( dirp, entry, result ); }
^
"../../../libs/filesystem/src/operations.cpp", line 1322: error: a value
of
type "dirent64 *" cannot be assigned to an entity of type
"dirent *"
if ( (p = ::readdir( dirp )) == 0 )
^
}}}
Here is complete ''como'' command:
{{{
como -tused -c --long_long -DBOOST_ALL_NO_LIB=1 -DBOOST_All_STATIC_LINK=1
-DBOOST_SYSTEM_STATIC_LINK=1 -D_GNU_SOURCE=1 --no_inlining -O0 -g
--exceptions -I"../../.." -o "../../../bin.v2/libs/filesystem/build
/como-linux/debug/link-static/operations.o"
"../../../libs/filesystem/src/operations.cpp"
}}}
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/3681> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:01 UTC