From a9b5b685720e4b100fb80b0b202a4af648fb94ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20S=C3=BC=C3=9Fenbach?= Date: Fri, 17 Aug 2018 17:47:48 +0200 Subject: [PATCH] Switch to warning level 4 (#240) --- CMakeLists.txt | 6 +++ VulkanHppGenerator.cpp | 42 +++++++++---------- VulkanHppGenerator.hpp | 6 +-- samples/01_InitInstance/01_InitInstance.cpp | 2 +- .../02_EnumerateDevices.cpp | 2 +- samples/03_InitDevice/03_InitDevice.cpp | 2 +- .../04_InitCommandBuffer.cpp | 2 +- samples/05_InitSwapchain/05_InitSwapchain.cpp | 2 +- .../06_InitDepthBuffer/06_InitDepthBuffer.cpp | 4 +- .../07_InitUniformBuffer.cpp | 5 ++- .../08_InitPipelineLayout.cpp | 2 +- .../09_InitDescriptorSet.cpp | 3 +- .../10_InitRenderPass/10_InitRenderPass.cpp | 3 +- vulkan/vulkan.hpp | 2 +- 14 files changed, 46 insertions(+), 37 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2ac68a4..520536b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,6 +30,12 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON) project(VulkanHppGenerator) +if(MSVC) + add_compile_options(/W4) +else(MSVC) + add_compile_options(-Wall) +endif(MSVC) + file(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Vulkan-Docs/xml/vk.xml vk_spec) string(REPLACE "\\" "\\\\" vk_spec ${vk_spec}) add_definitions(-DVK_SPEC="${vk_spec}") diff --git a/VulkanHppGenerator.cpp b/VulkanHppGenerator.cpp index d241228..dbbabd1 100644 --- a/VulkanHppGenerator.cpp +++ b/VulkanHppGenerator.cpp @@ -494,7 +494,7 @@ const std::string inlineHeader = R"( # elif defined(__GNUC__) # define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__ # elif defined(_MSC_VER) -# define VULKAN_HPP_INLINE __forceinline +# define VULKAN_HPP_INLINE inline # else # define VULKAN_HPP_INLINE inline # endif @@ -909,7 +909,7 @@ void writeVersionCheck(std::ostream & os, std::string const& version); void skipFeatureRequire(tinyxml2::XMLElement const* element); void skipImplicitExternSyncParams(tinyxml2::XMLElement const* element); void skipTypeEnum(tinyxml2::XMLElement const* element, std::map const& attributes); -void skipTypeInclude(tinyxml2::XMLElement const* element, std::map const& attributes); +void skipTypeInclude(tinyxml2::XMLElement const* element); #endif bool beginsWith(std::string const& text, std::string const& prefix) @@ -1226,7 +1226,7 @@ std::string toCamelCase(std::string const& value) } else { - result.push_back(tolower(value[i])); + result.push_back(static_cast(tolower(value[i]))); } } } @@ -1243,7 +1243,7 @@ std::string toUpperCase(std::string const& name) { convertedName.push_back('_'); } - convertedName.push_back(toupper(name[i])); + convertedName.push_back(static_cast(toupper(name[i]))); } return convertedName; } @@ -1342,7 +1342,7 @@ void skipTypeEnum(tinyxml2::XMLElement const* element, std::map const& attributes) +void skipTypeInclude(tinyxml2::XMLElement const* element) { checkAttributes(getAttributes(element), element->GetLineNum(), { { "category",{ "include" } } }, { { "name",{} } }); std::vector children = getChildElements(element); @@ -1475,7 +1475,7 @@ void VulkanHppGenerator::determineReducedName(CommandData & commandData) size_t pos = commandData.fullName.find(searchName); if ((pos == std::string::npos) && isupper(searchName[0])) { - searchName[0] = tolower(searchName[0]); + searchName[0] = static_cast(tolower(searchName[0])); pos = commandData.fullName.find(searchName); } if (pos != std::string::npos) @@ -1489,7 +1489,7 @@ void VulkanHppGenerator::determineReducedName(CommandData & commandData) } if ((pos == 0) && isupper(commandData.reducedName[0])) { - commandData.reducedName[0] = tolower(commandData.reducedName[0]); + commandData.reducedName[0] = static_cast(tolower(commandData.reducedName[0])); } } @@ -1851,7 +1851,7 @@ void VulkanHppGenerator::readComment(tinyxml2::XMLElement const* element) } // replace any '\n' with "\n// " - for (size_t pos = m_vulkanLicenseHeader.find('\n'); pos != std::string::npos; pos = m_vulkanLicenseHeader.find('\n', pos + 1)) + for (pos = m_vulkanLicenseHeader.find('\n'); pos != std::string::npos; pos = m_vulkanLicenseHeader.find('\n', pos + 1)) { m_vulkanLicenseHeader.replace(pos, 1, "\n// "); } @@ -2445,7 +2445,7 @@ void VulkanHppGenerator::readType(tinyxml2::XMLElement const* element) } else if (categoryIt->second == "include") { - skipTypeInclude(element, attributes); + skipTypeInclude(element); } else #else @@ -2851,6 +2851,7 @@ void VulkanHppGenerator::registerDeleter(CommandData const& commandData) break; default: assert(false); + valueIndex = 0; } assert(m_deleterTypes[key].find(commandData.params[valueIndex].pureType) == m_deleterTypes[key].end()); m_deleterTypes[key].insert(commandData.params[valueIndex].pureType); @@ -3228,7 +3229,7 @@ void VulkanHppGenerator::writeFunction(std::ostream & os, std::string const& ind writeFunctionHeaderTemplate(os, indentation, commandData, enhanced, unique, !definition, isStructureChain); os << indentation << (definition ? "VULKAN_HPP_INLINE " : ""); - writeFunctionHeaderReturnType(os, indentation, commandData, enhanced, singular, unique, isStructureChain); + writeFunctionHeaderReturnType(os, commandData, enhanced, singular, unique, isStructureChain); if (definition && !commandData.className.empty()) { os << commandData.className << "::"; @@ -3719,7 +3720,7 @@ void VulkanHppGenerator::writeFunctionHeaderArgumentsEnhanced(std::ostream & os, if (commandData.skippedParams.size() + (commandData.className.empty() ? 0 : 1) < commandData.params.size()) { // determine the last argument, where we might provide some default for - size_t lastArgument = ~0; + size_t lastArgument = size_t(~0); for (size_t i = commandData.params.size() - 1; i < commandData.params.size(); i--) { if (commandData.skippedParams.find(i) == commandData.skippedParams.end()) @@ -3914,7 +3915,7 @@ void VulkanHppGenerator::writeFunctionHeaderArgumentsStandard(std::ostream & os, } } -void VulkanHppGenerator::writeFunctionHeaderReturnType(std::ostream & os, std::string const& indentation, CommandData const& commandData, bool enhanced, bool singular, bool unique, bool isStructureChain) +void VulkanHppGenerator::writeFunctionHeaderReturnType(std::ostream & os, CommandData const& commandData, bool enhanced, bool singular, bool unique, bool isStructureChain) { std::string templateString; std::string returnType; @@ -4076,8 +4077,8 @@ void VulkanHppGenerator::writeStructConstructor(std::ostream & os, std::string c assert(subStruct != m_structs.end()); std::string subStructArgumentName = startLowerCase(strip(subStruct->first, "vk")); - std::string ctorOpening = " explicit " + name + "( "; - size_t indentSize = ctorOpening.size(); + ctorOpening = " explicit " + name + "( "; + indentSize = ctorOpening.size(); os << ctorOpening << subStruct->first << " const& " << subStructArgumentName; @@ -4087,7 +4088,7 @@ void VulkanHppGenerator::writeStructConstructor(std::ostream & os, std::string c } os << " )" << std::endl; - bool firstArgument = true; + firstArgument = true; std::string templateString = " ${sep} ${member}( ${value} )\n"; for (size_t i = 0; i < subStruct->second.members.size(); i++) { @@ -4781,7 +4782,6 @@ void VulkanHppGenerator::writeUniqueTypes(std::ostream &os, std::pair & nameMap) +void VulkanHppGenerator::EnumData::addEnumValue(std::string const &enumName, std::string const& tag, std::map & nameMap) { EnumValueData evd; - evd.name = createEnumValueName(name, prefix, postfix, bitmask, tag); - evd.value = name; + evd.name = createEnumValueName(enumName, prefix, postfix, bitmask, tag); + evd.value = enumName; auto it = std::find_if(values.begin(), values.end(), [&evd](EnumValueData const& _evd) { return _evd.name == evd.name; }); if (it == values.end()) { values.push_back(evd); - assert(nameMap.find(name) == nameMap.end()); - nameMap[name] = this->name + "::" + evd.name; + assert(nameMap.find(enumName) == nameMap.end()); + nameMap[enumName] = this->name + "::" + evd.name; } else { diff --git a/VulkanHppGenerator.hpp b/VulkanHppGenerator.hpp index 6c8e148..b6f9d7b 100644 --- a/VulkanHppGenerator.hpp +++ b/VulkanHppGenerator.hpp @@ -100,8 +100,8 @@ class VulkanHppGenerator struct CommandData { CommandData() - : returnParam(~0) - , templateParam(~0) + : returnParam(size_t(~0)) + , templateParam(size_t(~0)) , twoStep(false) , isAlias(false) {} @@ -268,7 +268,7 @@ class VulkanHppGenerator void writeFunctionHeaderArguments(std::ostream & os, CommandData const& commandData, bool enhanced, bool singular, bool withDefaults); void writeFunctionHeaderArgumentsEnhanced(std::ostream & os, CommandData const& commandData, bool singular, bool withDefaults); void writeFunctionHeaderArgumentsStandard(std::ostream & os, CommandData const& commandData, bool withDefaults); - void writeFunctionHeaderReturnType(std::ostream & os, std::string const& indentation, CommandData const& commandData, bool enhanced, bool singular, bool unique, bool isStructureChain); + void writeFunctionHeaderReturnType(std::ostream & os, CommandData const& commandData, bool enhanced, bool singular, bool unique, bool isStructureChain); void writeFunctionHeaderTemplate(std::ostream & os, std::string const& indentation, CommandData const& commandData, bool enhanced, bool unique, bool withDefault, bool isStructureChain); void writeIndentation(std::ostream & os, size_t indentLength); void writeStructConstructor(std::ostream & os, std::string const& name, StructData const& structData, std::map const& defaultValues); diff --git a/samples/01_InitInstance/01_InitInstance.cpp b/samples/01_InitInstance/01_InitInstance.cpp index 8d2ce8c..6dafbb6 100644 --- a/samples/01_InitInstance/01_InitInstance.cpp +++ b/samples/01_InitInstance/01_InitInstance.cpp @@ -21,7 +21,7 @@ static char const* AppName = "01_InitInstance"; static char const* EngineName = "Vulkan.hpp"; -int main(int argc, char *argv[]) +int main(int /*argc*/, char * /*argv[]*/) { /* VULKAN_HPP_KEY_START */ diff --git a/samples/02_EnumerateDevices/02_EnumerateDevices.cpp b/samples/02_EnumerateDevices/02_EnumerateDevices.cpp index 55b4f4a..fffd15e 100644 --- a/samples/02_EnumerateDevices/02_EnumerateDevices.cpp +++ b/samples/02_EnumerateDevices/02_EnumerateDevices.cpp @@ -21,7 +21,7 @@ static char const* AppName = "02_EnumerateDevices"; static char const* EngineName = "Vulkan.hpp"; -int main(int argc, char *argv[]) +int main(int /*argc*/, char * /*argv[]*/) { try { diff --git a/samples/03_InitDevice/03_InitDevice.cpp b/samples/03_InitDevice/03_InitDevice.cpp index 0da93cb..96ac9cf 100644 --- a/samples/03_InitDevice/03_InitDevice.cpp +++ b/samples/03_InitDevice/03_InitDevice.cpp @@ -21,7 +21,7 @@ static char const* AppName = "03_InitDevice"; static char const* EngineName = "Vulkan.hpp"; -int main(int argc, char *argv[]) +int main(int /*argc*/, char * /*argv[]*/) { try { diff --git a/samples/04_InitCommandBuffer/04_InitCommandBuffer.cpp b/samples/04_InitCommandBuffer/04_InitCommandBuffer.cpp index c9bdf69..ef365e6 100644 --- a/samples/04_InitCommandBuffer/04_InitCommandBuffer.cpp +++ b/samples/04_InitCommandBuffer/04_InitCommandBuffer.cpp @@ -21,7 +21,7 @@ static char const* AppName = "04_InitCommandBuffer"; static char const* EngineName = "Vulkan.hpp"; -int main(int argc, char *argv[]) +int main(int /*argc*/, char * /*argv[]*/) { try { diff --git a/samples/05_InitSwapchain/05_InitSwapchain.cpp b/samples/05_InitSwapchain/05_InitSwapchain.cpp index b7242b6..805f2de 100644 --- a/samples/05_InitSwapchain/05_InitSwapchain.cpp +++ b/samples/05_InitSwapchain/05_InitSwapchain.cpp @@ -125,7 +125,7 @@ HWND initializeWindow(std::string const& className, std::string const& windowNam #endif -int main(int argc, char *argv[]) +int main(int /*argc*/, char * /*argv[]*/) { try { diff --git a/samples/06_InitDepthBuffer/06_InitDepthBuffer.cpp b/samples/06_InitDepthBuffer/06_InitDepthBuffer.cpp index fc0d6c3..136553c 100644 --- a/samples/06_InitDepthBuffer/06_InitDepthBuffer.cpp +++ b/samples/06_InitDepthBuffer/06_InitDepthBuffer.cpp @@ -125,7 +125,7 @@ HWND initializeWindow(std::string const& className, std::string const& windowNam #endif -int main(int argc, char *argv[]) +int main(int /*argc*/, char * /*argv[]*/) { try { @@ -217,7 +217,7 @@ int main(int argc, char *argv[]) vk::PhysicalDeviceMemoryProperties memoryProperties = physicalDevices[0].getMemoryProperties(); vk::MemoryRequirements memoryRequirements = device->getImageMemoryRequirements(depthImage.get()); uint32_t typeBits = memoryRequirements.memoryTypeBits; - uint32_t typeIndex = ~0; + uint32_t typeIndex = uint32_t(~0); for (uint32_t i = 0; i < memoryProperties.memoryTypeCount; i++) { if ((typeBits & 1) && ((memoryProperties.memoryTypes[i].propertyFlags & vk::MemoryPropertyFlagBits::eDeviceLocal) == vk::MemoryPropertyFlagBits::eDeviceLocal)) diff --git a/samples/07_InitUniformBuffer/07_InitUniformBuffer.cpp b/samples/07_InitUniformBuffer/07_InitUniformBuffer.cpp index 7aa58be..91e94c8 100644 --- a/samples/07_InitUniformBuffer/07_InitUniformBuffer.cpp +++ b/samples/07_InitUniformBuffer/07_InitUniformBuffer.cpp @@ -19,12 +19,13 @@ #include "vulkan/vulkan.hpp" #define GLM_FORCE_RADIANS +#pragma warning(disable:4201) // disable warning C4201: nonstandard extension used: nameless struct/union; needed to get glm/detail/type_vec?.hpp without warnings #include static char const* AppName = "07_InitUniformBuffer"; static char const* EngineName = "Vulkan.hpp"; -int main(int argc, char *argv[]) +int main(int /*argc*/, char * /*argv[]*/) { try { @@ -62,7 +63,7 @@ int main(int argc, char *argv[]) vk::PhysicalDeviceMemoryProperties memoryProperties = physicalDevices[0].getMemoryProperties(); vk::MemoryPropertyFlags requirementsMask = vk::MemoryPropertyFlagBits::eHostVisible | vk::MemoryPropertyFlagBits::eHostCoherent; - uint32_t typeIndex = ~0; + uint32_t typeIndex = uint32_t(~0); for (uint32_t i = 0; i < memoryProperties.memoryTypeCount; i++) { if ((typeBits & 1) && ((memoryProperties.memoryTypes[i].propertyFlags & requirementsMask) == requirementsMask)) diff --git a/samples/08_InitPipelineLayout/08_InitPipelineLayout.cpp b/samples/08_InitPipelineLayout/08_InitPipelineLayout.cpp index a0a8f6d..b3f39a3 100644 --- a/samples/08_InitPipelineLayout/08_InitPipelineLayout.cpp +++ b/samples/08_InitPipelineLayout/08_InitPipelineLayout.cpp @@ -21,7 +21,7 @@ static char const* AppName = "08_InitPipelineLayout"; static char const* EngineName = "Vulkan.hpp"; -int main(int argc, char *argv[]) +int main(int /*argc*/, char * /*argv[]*/) { try { diff --git a/samples/09_InitDescriptorSet/09_InitDescriptorSet.cpp b/samples/09_InitDescriptorSet/09_InitDescriptorSet.cpp index 110e73d..742e85e 100644 --- a/samples/09_InitDescriptorSet/09_InitDescriptorSet.cpp +++ b/samples/09_InitDescriptorSet/09_InitDescriptorSet.cpp @@ -19,12 +19,13 @@ #include "vulkan/vulkan.hpp" #define GLM_FORCE_RADIANS +#pragma warning(disable:4201) // disable warning C4201: nonstandard extension used: nameless struct/union; needed to get glm/detail/type_vec?.hpp without warnings #include static char const* AppName = "09_InitDescriptorSet"; static char const* EngineName = "Vulkan.hpp"; -int main(int argc, char *argv[]) +int main(int /*argc*/, char * /*argv[]*/) { try { diff --git a/samples/10_InitRenderPass/10_InitRenderPass.cpp b/samples/10_InitRenderPass/10_InitRenderPass.cpp index 93799e6..52555c3 100644 --- a/samples/10_InitRenderPass/10_InitRenderPass.cpp +++ b/samples/10_InitRenderPass/10_InitRenderPass.cpp @@ -19,6 +19,7 @@ #include "vulkan/vulkan.hpp" #define GLM_FORCE_RADIANS +#pragma warning(disable:4201) // disable warning C4201: nonstandard extension used: nameless struct/union; needed to get glm/detail/type_vec?.hpp without warnings #include static char const* AppName = "10_InitRenderPass"; @@ -105,7 +106,7 @@ HWND initializeWindow(std::string const& className, std::string const& windowNam #pragma error "unhandled platform" #endif -int main(int argc, char *argv[]) +int main(int /*argc*/, char * /*argv[]*/) { try { diff --git a/vulkan/vulkan.hpp b/vulkan/vulkan.hpp index 4832cd1..3216aa4 100644 --- a/vulkan/vulkan.hpp +++ b/vulkan/vulkan.hpp @@ -107,7 +107,7 @@ static_assert( VK_HEADER_VERSION == 83 , "Wrong VK_HEADER_VERSION!" ); # elif defined(__GNUC__) # define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__ # elif defined(_MSC_VER) -# define VULKAN_HPP_INLINE __forceinline +# define VULKAN_HPP_INLINE inline # else # define VULKAN_HPP_INLINE inline # endif