[Date Prev][Date Next][Thread Prev][Thread Next][Author Index][Date Index][Thread Index]

current xlint++ specs

This is the current list of things that xlint++ should catch.
 Let me know of any that can go away or any that I've missed.
 - roland

  1) member functions declared LEAF but redefined
     in a subclass
  2) non COPY classes between two COPY classes in
     an inheritance chain
  3) public or protected data
  4) DEFERRED members in non-DEFERRED sections.
  5) non-DEFERRED members in DEFERRED sections.
  7) DEFERRED member functions which aren't redefined on the path
     to all concrete subclasses (a concrete subclass is a subclass
     without a DEFERRED section.)
  8) unions
  9) structs
 10) single argument constructors
 11) global variables
 12) static local variables
 13) PROXY classes w/out virtual destructors
 14) hard casts (not using CAST macro)
 15) pointer arithmetic
 16) an attempt to directly instantiate a DEFERRED class.
 17) destructor in class w/ no constructor
 18) assignment to "this"
 19) assignments between pointers-to-pointers
     which don't point at the same exact type
 20) any use of references
 21) misplaced NOWAIT: NOWAIT should only occur in a PROXY section
     as a DEFFERED_SUBR overloadings of it in subclasses should have
     no output args
 22) CLASS - DEFINE_CLASS type mismatch
 23) subclasses of classes with constructor bombs
     that do not themselves have constructor bombs
 24) assignment (or ptr param) to automatic variables in scope
     of BLAST shielding
 25) assignment to a parameter variable in function body
 26) instVariables not initialized by constructor
 27) NOT_TYPE CLASS(EQObject,Object) used in a type declaration
     (Question: does this only exclude 'typedef EQO foo;' or also
      'EQO foo;' If the latter, how does such a class get used ?)
 28) Clasess implementing isEqual using object identity (pointer
     comparison) passed by COPY ()* it must be pass by PROXY **)
 29) operands of '%' must be class type or 'unsigned'
 30) unstublifiable member ( All instance vars in COPY sections &
     all function arguments in PROXY sections must be STUBLIFIABLE.
     A class is stublifiable iff	1) it has a COPY section or
     2) it has a PROXY section or 3) it has a DEFERRED section &
     all its immediate children are stublifiable.
     (Question: what about non-class types ?) 
 31) pointers to functions