VTK-m
2.0
|
Go to the source code of this file.
Macros | |
#define | VTKM_UNREACHABLE(msg) |
VTKM_UNREACHABLE is similar to VTK_ASSUME, with the significant difference that it is not conditional. More... | |
#define | VTKM_UNREACHABLE_IMPL() (void)0 |
#define | VTKM_UNREACHABLE_PRINT(msg) |
#define | VTKM_UNREACHABLE_ABORT() abort() |
#define VTKM_UNREACHABLE | ( | msg | ) |
VTKM_UNREACHABLE is similar to VTK_ASSUME, with the significant difference that it is not conditional.
Control should never reach a path containing a VTKM_UNREACHABLE statement under any circumstances.
If assertions are enabled (e.g. neither NDEBUG nor VTKM_NO_ASSERT is defined), the following steps are taken:
This allows bad code paths to be identified during development and debugging.
If assertions are disabled and the compiler has some sort of 'unreachable' intrinsic used to provide optimization hints, the intrinsic is used to notify the compiler that this is a dead code path.
#define VTKM_UNREACHABLE_ABORT | ( | ) | abort() |
#define VTKM_UNREACHABLE_IMPL | ( | ) | (void)0 |
#define VTKM_UNREACHABLE_PRINT | ( | msg | ) |