//===-- rosa/support/diagnostics.h ------------------------------*- C++ -*-===// // // The RoSA Framework // // Distributed under the terms and conditions of the Boost Software License 1.0. // See accompanying file LICENSE. // // If you did not receive a copy of the license file, see // http://www.boost.org/LICENSE_1_0.txt. // //===----------------------------------------------------------------------===// /// /// \file rosa/support/diagnostics.h /// /// \author David Juhasz (david.juhasz@tuwien.ac.at) /// /// \date 2020 /// /// \brief Facility for diagnostics. /// //===----------------------------------------------------------------------===// #if defined(_MSC_VER) #define ROSA_DISABLE_WARNING_PUSH __pragma(warning(push)) #define ROSA_DISABLE_WARNING_POP __pragma(warning(pop)) #define ROSA_DISABLE_WARNING(warningNumber) \ __pragma(warning(disable : warningNumber)) #define ROSA_DISABLE_WARNING_UNUSED_LAMBDA_CAPTURE #define ROSA_DISABLE_WARNING_ADDING_INT_TO_STRING #elif defined(__GNUC__) || defined(__clang__) #define _ROSA_DIAG_DO_PRAGMA(X) _Pragma(#X) #define ROSA_DISABLE_WARNING_PUSH _ROSA_DIAG_DO_PRAGMA(GCC diagnostic push) #define ROSA_DISABLE_WARNING_POP _ROSA_DIAG_DO_PRAGMA(GCC diagnostic pop) #define ROSA_DISABLE_WARNING(warningName) \ _ROSA_DIAG_DO_PRAGMA(GCC diagnostic ignored warningName) #define ROSA_DISABLE_WARNING_UNUSED_LAMBDA_CAPTURE \ ROSA_DISABLE_WARNING("-Wunused-lambda-capture") #define ROSA_DISABLE_WARNING_ADDING_INT_TO_STRING \ ROSA_DISABLE_WARNING("-Wstring-plus-int") #else #define ROSA_DISABLE_WARNING_PUSH #define ROSA_DISABLE_WARNING_POP #define ROSA_DISABLE_WARNING_UNUSED_LAMBDA_CAPTURE #define ROSA_DISABLE_WARNING_ADDING_INT_TO_STRING #endif