ATLAS Offline Software
checker_macros.h
Go to the documentation of this file.
1 // This file's extension implies that it's C, but it's really -*- C++ -*-.
2 
3 /*
4  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5 */
6 
45 #ifndef CXXUTILS_CHECKER_MACROS_H
46 #define CXXUTILS_CHECKER_MACROS_H
47 
48 
49 #ifdef ATLAS_GCC_CHECKERS
50 
51 
60 #define ATLAS_CHECK_FILE_THREAD_SAFETY _Pragma ("ATLAS check_thread_safety") \
61  class ATLAS_CHECK_FILE_THREAD_SAFETY_SWALLOW_SEMICOLON
62 
63 
75 #define ATLAS_NO_CHECK_FILE_THREAD_SAFETY _Pragma ("ATLAS no_check_thread_safety") \
76  class ATLAS_CHECK_FILE_THREAD_SAFETY_SWALLOW_SEMICOLON
77 
78 
87 #define ATLAS_CHECK_THREAD_SAFETY [[ATLAS::check_thread_safety]]
88 
89 
112 #define ATLAS_THREAD_SAFE [[ATLAS::thread_safe]]
113 
114 
131 #define ATLAS_NOT_THREAD_SAFE [[ATLAS::not_thread_safe]]
132 
133 
134 
146 #define ATLAS_CTORDTOR_NOT_THREAD_SAFE ATLAS_NOT_THREAD_SAFE
147 
148 
162 #define ATLAS_NOT_REENTRANT [[ATLAS::not_reentrant]]
163 
164 
180 #define ATLAS_NOT_CONST_THREAD_SAFE [[ATLAS::not_const_thread_safe]]
181 
182 
202 #define ATLAS_ARGUMENT_NOT_CONST_THREAD_SAFE [[ATLAS::argument_not_const_thread_safe]]
203 
204 
205 #else // not ATLAS_GCC_CHECKERS
206 
207 
208 #define ATLAS_CHECK_FILE_THREAD_SAFETY class ATLAS_CHECK_FILE_THREAD_SAFETY_SWALLOW_SEMICOLON
209 #define ATLAS_NO_CHECK_FILE_THREAD_SAFETY class ATLAS_CHECK_FILE_THREAD_SAFETY_SWALLOW_SEMICOLON
210 #define ATLAS_CHECK_THREAD_SAFETY
211 #define ATLAS_THREAD_SAFE
212 #define ATLAS_NOT_THREAD_SAFE
213 #define ATLAS_CTORDTOR_NOT_THREAD_SAFE
214 #define ATLAS_NOT_REENTRANT
215 #define ATLAS_NOT_CONST_THREAD_SAFE
216 #define ATLAS_ARGUMENT_NOT_CONST_THREAD_SAFE
217 
218 
219 #endif // not ATLAS_GCC_CHECKERS
220 
221 
222 #endif // not CXXUTILS_CHECKER_MACROS_H