mirror of
https://github.com/Open-Cascade-SAS/OCCT.git
synced 2026-05-21 20:30:06 +08:00
- Switched from `__clang_major__ >= 16` gating to `__has_warning(...)` checks - Added fallback suppression for `-Wcast-function-type` when `-Wcast-function-type-mismatch` is unavailable
40 lines
2.0 KiB
C++
40 lines
2.0 KiB
C++
// Copyright (c) 2019 OPEN CASCADE SAS
|
|
//
|
|
// This file is part of Open CASCADE Technology software library.
|
|
//
|
|
// This library is free software; you can redistribute it and/or modify it under
|
|
// the terms of the GNU Lesser General Public License version 2.1 as published
|
|
// by the Free Software Foundation, with special exception defined in the file
|
|
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
|
// distribution for complete text of the license and disclaimer of any warranty.
|
|
//
|
|
// Alternatively, this file may be used under the terms of Open CASCADE
|
|
// commercial license or contractual agreement.
|
|
|
|
#ifndef _Standard_WarningDisableFunctionCast_HeaderFile
|
|
#define _Standard_WarningDisableFunctionCast_HeaderFile
|
|
|
|
//! @file
|
|
//! Include this file to disable GCC warning -Wcast-function-type introduced in GCC 8.1.
|
|
//!
|
|
//! This diagnostic warns when a function pointer is cast to an incompatible function pointer.
|
|
//! Existing APIs loading function pointer from library (like dlsym() or wglGetProcAddress()) have
|
|
//! no possibility to return function of specified type nor to verify that exported symbol actually
|
|
//! matches the expected function signature, so that unsafe function cast is unavoidable.
|
|
//! There is no way to prevent this warning at OCCT level (until safer APIs is introduced), thus
|
|
//! suppressing it is the only feasible way to avoid it. As this warning still can point out broken
|
|
//! places, it should be suppressed only locally, where usage of function cast has been verified.
|
|
#if defined(__clang__) && defined(__has_warning)
|
|
#if __has_warning("-Wcast-function-type-mismatch")
|
|
#pragma clang diagnostic ignored "-Wcast-function-type-mismatch"
|
|
#elif __has_warning("-Wcast-function-type")
|
|
#pragma clang diagnostic ignored "-Wcast-function-type"
|
|
#endif
|
|
#elif defined(__GNUC__) && !defined(__INTEL_COMPILER)
|
|
#if (__GNUC__ > 8) || ((__GNUC__ == 8) && (__GNUC_MINOR__ >= 1))
|
|
#pragma GCC diagnostic ignored "-Wcast-function-type"
|
|
#endif
|
|
#endif
|
|
|
|
#endif // _Standard_WarningDisableFunctionCast_HeaderFile
|