Resolved some code analysis warnings. (#1774)

This commit is contained in:
Andreas Süßenbach 2024-01-23 14:10:52 +01:00 committed by GitHub
parent 39ada07dac
commit fa020b9bb5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 360 additions and 355 deletions

File diff suppressed because it is too large Load Diff

View File

@ -22,7 +22,7 @@
#include <tinyxml2.h> #include <tinyxml2.h>
#include <vector> #include <vector>
const size_t INVALID_INDEX = (size_t)~0; constexpr size_t INVALID_INDEX = static_cast<size_t>( ~0 );
template <typename BitType> template <typename BitType>
class Flags class Flags

View File

@ -65,32 +65,32 @@ struct TypeInfo
( postfix.empty() ? "" : " " ) + postfix; ( postfix.empty() ? "" : " " ) + postfix;
} }
bool operator==( TypeInfo const & rhs ) const bool operator==( TypeInfo const & rhs ) const noexcept
{ {
return ( prefix == rhs.prefix ) && ( type == rhs.type ) && ( postfix == rhs.postfix ); return ( prefix == rhs.prefix ) && ( type == rhs.type ) && ( postfix == rhs.postfix );
} }
bool operator!=( TypeInfo const & rhs ) const bool operator!=( TypeInfo const & rhs ) const noexcept
{ {
return !operator==( rhs ); return !operator==( rhs );
} }
bool operator<( TypeInfo const & rhs ) const bool operator<( TypeInfo const & rhs ) const noexcept
{ {
return ( prefix < rhs.prefix ) || ( ( prefix == rhs.prefix ) && ( ( type < rhs.type ) || ( ( type == rhs.type ) && ( postfix < rhs.postfix ) ) ) ); return ( prefix < rhs.prefix ) || ( ( prefix == rhs.prefix ) && ( ( type < rhs.type ) || ( ( type == rhs.type ) && ( postfix < rhs.postfix ) ) ) );
} }
bool isConstPointer() const bool isConstPointer() const noexcept
{ {
return ( prefix.find( "const" ) != std::string::npos ) && ( postfix.find( '*' ) != std::string::npos ); return ( prefix.find( "const" ) != std::string::npos ) && ( postfix.find( '*' ) != std::string::npos );
} }
bool isNonConstPointer() const bool isNonConstPointer() const noexcept
{ {
return ( prefix.find( "const" ) == std::string::npos ) && ( postfix.find( '*' ) != std::string::npos ); return ( prefix.find( "const" ) == std::string::npos ) && ( postfix.find( '*' ) != std::string::npos );
} }
bool isValue() const bool isValue() const noexcept
{ {
return ( ( prefix.find( '*' ) == std::string::npos ) && ( postfix.find( '*' ) == std::string::npos ) ); return ( ( prefix.find( '*' ) == std::string::npos ) && ( postfix.find( '*' ) == std::string::npos ) );
} }
@ -171,7 +171,7 @@ inline void checkAttributes( int
checkForWarning( false, line, "unknown attribute <" + a.first + ">" ); checkForWarning( false, line, "unknown attribute <" + a.first + ">" );
continue; continue;
} }
if ( !optionalIt->second.empty() ) else if ( !optionalIt->second.empty() )
{ {
std::vector<std::string> values = tokenize( a.second, "," ); std::vector<std::string> values = tokenize( a.second, "," );
for ( auto const & v : values ) for ( auto const & v : values )
@ -254,6 +254,7 @@ inline std::string generateStandardArrayWrapper( std::string const & type, std::
inline std::map<std::string, std::string> getAttributes( tinyxml2::XMLElement const * element ) inline std::map<std::string, std::string> getAttributes( tinyxml2::XMLElement const * element )
{ {
assert( element );
std::map<std::string, std::string> attributes; std::map<std::string, std::string> attributes;
for ( auto attribute = element->FirstAttribute(); attribute; attribute = attribute->Next() ) for ( auto attribute = element->FirstAttribute(); attribute; attribute = attribute->Next() )
{ {
@ -274,19 +275,19 @@ inline std::vector<tinyxml2::XMLElement const *> getChildElements( ElementContai
return childElements; return childElements;
} }
inline bool isHexNumber( std::string const & name ) inline bool isHexNumber( std::string const & name ) noexcept
{ {
return name.starts_with( "0x" ) && ( name.find_first_not_of( "0123456789ABCDEF", 2 ) == std::string::npos ); return name.starts_with( "0x" ) && ( name.find_first_not_of( "0123456789ABCDEF", 2 ) == std::string::npos );
} }
inline bool isNumber( std::string const & name ) inline bool isNumber( std::string const & name ) noexcept
{ {
return name.find_first_not_of( "0123456789" ) == std::string::npos; return name.find_first_not_of( "0123456789" ) == std::string::npos;
} }
inline std::string readComment( tinyxml2::XMLElement const * element ) inline std::string readComment( tinyxml2::XMLElement const * element )
{ {
int line = element->GetLineNum(); const int line = element->GetLineNum();
checkAttributes( line, getAttributes( element ), {}, {} ); checkAttributes( line, getAttributes( element ), {}, {} );
checkElements( line, getChildElements( element ), {} ); checkElements( line, getChildElements( element ), {} );
return element->GetText(); return element->GetText();
@ -306,7 +307,7 @@ inline std::pair<std::vector<std::string>, std::string> readModifiers( tinyxml2:
std::string::size_type endPos = 0; std::string::size_type endPos = 0;
while ( endPos + 1 != value.length() ) while ( endPos + 1 != value.length() )
{ {
std::string::size_type startPos = value.find( '[', endPos ); const std::string::size_type startPos = value.find( '[', endPos );
checkForError( startPos != std::string::npos, node->GetLineNum(), "could not find '[' in <" + value + ">" ); checkForError( startPos != std::string::npos, node->GetLineNum(), "could not find '[' in <" + value + ">" );
endPos = value.find( ']', startPos ); endPos = value.find( ']', startPos );
checkForError( endPos != std::string::npos, node->GetLineNum(), "could not find ']' in <" + value + ">" ); checkForError( endPos != std::string::npos, node->GetLineNum(), "could not find ']' in <" + value + ">" );
@ -526,15 +527,15 @@ std::string toUpperCase( std::string const & name )
inline std::string trim( std::string const & input ) inline std::string trim( std::string const & input )
{ {
std::string result = input; std::string result = input;
result.erase( result.begin(), std::find_if( result.begin(), result.end(), []( char c ) { return !std::isspace( c ); } ) ); result.erase( result.begin(), std::find_if( result.begin(), result.end(), []( char c ) noexcept { return !std::isspace( c ); } ) );
result.erase( std::find_if( result.rbegin(), result.rend(), []( char c ) { return !std::isspace( c ); } ).base(), result.end() ); result.erase( std::find_if( result.rbegin(), result.rend(), []( char c ) noexcept { return !std::isspace( c ); } ).base(), result.end() );
return result; return result;
} }
inline std::string trimEnd( std::string const & input ) inline std::string trimEnd( std::string const & input )
{ {
std::string result = input; std::string result = input;
result.erase( std::find_if( result.rbegin(), result.rend(), []( char c ) { return !std::isspace( c ); } ).base(), result.end() ); result.erase( std::find_if( result.rbegin(), result.rend(), []( char c ) noexcept { return !std::isspace( c ); } ).base(), result.end() );
return result; return result;
} }
@ -567,8 +568,8 @@ void writeToFile( std::string const & str, std::string const & fileName )
#if defined( CLANG_FORMAT_EXECUTABLE ) #if defined( CLANG_FORMAT_EXECUTABLE )
std::cout << "VulkanHppGenerator: Formatting " << fileName << " ..." << std::endl; std::cout << "VulkanHppGenerator: Formatting " << fileName << " ..." << std::endl;
std::string commandString = "\"" CLANG_FORMAT_EXECUTABLE "\" -i --style=file " + fileName; const std::string commandString = "\"" CLANG_FORMAT_EXECUTABLE "\" -i --style=file " + fileName;
int ret = std::system( commandString.c_str() ); const int ret = std::system( commandString.c_str() );
if ( ret != 0 ) if ( ret != 0 )
{ {
std::cout << "VulkanHppGenerator: failed to format file " << fileName << " with error <" << ret << ">\n"; std::cout << "VulkanHppGenerator: failed to format file " << fileName << " with error <" << ret << ">\n";