mirror of
https://github.com/opencv/opencv.git
synced 2025-06-12 12:22:51 +08:00
Аix -Winvalid-noreturn under clang-cl
This commit is contained in:
parent
4e53f301d8
commit
0898f372b1
@ -297,37 +297,17 @@ It is possible to alternate error processing by using redirectError().
|
|||||||
*/
|
*/
|
||||||
CV_EXPORTS void error(int _code, const String& _err, const char* _func, const char* _file, int _line);
|
CV_EXPORTS void error(int _code, const String& _err, const char* _func, const char* _file, int _line);
|
||||||
|
|
||||||
#if defined(__clang__) && defined(_MSC_VER) // MSVC-Clang
|
|
||||||
# pragma clang diagnostic push
|
|
||||||
# pragma clang diagnostic ignored "-Winvalid-noreturn"
|
|
||||||
#elif defined(__GNUC__)
|
|
||||||
# if defined __clang__ || defined __APPLE__
|
|
||||||
# pragma GCC diagnostic push
|
|
||||||
# pragma GCC diagnostic ignored "-Winvalid-noreturn"
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/** same as cv::error, but does not return */
|
/** same as cv::error, but does not return */
|
||||||
CV_INLINE CV_NORETURN void errorNoReturn(int _code, const String& _err, const char* _func, const char* _file, int _line)
|
CV_INLINE CV_NORETURN void errorNoReturn(int _code, const String& _err, const char* _func, const char* _file, int _line)
|
||||||
{
|
{
|
||||||
error(_code, _err, _func, _file, _line);
|
error(_code, _err, _func, _file, _line);
|
||||||
#ifdef __GNUC__
|
#if defined(__GNUC__) || defined(__clang__)
|
||||||
# if !defined __clang__ && !defined __APPLE__
|
|
||||||
// this suppresses this warning: "noreturn" function does return [enabled by default]
|
// this suppresses this warning: "noreturn" function does return [enabled by default]
|
||||||
__builtin_trap();
|
__builtin_trap();
|
||||||
// or use infinite loop: for (;;) {}
|
// or use infinite loop: for (;;) {}
|
||||||
# endif
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(__clang__) && defined(_MSC_VER) // MSVC-Clang
|
|
||||||
# pragma clang diagnostic pop
|
|
||||||
#elif defined(__GNUC__)
|
|
||||||
# if defined __clang__ || defined __APPLE__
|
|
||||||
# pragma GCC diagnostic pop
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CV_STATIC_ANALYSIS
|
#ifdef CV_STATIC_ANALYSIS
|
||||||
|
|
||||||
// In practice, some macro are not processed correctly (noreturn is not detected).
|
// In practice, some macro are not processed correctly (noreturn is not detected).
|
||||||
|
Loading…
Reference in New Issue
Block a user