(cpp.info.gz) Diagnostics

Info Catalog (cpp.info.gz) Conditionals (cpp.info.gz) Top (cpp.info.gz) Line Control
 
 5 Diagnostics
 *************
 
 The directive `#error' causes the preprocessor to report a fatal error.
 The tokens forming the rest of the line following `#error' are used as
 the error message.
 
    You would use `#error' inside of a conditional that detects a
 combination of parameters which you know the program does not properly
 support.  For example, if you know that the program will not run
 properly on a VAX, you might write
 
      #ifdef __vax__
      #error "Won't work on VAXen.  See comments at get_last_object."
      #endif
 
    If you have several configuration parameters that must be set up by
 the installation in a consistent way, you can use conditionals to detect
 an inconsistency and report it with `#error'.  For example,
 
      #if !defined(UNALIGNED_INT_ASM_OP) && defined(DWARF2_DEBUGGING_INFO)
      #error "DWARF2_DEBUGGING_INFO requires UNALIGNED_INT_ASM_OP."
      #endif
 
    The directive `#warning' is like `#error', but causes the
 preprocessor to issue a warning and continue preprocessing.  The tokens
 following `#warning' are used as the warning message.
 
    You might use `#warning' in obsolete header files, with a message
 directing the user to the header file which should be used instead.
 
    Neither `#error' nor `#warning' macro-expands its argument.
 Internal whitespace sequences are each replaced with a single space.
 The line must consist of complete tokens.  It is wisest to make the
 argument of these directives be a single string constant; this avoids
 problems with apostrophes and the like.
 
Info Catalog (cpp.info.gz) Conditionals (cpp.info.gz) Top (cpp.info.gz) Line Control
automatically generated by info2html