From ac4d43c8085e09d886ceb04192e088c9125b20f6 Mon Sep 17 00:00:00 2001 From: Dave Houlton Date: Fri, 22 Dec 2017 13:55:53 -0700 Subject: [PATCH] tests: Add a guard around noexcept in vktestbinding.h VS2013 does not provide 'noexcept'. Layers had multiple occurences of a NOEXCEPT macro to protect the VS2013 build. This commit consolidates that macro to a single location in vk_sdk_platform.h, which is also visible to the layer tests via test_common.h. Updates the vktestbinding.h occurences of 'noexcept' to use the NOEXCEPT macro. Change-Id: I38bf8c08cda6fe75de78dff69050a913b47f91b1 --- include/vulkan/vk_sdk_platform.h | 25 ++++++++++++++++++++++++- layers/core_validation.h | 23 ----------------------- layers/core_validation_types.h | 23 ----------------------- layers/descriptor_sets.h | 23 ----------------------- 4 files changed, 24 insertions(+), 70 deletions(-) diff --git a/include/vulkan/vk_sdk_platform.h b/include/vulkan/vk_sdk_platform.h index ef9a000..96d8676 100644 --- a/include/vulkan/vk_sdk_platform.h +++ b/include/vulkan/vk_sdk_platform.h @@ -43,4 +43,27 @@ #endif // _WIN32 -#endif // VK_SDK_PLATFORM_H +// Check for noexcept support using clang, with fallback to Windows or GCC version numbers +#ifndef NOEXCEPT +#if defined(__clang__) +#if __has_feature(cxx_noexcept) +#define HAS_NOEXCEPT +#endif +#else +#if defined(__GXX_EXPERIMENTAL_CXX0X__) && __GNUC__ * 10 + __GNUC_MINOR__ >= 46 +#define HAS_NOEXCEPT +#else +#if defined(_MSC_FULL_VER) && _MSC_FULL_VER >= 190023026 && defined(_HAS_EXCEPTIONS) && _HAS_EXCEPTIONS +#define HAS_NOEXCEPT +#endif +#endif +#endif + +#ifdef HAS_NOEXCEPT +#define NOEXCEPT noexcept +#else +#define NOEXCEPT +#endif +#endif + +#endif // VK_SDK_PLATFORM_H diff --git a/layers/core_validation.h b/layers/core_validation.h index 1d78746..d4a78bb 100644 --- a/layers/core_validation.h +++ b/layers/core_validation.h @@ -21,29 +21,6 @@ * Author: Mark Lobodzinski */ -#ifndef NOEXCEPT -// Check for noexcept support -#if defined(__clang__) -#if __has_feature(cxx_noexcept) -#define HAS_NOEXCEPT -#endif -#else -#if defined(__GXX_EXPERIMENTAL_CXX0X__) && __GNUC__ * 10 + __GNUC_MINOR__ >= 46 -#define HAS_NOEXCEPT -#else -#if defined(_MSC_FULL_VER) && _MSC_FULL_VER >= 190023026 && defined(_HAS_EXCEPTIONS) && _HAS_EXCEPTIONS -#define HAS_NOEXCEPT -#endif -#endif -#endif - -#ifdef HAS_NOEXCEPT -#define NOEXCEPT noexcept -#else -#define NOEXCEPT -#endif -#endif - #pragma once #include "core_validation_error_enums.h" #include "vk_validation_error_messages.h" diff --git a/layers/core_validation_types.h b/layers/core_validation_types.h index f661473..80de631 100644 --- a/layers/core_validation_types.h +++ b/layers/core_validation_types.h @@ -23,29 +23,6 @@ #ifndef CORE_VALIDATION_TYPES_H_ #define CORE_VALIDATION_TYPES_H_ -#ifndef NOEXCEPT -// Check for noexcept support -#if defined(__clang__) -#if __has_feature(cxx_noexcept) -#define HAS_NOEXCEPT -#endif -#else -#if defined(__GXX_EXPERIMENTAL_CXX0X__) && __GNUC__ * 10 + __GNUC_MINOR__ >= 46 -#define HAS_NOEXCEPT -#else -#if defined(_MSC_FULL_VER) && _MSC_FULL_VER >= 190023026 && defined(_HAS_EXCEPTIONS) && _HAS_EXCEPTIONS -#define HAS_NOEXCEPT -#endif -#endif -#endif - -#ifdef HAS_NOEXCEPT -#define NOEXCEPT noexcept -#else -#define NOEXCEPT -#endif -#endif - #include "vk_safe_struct.h" #include "vulkan/vulkan.h" #include "vk_validation_error_messages.h" diff --git a/layers/descriptor_sets.h b/layers/descriptor_sets.h index 3065669..d565241 100644 --- a/layers/descriptor_sets.h +++ b/layers/descriptor_sets.h @@ -20,29 +20,6 @@ #ifndef CORE_VALIDATION_DESCRIPTOR_SETS_H_ #define CORE_VALIDATION_DESCRIPTOR_SETS_H_ -// Check for noexcept support -#ifndef NOEXCEPT -#if defined(__clang__) -#if __has_feature(cxx_noexcept) -#define HAS_NOEXCEPT -#endif -#else -#if defined(__GXX_EXPERIMENTAL_CXX0X__) && __GNUC__ * 10 + __GNUC_MINOR__ >= 46 -#define HAS_NOEXCEPT -#else -#if defined(_MSC_FULL_VER) && _MSC_FULL_VER >= 190023026 && defined(_HAS_EXCEPTIONS) && _HAS_EXCEPTIONS -#define HAS_NOEXCEPT -#endif -#endif -#endif - -#ifdef HAS_NOEXCEPT -#define NOEXCEPT noexcept -#else -#define NOEXCEPT -#endif -#endif - #include "core_validation_error_enums.h" #include "vk_validation_error_messages.h" #include "core_validation_types.h" -- 2.7.4