Blame view

3rdparty/boost_1_81_0/boost/compute/detail/diagnostic.hpp 5.07 KB
63e88f80   Hu Chunming   提交三方库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
  //---------------------------------------------------------------------------//
  // Copyright (c) 2016 Jakub Szuppe <j.szuppe@gmail.com>
  //
  // Distributed under the Boost Software License, Version 1.0
  // See accompanying file LICENSE_1_0.txt or copy at
  // http://www.boost.org/LICENSE_1_0.txt
  //
  // See http://boostorg.github.com/compute for more information.
  //---------------------------------------------------------------------------//
  
  #ifndef BOOST_COMPUTE_DETAIL_DIAGNOSTIC_HPP
  #define BOOST_COMPUTE_DETAIL_DIAGNOSTIC_HPP
  
  // Macros for suppressing warnings for GCC version 4.6 or later. Usage:
  //
  //   BOOST_COMPUTE_BOOST_COMPUTE_GCC_DIAG_OFF(sign-compare);
  //   if(a < b){
  //   BOOST_COMPUTE_BOOST_COMPUTE_GCC_DIAG_ON(sign-compare);
  //
  // Source: https://svn.boost.org/trac/boost/wiki/Guidelines/WarningsGuidelines
  #if ((__GNUC__ * 100) + __GNUC_MINOR__) >= 402
  #define BOOST_COMPUTE_GCC_DIAG_STR(s) #s
  #define BOOST_COMPUTE_GCC_DIAG_JOINSTR(x,y) BOOST_COMPUTE_GCC_DIAG_STR(x ## y)
  # define BOOST_COMPUTE_GCC_DIAG_DO_PRAGMA(x) _Pragma (#x)
  # define BOOST_COMPUTE_GCC_DIAG_PRAGMA(x) BOOST_COMPUTE_GCC_DIAG_DO_PRAGMA(GCC diagnostic x)
  # if ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406
  #  define BOOST_COMPUTE_GCC_DIAG_OFF(x) BOOST_COMPUTE_GCC_DIAG_PRAGMA(push) \
        BOOST_COMPUTE_GCC_DIAG_PRAGMA(ignored BOOST_COMPUTE_GCC_DIAG_JOINSTR(-W,x))
  #  define BOOST_COMPUTE_GCC_DIAG_ON(x) BOOST_COMPUTE_GCC_DIAG_PRAGMA(pop)
  # else
  #  define BOOST_COMPUTE_GCC_DIAG_OFF(x) \
        BOOST_COMPUTE_GCC_DIAG_PRAGMA(ignored BOOST_COMPUTE_GCC_DIAG_JOINSTR(-W,x))
  #  define BOOST_COMPUTE_GCC_DIAG_ON(x) \
        BOOST_COMPUTE_GCC_DIAG_PRAGMA(warning BOOST_COMPUTE_GCC_DIAG_JOINSTR(-W,x))
  # endif
  #else // Ensure these macros do nothing for other compilers.
  # define BOOST_COMPUTE_GCC_DIAG_OFF(x)
  # define BOOST_COMPUTE_GCC_DIAG_ON(x)
  #endif
  
  // Macros for suppressing warnings for Clang.
  //
  //   BOOST_COMPUTE_BOOST_COMPUTE_CLANG_DIAG_OFF(sign-compare);
  //   if(a < b){
  //   BOOST_COMPUTE_BOOST_COMPUTE_CLANG_DIAG_ON(sign-compare);
  //
  // Source: https://svn.boost.org/trac/boost/wiki/Guidelines/WarningsGuidelines
  #ifdef __clang__
  #  define BOOST_COMPUTE_CLANG_DIAG_STR(s) # s
  // stringize s to "no-sign-compare"
  #  define BOOST_COMPUTE_CLANG_DIAG_JOINSTR(x,y) BOOST_COMPUTE_CLANG_DIAG_STR(x ## y)
  //  join -W with no-unused-variable to "-Wno-sign-compare"
  #  define BOOST_COMPUTE_CLANG_DIAG_DO_PRAGMA(x) _Pragma (#x)
  // _Pragma is unary operator  #pragma ("")
  #  define BOOST_COMPUTE_CLANG_DIAG_PRAGMA(x) \
        BOOST_COMPUTE_CLANG_DIAG_DO_PRAGMA(clang diagnostic x)
  #  define BOOST_COMPUTE_CLANG_DIAG_OFF(x) BOOST_COMPUTE_CLANG_DIAG_PRAGMA(push) \
        BOOST_COMPUTE_CLANG_DIAG_PRAGMA(ignored BOOST_COMPUTE_CLANG_DIAG_JOINSTR(-W,x))
  // For example: #pragma clang diagnostic ignored "-Wno-sign-compare"
  #  define BOOST_COMPUTE_CLANG_DIAG_ON(x) BOOST_COMPUTE_CLANG_DIAG_PRAGMA(pop)
  // For example: #pragma clang diagnostic warning "-Wno-sign-compare"
  #else // Ensure these macros do nothing for other compilers.
  #  define BOOST_COMPUTE_CLANG_DIAG_OFF(x)
  #  define BOOST_COMPUTE_CLANG_DIAG_ON(x)
  #  define BOOST_COMPUTE_CLANG_DIAG_PRAGMA(x)
  #endif
  
  // Macros for suppressing warnings for MSVC. Usage:
  //
  //   BOOST_COMPUTE_BOOST_COMPUTE_MSVC_DIAG_OFF(4018); //sign-compare
  //   if(a < b){
  //   BOOST_COMPUTE_BOOST_COMPUTE_MSVC_DIAG_ON(4018);
  //
  #if defined(_MSC_VER)
  #  define BOOST_COMPUTE_MSVC_DIAG_DO_PRAGMA(x) __pragma(x)
  #  define BOOST_COMPUTE_MSVC_DIAG_PRAGMA(x) \
            BOOST_COMPUTE_MSVC_DIAG_DO_PRAGMA(warning(x))
  #  define BOOST_COMPUTE_MSVC_DIAG_OFF(x) BOOST_COMPUTE_MSVC_DIAG_PRAGMA(push) \
            BOOST_COMPUTE_MSVC_DIAG_PRAGMA(disable: x)
  #  define BOOST_COMPUTE_MSVC_DIAG_ON(x) BOOST_COMPUTE_MSVC_DIAG_PRAGMA(pop)
  #else // Ensure these macros do nothing for other compilers.
  #  define BOOST_COMPUTE_MSVC_DIAG_OFF(x)
  #  define BOOST_COMPUTE_MSVC_DIAG_ON(x)
  #endif
  
  // Macros for suppressing warnings for GCC, Clang and MSVC. Usage:
  //
  //   BOOST_COMPUTE_DIAG_OFF(sign-compare, sign-compare, 4018);
  //   if(a < b){
  //   BOOST_COMPUTE_DIAG_ON(sign-compare, sign-compare, 4018);
  //
  #if defined(_MSC_VER) // MSVC
  #  define BOOST_COMPUTE_DIAG_OFF(gcc, clang, msvc) BOOST_COMPUTE_MSVC_DIAG_OFF(msvc)
  #  define BOOST_COMPUTE_DIAG_ON(gcc, clang, msvc) BOOST_COMPUTE_MSVC_DIAG_ON(msvc)
  #elif defined(__clang__) // Clang
  #  define BOOST_COMPUTE_DIAG_OFF(gcc, clang, msvc) BOOST_COMPUTE_CLANG_DIAG_OFF(clang)
  #  define BOOST_COMPUTE_DIAG_ON(gcc, clang, msvc) BOOST_COMPUTE_CLANG_DIAG_ON(clang)
  #elif defined(__GNUC__) // GCC/G++
  #  define BOOST_COMPUTE_DIAG_OFF(gcc, clang, msvc) BOOST_COMPUTE_GCC_DIAG_OFF(gcc)
  #  define BOOST_COMPUTE_DIAG_ON(gcc, clang, msvc) BOOST_COMPUTE_GCC_DIAG_ON(gcc)
  #else // Ensure these macros do nothing for other compilers.
  #  define BOOST_COMPUTE_DIAG_OFF(gcc, clang, msvc)
  #  define BOOST_COMPUTE_DIAG_ON(gcc, clang, msvc)
  #endif
  
  #define BOOST_COMPUTE_DISABLE_DEPRECATED_DECLARATIONS() \
      BOOST_COMPUTE_DIAG_OFF(deprecated-declarations, deprecated-declarations, 4996)
  #define BOOST_COMPUTE_ENABLE_DEPRECATED_DECLARATIONS() \
      BOOST_COMPUTE_DIAG_ON(deprecated-declarations, deprecated-declarations, 4996);
  
  
  #endif /* BOOST_COMPUTE_DETAIL_DIAGNOSTIC_HPP */