Put the pragma defines in a separate header

This commit is contained in:
Chris Robinson
2019-10-07 15:17:45 -07:00
parent f52eed0607
commit f8ff4e269b
4 changed files with 28 additions and 20 deletions
+1
View File
@@ -551,6 +551,7 @@ SET(COMMON_OBJS
common/intrusive_ptr.h
common/math_defs.h
common/opthelpers.h
common/pragmadefs.h
common/strutils.cpp
common/strutils.h
common/threads.cpp
+2 -1
View File
@@ -86,6 +86,7 @@
#include "logging.h"
#include "mastering.h"
#include "opthelpers.h"
#include "pragmadefs.h"
#include "ringbuffer.h"
#include "strutils.h"
#include "threads.h"
@@ -915,7 +916,7 @@ constexpr ALCint alcEFXMinorVersion = 0;
* zero objects here, so silence that.
*/
DIAGNOSTIC_PUSH
MVSDIAGNOSTIC(warning(disable : 4815))
msc_pragma(warning(disable : 4815))
al::FlexArray<ALCcontext*> EmptyContextArray{0u};
DIAGNOSTIC_POP
+4 -19
View File
@@ -10,23 +10,8 @@
#include <type_traits>
#include <utility>
#include "pragmadefs.h"
#ifdef _MSC_VER
#define DIAGNOSTIC_PUSH __pragma(warning(push))
#define GNUDIAGNOSTIC(x)
#define MVSDIAGNOSTIC(...) __pragma(__VA_ARGS__)
#define DIAGNOSTIC_POP __pragma(warning(pop))
#elif defined(__GNUC__) || defined(__clang__)
#define DIAGNOSTIC_PUSH _Pragma("GCC diagnostic push")
#define GNUDIAGNOSTIC(x) _Pragma(x)
#define MVSDIAGNOSTIC(...)
#define DIAGNOSTIC_POP _Pragma("GCC diagnostic push")
#else
#define DIAGNOSTIC_PUSH
#define GNUDIAGNOSTIC(x)
#define MVSDIAGNOSTIC(...)
#define DIAGNOSTIC_POP
#endif
void *al_malloc(size_t alignment, size_t size);
void *al_calloc(size_t alignment, size_t size);
@@ -119,7 +104,7 @@ inline T* assume_aligned(T *ptr) noexcept
* destructor is trivial (a no-op). So disable that warning for this call.
*/
DIAGNOSTIC_PUSH
MVSDIAGNOSTIC(warning(disable : 4100))
msc_pragma(warning(disable : 4100))
template<typename T>
inline void destroy_at(T *ptr) { ptr->~T(); }
DIAGNOSTIC_POP
@@ -263,8 +248,8 @@ struct FlexArray {
const index_type mSize;
DIAGNOSTIC_PUSH
GNUDIAGNOSTIC("GCC diagnostic ignored \"-Wpedantic\"")
MVSDIAGNOSTIC(warning(disable : 4200))
std_pragma("GCC diagnostic ignored \"-Wpedantic\"")
msc_pragma(warning(disable : 4200))
alignas(alignment) element_type mArray[0];
DIAGNOSTIC_POP
+21
View File
@@ -0,0 +1,21 @@
#ifndef PRAGMADEFS_H
#define PRAGMADEFS_H
#if defined(_MSC_VER)
#define DIAGNOSTIC_PUSH __pragma(warning(push))
#define DIAGNOSTIC_POP __pragma(warning(pop))
#define std_pragma(...)
#define msc_pragma __pragma
#else
#if defined(__GNUC__) || defined(__clang__)
#define DIAGNOSTIC_PUSH _Pragma("GCC diagnostic push")
#define DIAGNOSTIC_POP _Pragma("GCC diagnostic push")
#else
#define DIAGNOSTIC_PUSH
#define DIAGNOSTIC_POP
#endif
#define std_pragma _Pragma
#define msc_pragma(...)
#endif
#endif /* PRAGMADEFS_H */