[Date Prev][Date Next][Thread Prev][Thread Next][Author Index][Date Index][Thread Index]
current xlint++ specs
- To: <xtech>
- Subject: current xlint++ specs
- From: Roland King <roland>
- Date: Sun, 4 Feb 90 19:17:14 PST
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.
6) all DEFERRED FUNCTIONS should be VIRTUAL
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