P99

◆ P99_PROTECT

#define P99_PROTECT
Value:
if (0) { \
case 0 : \
p00_code = p00_unwind_top[0].p00_code; \
p00_unw = !!p00_code; \
} \
P00_UNCASE
#define P99_DECLARE_INHIBIT(NAME)
Declare a feature NAME that can be inhibited or allowed at compile time in certain parts of code...
Definition: p99_block.h:122

The pseudo label to which we jump when we unwind the stack with P99_UNWIND.

Warning
P99_UNWIND_PROTECT may contain at most one such label.
Other than a normal C label, P99_PROTECT must be at a location where several statements can be placed. In particular, it should not be the direct dependent of a conditional.
See also
P99_UNWIND_PROTECT
P99_UNWIND_RETURN
P99_UNWIND
p99_unwind_code
p99_unwind_level
Warning
Utilities that change control flow in an unexpected way may result in the loss of some modifications that are effected on variables. A modern compiler should tell you when you are in such a situation. If it is the case you'd have to declare the variable in question with the volatile qualifier. For an explanation see P99_UNWIND_PROTECT.

Definition at line 746 of file p99_block.h.