1 /* 2 * Copyright Andrey Semashev 2020. 3 * Distributed under the Boost Software License, Version 1.0. 4 * (See accompanying file LICENSE_1_0.txt or copy at 5 * http://www.boost.org/LICENSE_1_0.txt) 6 */ 7 8 #include <boost/config.hpp> 9 10 #if !defined(BOOST_ATOMIC_ENABLE_WARNINGS) 11 12 #if defined(BOOST_MSVC) 13 14 #pragma warning(push, 3) 15 // 'm_A' : class 'A' needs to have dll-interface to be used by clients of class 'B' 16 #pragma warning(disable: 4251) 17 // non dll-interface class 'A' used as base for dll-interface class 'B' 18 #pragma warning(disable: 4275) 19 // 'this' : used in base member initializer list 20 #pragma warning(disable: 4355) 21 // 'int' : forcing value to bool 'true' or 'false' (performance warning) 22 #pragma warning(disable: 4800) 23 // unreferenced formal parameter 24 #pragma warning(disable: 4100) 25 // conditional expression is constant 26 #pragma warning(disable: 4127) 27 // default constructor could not be generated 28 #pragma warning(disable: 4510) 29 // copy constructor could not be generated 30 #pragma warning(disable: 4511) 31 // assignment operator could not be generated 32 #pragma warning(disable: 4512) 33 // function marked as __forceinline not inlined 34 #pragma warning(disable: 4714) 35 // decorated name length exceeded, name was truncated 36 #pragma warning(disable: 4503) 37 // declaration of 'A' hides previous local declaration 38 #pragma warning(disable: 4456) 39 // declaration of 'A' hides global declaration 40 #pragma warning(disable: 4459) 41 // 'X': This function or variable may be unsafe. Consider using Y instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 42 #pragma warning(disable: 4996) 43 // 'A' : multiple assignment operators specified 44 #pragma warning(disable: 4522) 45 // unary minus operator applied to unsigned type, result still unsigned 46 #pragma warning(disable: 4146) 47 // frame pointer register 'ebx' modified by inline assembly code 48 #pragma warning(disable: 4731) 49 // alignment is sensitive to packing 50 #pragma warning(disable: 4121) 51 // 'struct_name' : structure was padded due to __declspec(align()) 52 #pragma warning(disable: 4324) 53 54 #elif defined(BOOST_GCC) && BOOST_GCC >= 40600 55 56 #pragma GCC diagnostic push 57 // unused parameter 'arg' 58 #pragma GCC diagnostic ignored "-Wunused-parameter" 59 // missing initializer for member var 60 #pragma GCC diagnostic ignored "-Wmissing-field-initializers" 61 62 #elif defined(BOOST_CLANG) 63 64 #pragma clang diagnostic push 65 // unused parameter 'arg' 66 #pragma clang diagnostic ignored "-Wunused-parameter" 67 // missing initializer for member var 68 #pragma clang diagnostic ignored "-Wmissing-field-initializers" 69 70 #endif 71 72 #endif // !defined(BOOST_ATOMIC_ENABLE_WARNINGS) 73