- Do not use identifiers that are already declared - e.g., don't name a variable errno
 
- Do not pass functions invalid values
- For floating point exception functions, only pass 0or bitwise OR of floating point macros
- Do not modify the string returned by setlocale()orlocaleconv()
- Do not call setjmp()in stupid places (eg. header files)
- Do not call longjmp()before callingsetjmp()
- Do not call va_start()with a parameter declared with the register storage class, of array type, or a type that isn't compatible with the type after default argument promotions
- Do not try to get the address constant of a bit-field - e.g., do not: &(t.member-designator)
 
- When functions fail, data structures often have indeterminate contents - e.g., wcsxfrm(),wcsftime(),mbrtowc(),wcrtomb(),strxfrm(),strftime()
 
- Do not mismatch multibyte conversion states with character sequences in another state
- Do not change the LC_CTYPEin between calls to character conversion functions
- Only pass functions the type they ask for - We might already have a rule for this, but I couldn't find it
 
- If the result of a function cannot be represented, the behavior is undefined - e.g., abs(),labs(),llabs(),div(),ldiv(),lldiv().
 
- Do not case a voidexpression to another type.
 
    
    
            
 
    
    
    
    
    
    
    
    
        
             
            
    
    
        
            
            
    
 
 
 
    {"serverDuration": 64, "requestCorrelationId": "61d2362b403ef812"}