]>
Commit | Line | Data |
---|---|---|
28bf4b0b | 1 | /* |
2 | ** transferChecks.h | |
3 | */ | |
4 | ||
5 | extern alkind alkind_resolve (alkind p_a1, alkind p_a2) /*@*/ ; | |
6 | extern bool checkGlobalDestroyed (sRef p_fref, fileloc p_loc) | |
7 | /*@modifies g_msgstream@*/ ; | |
8 | extern void checkLocalDestroyed (sRef p_fref, fileloc p_loc) | |
9 | /*@modifies g_msgstream@*/ ; | |
10 | ||
11 | extern void checkAssignTransfer (exprNode p_lhs, exprNode p_rhs); | |
12 | extern void checkPassTransfer (exprNode p_fexp, uentry p_arg, bool p_isSpec, | |
13 | /*@dependent@*/ exprNode p_fcn, int p_argno, int p_totargs); | |
14 | extern void checkReturnTransfer (exprNode p_fexp, uentry p_rval); | |
15 | extern void checkGlobReturn (uentry p_glob); | |
16 | extern void checkParamReturn (uentry p_actual); | |
17 | extern void checkLoseRef (uentry p_actual); | |
18 | extern bool canLoseReference (/*@dependent@*/ sRef p_sr, fileloc p_loc); | |
19 | extern void checkInitTransfer (exprNode p_lhs, exprNode p_rhs); | |
20 | extern void checkStructDestroyed (sRef p_fref, fileloc p_loc); | |
21 | ||
22 | /* transfer types: */ | |
23 | ||
24 | typedef enum | |
25 | { | |
26 | TT_FCNRETURN, | |
27 | TT_DOASSIGN, | |
28 | TT_FIELDASSIGN, | |
29 | TT_FCNPASS, | |
30 | TT_GLOBPASS, | |
31 | TT_GLOBRETURN, | |
32 | TT_PARAMRETURN, | |
33 | TT_LEAVETRANS, | |
34 | TT_GLOBINIT | |
35 | } transferKind; |