Eigne Matrix Class Library
Dependents: MPC_current_control HydraulicControlBoard_SW AHRS Test_ekf ... more
src/Core/util/DisableStupidWarnings.h@0:13a5d365ba16, 2016-10-13 (annotated)
- Committer:
- ykuroda
- Date:
- Thu Oct 13 04:07:23 2016 +0000
- Revision:
- 0:13a5d365ba16
First commint, Eigne Matrix Class Library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ykuroda | 0:13a5d365ba16 | 1 | #ifndef EIGEN_WARNINGS_DISABLED |
ykuroda | 0:13a5d365ba16 | 2 | #define EIGEN_WARNINGS_DISABLED |
ykuroda | 0:13a5d365ba16 | 3 | |
ykuroda | 0:13a5d365ba16 | 4 | #ifdef _MSC_VER |
ykuroda | 0:13a5d365ba16 | 5 | // 4100 - unreferenced formal parameter (occurred e.g. in aligned_allocator::destroy(pointer p)) |
ykuroda | 0:13a5d365ba16 | 6 | // 4101 - unreferenced local variable |
ykuroda | 0:13a5d365ba16 | 7 | // 4127 - conditional expression is constant |
ykuroda | 0:13a5d365ba16 | 8 | // 4181 - qualifier applied to reference type ignored |
ykuroda | 0:13a5d365ba16 | 9 | // 4211 - nonstandard extension used : redefined extern to static |
ykuroda | 0:13a5d365ba16 | 10 | // 4244 - 'argument' : conversion from 'type1' to 'type2', possible loss of data |
ykuroda | 0:13a5d365ba16 | 11 | // 4273 - QtAlignedMalloc, inconsistent DLL linkage |
ykuroda | 0:13a5d365ba16 | 12 | // 4324 - structure was padded due to declspec(align()) |
ykuroda | 0:13a5d365ba16 | 13 | // 4512 - assignment operator could not be generated |
ykuroda | 0:13a5d365ba16 | 14 | // 4522 - 'class' : multiple assignment operators specified |
ykuroda | 0:13a5d365ba16 | 15 | // 4700 - uninitialized local variable 'xyz' used |
ykuroda | 0:13a5d365ba16 | 16 | // 4717 - 'function' : recursive on all control paths, function will cause runtime stack overflow |
ykuroda | 0:13a5d365ba16 | 17 | #ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS |
ykuroda | 0:13a5d365ba16 | 18 | #pragma warning( push ) |
ykuroda | 0:13a5d365ba16 | 19 | #endif |
ykuroda | 0:13a5d365ba16 | 20 | #pragma warning( disable : 4100 4101 4127 4181 4211 4244 4273 4324 4512 4522 4700 4717 ) |
ykuroda | 0:13a5d365ba16 | 21 | #elif defined __INTEL_COMPILER |
ykuroda | 0:13a5d365ba16 | 22 | // 2196 - routine is both "inline" and "noinline" ("noinline" assumed) |
ykuroda | 0:13a5d365ba16 | 23 | // ICC 12 generates this warning even without any inline keyword, when defining class methods 'inline' i.e. inside of class body |
ykuroda | 0:13a5d365ba16 | 24 | // typedef that may be a reference type. |
ykuroda | 0:13a5d365ba16 | 25 | // 279 - controlling expression is constant |
ykuroda | 0:13a5d365ba16 | 26 | // ICC 12 generates this warning on assert(constant_expression_depending_on_template_params) and frankly this is a legitimate use case. |
ykuroda | 0:13a5d365ba16 | 27 | #ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS |
ykuroda | 0:13a5d365ba16 | 28 | #pragma warning push |
ykuroda | 0:13a5d365ba16 | 29 | #endif |
ykuroda | 0:13a5d365ba16 | 30 | #pragma warning disable 2196 279 |
ykuroda | 0:13a5d365ba16 | 31 | #elif defined __clang__ |
ykuroda | 0:13a5d365ba16 | 32 | // -Wconstant-logical-operand - warning: use of logical && with constant operand; switch to bitwise & or remove constant |
ykuroda | 0:13a5d365ba16 | 33 | // this is really a stupid warning as it warns on compile-time expressions involving enums |
ykuroda | 0:13a5d365ba16 | 34 | #ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS |
ykuroda | 0:13a5d365ba16 | 35 | #pragma clang diagnostic push |
ykuroda | 0:13a5d365ba16 | 36 | #endif |
ykuroda | 0:13a5d365ba16 | 37 | #pragma clang diagnostic ignored "-Wconstant-logical-operand" |
ykuroda | 0:13a5d365ba16 | 38 | #endif |
ykuroda | 0:13a5d365ba16 | 39 | |
ykuroda | 0:13a5d365ba16 | 40 | #endif // not EIGEN_WARNINGS_DISABLED |