diff options
| author | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-09-23 20:06:30 +0100 | 
|---|---|---|
| committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-09-23 20:06:30 +0100 | 
| commit | 74984c2a06514ec5eef835070adc3f9fd8c18012 (patch) | |
| tree | fd89989f314e7d84814268d341455b8756ec294b | |
| parent | Add -Wpedantic (diff) | |
| download | slicer-74984c2a06514ec5eef835070adc3f9fd8c18012.tar.bz2 slicer-74984c2a06514ec5eef835070adc3f9fd8c18012.tar.xz slicer-74984c2a06514ec5eef835070adc3f9fd8c18012.zip | |
Add -Wconversion and -Wsign-conversion
| -rw-r--r-- | Jamroot.jam | 2 | ||||
| -rw-r--r-- | slicer/db/sqlInsertSerializer.cpp | 18 | ||||
| -rw-r--r-- | slicer/db/sqlInsertSerializer.h | 12 | ||||
| -rw-r--r-- | slicer/db/sqlUpdateSerializer.cpp | 4 | ||||
| -rw-r--r-- | slicer/ice/serializer.cpp | 2 | ||||
| -rw-r--r-- | slicer/ice/testSpecifics.cpp | 10 | ||||
| -rw-r--r-- | slicer/test/conversions.cpp | 7 | ||||
| -rw-r--r-- | slicer/tool/icemetadata.cpp | 2 | 
8 files changed, 32 insertions, 25 deletions
| diff --git a/Jamroot.jam b/Jamroot.jam index 8e63adb..b1dc307 100644 --- a/Jamroot.jam +++ b/Jamroot.jam @@ -23,6 +23,8 @@ project  			<variant>debug:<cflags>-Wunused  			<variant>debug:<cflags>-Woverloaded-virtual  			<variant>debug:<cflags>-Wpedantic +			<variant>debug:<cflags>-Wconversion +			<variant>debug:<cflags>-Wsign-conversion  			<variant>debug:<cflags>-Wnull-dereference  			<variant>debug:<cflags>-Wdouble-promotion  			<variant>debug:<cflags>-Wformat=2 diff --git a/slicer/db/sqlInsertSerializer.cpp b/slicer/db/sqlInsertSerializer.cpp index 4061b17..f18df73 100644 --- a/slicer/db/sqlInsertSerializer.cpp +++ b/slicer/db/sqlInsertSerializer.cpp @@ -1,6 +1,6 @@ +#include "sqlInsertSerializer.h"  #include "sqlBinder.h"  #include "sqlCommon.h" -#include "sqlInsertSerializer.h"  #include <boost/numeric/conversion/cast.hpp>  #include <common.h>  #include <compileTimeFormatter.h> @@ -56,7 +56,7 @@ namespace Slicer {  	void  	SqlInsertSerializer::bindObjectAndExecute(const Slicer::ModelPartPtr & cmp, DB::ModifyCommand * ins) const  	{ -		int paramNo = 0; +		unsigned int paramNo = 0;  		cmp->OnEachChild([this, ¶mNo, ins](auto &&, auto && PH2, auto && PH3) {  			bindObjectAndExecuteField(paramNo, ins, PH2, PH3);  		}); @@ -109,8 +109,8 @@ namespace Slicer {  	}  	void -	SqlInsertSerializer::bindObjectAndExecuteField( -			int & paramNo, DB::ModifyCommand * ins, const Slicer::ModelPartPtr & cmp, const HookCommon * h) const +	SqlInsertSerializer::bindObjectAndExecuteField(unsigned int & paramNo, DB::ModifyCommand * ins, +			const Slicer::ModelPartPtr & cmp, const HookCommon * h) const  	{  		if (isBind(h)) {  			if (!cmp->GetValue(SqlBinder(*ins, paramNo))) { @@ -121,8 +121,8 @@ namespace Slicer {  	}  	void -	SqlAutoIdInsertSerializer::bindObjectAndExecuteField( -			int & paramNo, DB::ModifyCommand * ins, const Slicer::ModelPartPtr & cmp, const HookCommon * h) const +	SqlAutoIdInsertSerializer::bindObjectAndExecuteField(unsigned int & paramNo, DB::ModifyCommand * ins, +			const Slicer::ModelPartPtr & cmp, const HookCommon * h) const  	{  		if (isNotAuto(h)) {  			SqlInsertSerializer::bindObjectAndExecuteField(paramNo, ins, cmp, h); @@ -135,7 +135,7 @@ namespace Slicer {  		using namespace AdHoc::literals;  		std::stringstream insert;  		"INSERT INTO %?("_fmt(insert, tableName); -		int fieldNo = 0; +		unsigned int fieldNo = 0;  		mp->OnEachChild([this, &fieldNo, &insert](auto && PH1, auto &&, auto && PH3) {  			createInsertField(fieldNo, insert, PH1, PH3);  		}); @@ -149,7 +149,7 @@ namespace Slicer {  	void  	SqlInsertSerializer::createInsertField( -			int & fieldNo, std::ostream & insert, const std::string & name, const HookCommon * h) const +			unsigned int & fieldNo, std::ostream & insert, const std::string & name, const HookCommon * h) const  	{  		if (isBind(h)) {  			if (fieldNo++) { @@ -161,7 +161,7 @@ namespace Slicer {  	void  	SqlAutoIdInsertSerializer::createInsertField( -			int & fieldNo, std::ostream & insert, const std::string & name, const HookCommon * h) const +			unsigned int & fieldNo, std::ostream & insert, const std::string & name, const HookCommon * h) const  	{  		if (isNotAuto(h)) {  			if (fieldNo++) { diff --git a/slicer/db/sqlInsertSerializer.h b/slicer/db/sqlInsertSerializer.h index b964b5e..8a72b68 100644 --- a/slicer/db/sqlInsertSerializer.h +++ b/slicer/db/sqlInsertSerializer.h @@ -18,10 +18,10 @@ namespace Slicer {  		void SerializeSequence(const Slicer::ModelPartPtr &) const;  		DB::ModifyCommandPtr createInsert(const Slicer::ModelPartPtr &) const;  		virtual void createInsertField( -				int & fieldNo, std::ostream & insert, const std::string & name, const HookCommon * h) const; +				unsigned int & fieldNo, std::ostream & insert, const std::string & name, const HookCommon * h) const;  		virtual void bindObjectAndExecute(const Slicer::ModelPartPtr &, DB::ModifyCommand *) const;  		virtual void bindObjectAndExecuteField( -				int & paramNo, DB::ModifyCommand *, const Slicer::ModelPartPtr &, const HookCommon *) const; +				unsigned int & paramNo, DB::ModifyCommand *, const Slicer::ModelPartPtr &, const HookCommon *) const;  		DB::Connection * const connection;  		const std::string tableName; @@ -32,10 +32,10 @@ namespace Slicer {  		template<typename... P> explicit SqlAutoIdInsertSerializer(const P &... p) : SqlInsertSerializer(p...) { }  	protected: -		virtual void createInsertField( -				int & fieldNo, std::ostream & insert, const std::string & name, const HookCommon * h) const override; -		virtual void bindObjectAndExecuteField( -				int & paramNo, DB::ModifyCommand *, const Slicer::ModelPartPtr &, const HookCommon *) const override; +		virtual void createInsertField(unsigned int & fieldNo, std::ostream & insert, const std::string & name, +				const HookCommon * h) const override; +		virtual void bindObjectAndExecuteField(unsigned int & paramNo, DB::ModifyCommand *, +				const Slicer::ModelPartPtr &, const HookCommon *) const override;  	};  	class DLL_PUBLIC SqlFetchIdInsertSerializer : public SqlAutoIdInsertSerializer { diff --git a/slicer/db/sqlUpdateSerializer.cpp b/slicer/db/sqlUpdateSerializer.cpp index 29d9da7..a2de6a7 100644 --- a/slicer/db/sqlUpdateSerializer.cpp +++ b/slicer/db/sqlUpdateSerializer.cpp @@ -1,6 +1,6 @@ +#include "sqlUpdateSerializer.h"  #include "sqlBinder.h"  #include "sqlCommon.h" -#include "sqlUpdateSerializer.h"  #include <common.h>  #include <compileTimeFormatter.h>  #include <functional> @@ -54,7 +54,7 @@ namespace Slicer {  	void  	SqlUpdateSerializer::bindObjectAndExecute(const Slicer::ModelPartPtr & cmp, DB::ModifyCommand * upd)  	{ -		int paramNo = 0; +		unsigned int paramNo = 0;  		cmp->OnEachChild([&upd, ¶mNo](const std::string &, const ModelPartPtr & cmp, const HookCommon * h) {  			if (isValue(h)) {  				if (!cmp->GetValue(SqlBinder(*upd, paramNo))) { diff --git a/slicer/ice/serializer.cpp b/slicer/ice/serializer.cpp index 8f83352..523b977 100644 --- a/slicer/ice/serializer.cpp +++ b/slicer/ice/serializer.cpp @@ -30,7 +30,7 @@ namespace Slicer {  	IceStreamSerializer::Serialize(ModelPartForRootPtr mp)  	{  		IceBlobSerializer::Serialize(mp); -		strm.write(reinterpret_cast<const char *>(blob.data()), blob.size()); +		strm.write(reinterpret_cast<const char *>(blob.data()), static_cast<std::streamsize>(blob.size()));  	}  	IceBlobDeserializer::IceBlobDeserializer(const Ice::ByteSeq & b) : refblob(b) { } diff --git a/slicer/ice/testSpecifics.cpp b/slicer/ice/testSpecifics.cpp index d24fd00..50742e4 100644 --- a/slicer/ice/testSpecifics.cpp +++ b/slicer/ice/testSpecifics.cpp @@ -43,8 +43,8 @@ BOOST_AUTO_TEST_CASE(builtins)  	testCompare<Ice::Int>(3434090);  	testCompare<Ice::Long>(-4000033);  	testCompare<Ice::Long>(343409898900); -	testCompare<Ice::Float>(-3.14); -	testCompare<Ice::Float>(3.14); +	testCompare<Ice::Float>(-3.14F); +	testCompare<Ice::Float>(3.14F);  	testCompare<Ice::Double>(-3.14159);  	testCompare<Ice::Double>(3.14159);  } @@ -78,8 +78,8 @@ BOOST_AUTO_TEST_CASE(optionalBuiltins)  	testCompareOptional<Ice::Int>(3434090);  	testCompareOptional<Ice::Long>(-4000033);  	testCompareOptional<Ice::Long>(343409898900); -	testCompareOptional<Ice::Float>(-3.14); -	testCompareOptional<Ice::Float>(3.14); +	testCompareOptional<Ice::Float>(-3.14F); +	testCompareOptional<Ice::Float>(3.14F);  	testCompareOptional<Ice::Double>(-3.14159);  	testCompareOptional<Ice::Double>(3.14159);  } @@ -92,7 +92,7 @@ BOOST_AUTO_TEST_CASE(classes)  	x->mshort = 31434;  	x->mint = 324324234;  	x->mlong = 343242342343243; -	x->mfloat = 3434.32432; +	x->mfloat = 3434.32432F;  	x->mdouble = 3423423423.42342342343;  	x->mstring = "sdfsf432423";  	testCompare<TestModule::BuiltInsPtr>(x, [](const auto & a, const auto & b) { diff --git a/slicer/test/conversions.cpp b/slicer/test/conversions.cpp index 502975e..ff4371a 100644 --- a/slicer/test/conversions.cpp +++ b/slicer/test/conversions.cpp @@ -2,13 +2,18 @@  #include <boost/numeric/conversion/cast.hpp>  #define SHORT(x) boost::numeric_cast<::Ice::Short, int64_t>(x) +inline auto +USHORT(std::integral auto x) +{ +	return boost::numeric_cast<unsigned short int>(x); +}  namespace Slicer {  	DLL_PUBLIC  	boost::posix_time::ptime  	dateTimeToPTime(const ::TestModule::DateTime & dt)  	{ -		return boost::posix_time::ptime(boost::gregorian::date(dt.year, dt.month, dt.day), +		return boost::posix_time::ptime(boost::gregorian::date(USHORT(dt.year), USHORT(dt.month), USHORT(dt.day)),  				boost::posix_time::time_duration(dt.hour, dt.minute, dt.second));  	} diff --git a/slicer/tool/icemetadata.cpp b/slicer/tool/icemetadata.cpp index 0d8d7bc..b575707 100644 --- a/slicer/tool/icemetadata.cpp +++ b/slicer/tool/icemetadata.cpp @@ -38,7 +38,7 @@ namespace Slicer {  	size_t  	IceMetaData::countSlicerMetaData() const  	{ -		return std::count_if(_begin, _end, isSlicerMetaData); +		return static_cast<size_t>(std::count_if(_begin, _end, isSlicerMetaData));  	}  	bool | 
