PETSc version 3.17.0
Fix/Edit manual page

# PetscUnreachable

Indicate to the compiler that a code-path is logically unreachable

### Synopsis

    #include <petscmacros.h>
    void PetscUnreachable(void)

### Notes

Indicates to the compiler (usually via some built-in) that a particular code path is always unreachable. Behavior is undefined if this function is ever executed, the user can expect an unceremonious crash.

### Example usage

Useful in situations such as switches over enums where not all enumeration values are explicitly covered by the switch

      typedef enum {RED, GREEN, BLUE} Color;

      int foo(Color c)
      {
        // it is known to programmer (or checked previously) that c is either RED or GREEN
        // but compiler may not be able to deduce this and/or emit spurious warnings
        switch (c) {
          case RED:
            return bar();
          case GREEN:
            return baz();
          default:
            PetscUnreachable(); // program is ill-formed if executed
        }
      }

### See Also

SETERRABORT(), PETSCABORT(), PETSC_ATTRIBUTE_COLD

### Level

advanced

### Location

include/petscmacros.h
Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages