s are permitted. 2. There must be no directives outside the controlling directive pair, but the "null directive" (a line containing nothing other than a single '#' and possibly whitespace) is permitted. 3. The opening directive must be of the form #ifndef FOO or #if !defined FOO [equivalently, #if !defined(FOO)] 4. In the second form above, the tokens forming the '#if' expression must have come directly from the source file--no macro expansion must have been involved. This is because macro definitions can change, and tracking whether or not a relevant change has been made is not worth the implementation cost. 5. There can be no '#else' or '#elif' directives at the outer conditional block level, because they would probably contain something of interest to a subsequent pass. First, when pushing a new file on the buffer stack, '_stack_include_file' sets the controlling macro 'mi_cmacro' to 'NULL', and sets 'mi_valid' to 'true'. This indicates that the preprocessor has not yet encountered anything that would invalidate the multiple-include optimization. As described in the next few paragraphs, these two variables having these values effectively indicates top-of-file. When about to return a token that is not part of a directive, '_cpp_lex_token' sets 'mi_valid' to 'false'. This enforces the constraint that tokens outside the controlling conditional block invalidate the optimization. The 'do_if', when appropriate, and 'do_ifndef' directive handlers pass the controlling macro to the function 'push_conditional'. cpplib maintains a stack of nested conditional blocks, and after processing every opening conditional this function pushes an 'if_stack' structure onto the stack. In this structure it records the controlling macro for the block, provided there is one and we're at top-of-file (as described above). If an '#elif' or '#else' directive is encountered, the controlling macro for that block is cleared to 'NULL'. Otherwise, it survives until the '#endif' closing the block, upon which 'do_endif' sets 'mi_valid' to true and stores the controlling macro in 'mi_cmacro'. '_cpp_handle_directive' clears 'mi_valid' when processing any directive other than an opening conditional and the null directive. With this, and requiring top-of-file to record a controlling macro, and no '#else' or '#elif' for it to survive and be copied to 'mi_cmacro' by 'do_endif', we have enforced the absence of directives outside the main conditional block for the optimization to be on. Note that whilst we are inside the conditional block, 'mi_valid' is likely to be reset to 'false', but this does not matter since the closing '#endif' restores it to 'true' if appropriate. Finally, since '_cpp_lex_direct' pops the file off the buffer stack at 'EOF' without returning a token, if the '#endif' directive was not followed by any tokens, 'mi_valid' is 'true' and '_cpp_pop_file_buffer' remembers the controlling macro associated with the file. Subsequent calls to 'stack_include_file' result in no buffer being pushed if the controlling macro is defined, effecting the optimization. A quick word on how we handle the #if !defined FOO case. '_cpp_parse_expr' and 'parse_defined' take steps to see whether the three stages '!', 'defined-expression' and 'end-of-directive' occur in order in a '#if' expression. If so, they return the guard macro to 'do_if' in the variable 'mi_ind_cmacro', and otherwise set it to 'NULL'. 'enter_macro_context' sets 'mi_valid' to false, so if a macro was expanded whilst parsing any part of the expression, then the top-of-file test in 'push_conditional' fails and the optimization is turned off.