usr/src/boot/common/interp_parse.c
51
#define PARSE_FAIL(expr) \
usr/src/boot/common/interp_parse.c
52
if (expr) { \
usr/src/boot/sys/sys/cdefs.h
337
#define __generic(expr, t, yes, no) \
usr/src/boot/sys/sys/cdefs.h
338
_Generic(expr, t: yes, default: no)
usr/src/boot/sys/sys/cdefs.h
340
#define __generic(expr, t, yes, no) \
usr/src/boot/sys/sys/cdefs.h
342
__builtin_types_compatible_p(__typeof(expr), t), yes, no)
usr/src/cmd/ast/libshell/common/illumos_cmdlist.h
107
ASTCMDLIST(expr)
usr/src/cmd/ast/libshell/common/illumos_cmdlist.h
108
GNUCMDLIST(expr)
usr/src/cmd/ast/libshell/common/illumos_cmdlist.h
109
XPG6CMDLIST(expr)
usr/src/cmd/awk_xpg4/awk.y
139
%type <node> prog rule pattern expr rvalue lvalue fexpr varlist varlist2
usr/src/cmd/awk_xpg4/awk.y
196
| expr COMMA expr {
usr/src/cmd/awk_xpg4/awk.y
211
| expr {
usr/src/cmd/awk_xpg4/awk.y
225
expr %prec COMMA
usr/src/cmd/awk_xpg4/awk.y
226
| exprlist COMMA expr {
usr/src/cmd/awk_xpg4/awk.y
246
expr
usr/src/cmd/awk_xpg4/awk.y
255
expr:
usr/src/cmd/awk_xpg4/awk.y
256
expr PLUSC expr {
usr/src/cmd/awk_xpg4/awk.y
259
| expr HYPHEN expr {
usr/src/cmd/awk_xpg4/awk.y
262
| expr STAR expr {
usr/src/cmd/awk_xpg4/awk.y
265
| expr SLASH expr {
usr/src/cmd/awk_xpg4/awk.y
268
| expr PERCENT expr {
usr/src/cmd/awk_xpg4/awk.y
271
| expr EXP expr {
usr/src/cmd/awk_xpg4/awk.y
274
| expr AND expr {
usr/src/cmd/awk_xpg4/awk.y
277
| expr OR expr {
usr/src/cmd/awk_xpg4/awk.y
280
| expr QUEST expr COLON expr {
usr/src/cmd/awk_xpg4/awk.y
283
| lvalue ASG expr {
usr/src/cmd/awk_xpg4/awk.y
286
| lvalue AADD expr {
usr/src/cmd/awk_xpg4/awk.y
289
| lvalue ASUB expr {
usr/src/cmd/awk_xpg4/awk.y
292
| lvalue AMUL expr {
usr/src/cmd/awk_xpg4/awk.y
295
| lvalue ADIV expr {
usr/src/cmd/awk_xpg4/awk.y
298
| lvalue AREM expr {
usr/src/cmd/awk_xpg4/awk.y
301
| lvalue AEXP expr {
usr/src/cmd/awk_xpg4/awk.y
310
| expr EQ expr {
usr/src/cmd/awk_xpg4/awk.y
313
| expr NE expr {
usr/src/cmd/awk_xpg4/awk.y
316
| expr RANGLE expr {
usr/src/cmd/awk_xpg4/awk.y
319
| expr LANGLE expr {
usr/src/cmd/awk_xpg4/awk.y
322
| expr GE expr {
usr/src/cmd/awk_xpg4/awk.y
325
| expr LE expr {
usr/src/cmd/awk_xpg4/awk.y
328
| expr TILDE expr {
usr/src/cmd/awk_xpg4/awk.y
331
| expr NRE expr {
usr/src/cmd/awk_xpg4/awk.y
334
| expr IN var {
usr/src/cmd/awk_xpg4/awk.y
342
| expr CONCAT expr {
usr/src/cmd/awk_xpg4/awk.y
368
| LPAREN expr RPAREN term {
usr/src/cmd/awk_xpg4/awk.y
371
| EXCLAMATION expr {
usr/src/cmd/awk_xpg4/awk.y
374
| HYPHEN expr %prec UMINUS {
usr/src/cmd/awk_xpg4/awk.y
377
| PLUSC expr %prec UPLUS {
usr/src/cmd/awk_xpg4/awk.y
426
| WHILE LPAREN expr RPAREN statement {
usr/src/cmd/awk_xpg4/awk.y
429
| DO statement WHILE LPAREN expr RPAREN {
usr/src/cmd/awk_xpg4/awk.y
432
| IF LPAREN expr RPAREN statement ELSE statement {
usr/src/cmd/awk_xpg4/awk.y
435
| IF LPAREN expr RPAREN statement %prec ELSE {
usr/src/cmd/awk_xpg4/awk.y
468
| expr SEMI {
usr/src/cmd/awk_xpg4/awk.y
493
WRITE expr {
usr/src/cmd/awk_xpg4/awk.y
496
| APPEND expr {
usr/src/cmd/awk_xpg4/awk.y
499
| PIPE expr {
usr/src/cmd/awk_xpg4/awk.y
511
| expr BAR GETLINE optvar {
usr/src/cmd/awk_xpg4/awk.y
514
| GETLINE optvar LANGLE expr {
usr/src/cmd/cmd-inet/usr.sbin/snoop/snoop_filter.c
2795
compile(char *expr, int print)
usr/src/cmd/cmd-inet/usr.sbin/snoop/snoop_filter.c
2797
expr = strdup(expr);
usr/src/cmd/cmd-inet/usr.sbin/snoop/snoop_filter.c
2798
if (expr == NULL)
usr/src/cmd/cmd-inet/usr.sbin/snoop/snoop_filter.c
2801
tkp = expr;
usr/src/cmd/csplit/csplit.c
306
findline(char *expr, offset_t oset)
usr/src/cmd/csplit/csplit.c
321
if (step(linbuf, expr)) {
usr/src/cmd/filesync/eval.c
874
add_glob(struct base *bp, char *expr)
usr/src/cmd/filesync/eval.c
882
i = glob(expr, GLOB_NOSORT, 0, >);
usr/src/cmd/filesync/eval.c
888
expr, i);
usr/src/cmd/filesync/eval.c
919
sprintf(cmdbuf, "ls -d %s 2> /dev/null", expr);
usr/src/cmd/filesync/ignore.c
173
ignore_expr(const char *expr)
usr/src/cmd/filesync/ignore.c
176
cheap_check(expr);
usr/src/cmd/filesync/ignore.c
182
lp->l_value = strdup(expr);
usr/src/cmd/filesync/ignore.c
187
fprintf(stderr, "IGNO: add expr %s\n", expr);
usr/src/cmd/fm/eversholt/common/check.c
1005
if (arglist->u.expr.left->t != T_NUM &&
usr/src/cmd/fm/eversholt/common/check.c
1006
arglist->u.expr.left->t != T_TIMEVAL) {
usr/src/cmd/fm/eversholt/common/check.c
1016
if (arglist->u.expr.right->t != T_NUM &&
usr/src/cmd/fm/eversholt/common/check.c
1017
arglist->u.expr.right->t != T_TIMEVAL &&
usr/src/cmd/fm/eversholt/common/check.c
1018
arglist->u.expr.right->t != T_NAME) {
usr/src/cmd/fm/eversholt/common/check.c
1028
if ((arglist->u.expr.left->t == T_NUM) &&
usr/src/cmd/fm/eversholt/common/check.c
1029
(arglist->u.expr.left->u.ull != 0ULL)) {
usr/src/cmd/fm/eversholt/common/check.c
1034
if ((arglist->u.expr.right->t == T_NUM) &&
usr/src/cmd/fm/eversholt/common/check.c
1035
(arglist->u.expr.right->u.ull != 0ULL)) {
usr/src/cmd/fm/eversholt/common/check.c
1042
if ((arglist->u.expr.right->t == T_NAME) &&
usr/src/cmd/fm/eversholt/common/check.c
1043
(arglist->u.expr.right->u.name.s != L_infinity)) {
usr/src/cmd/fm/eversholt/common/check.c
1053
if (arglist->u.expr.left->u.ull >
usr/src/cmd/fm/eversholt/common/check.c
1054
arglist->u.expr.right->u.ull) {
usr/src/cmd/fm/eversholt/common/check.c
1090
(arglist->u.expr.left->t == T_NAME ||
usr/src/cmd/fm/eversholt/common/check.c
1091
arglist->u.expr.left->t == T_FUNC) &&
usr/src/cmd/fm/eversholt/common/check.c
1092
(arglist->u.expr.right->t == T_NAME ||
usr/src/cmd/fm/eversholt/common/check.c
1093
arglist->u.expr.right->t == T_FUNC)) {
usr/src/cmd/fm/eversholt/common/check.c
1094
if (arglist->u.expr.left->t == T_FUNC)
usr/src/cmd/fm/eversholt/common/check.c
1095
check_func(arglist->u.expr.left);
usr/src/cmd/fm/eversholt/common/check.c
1096
if (arglist->u.expr.right->t == T_FUNC)
usr/src/cmd/fm/eversholt/common/check.c
1097
check_func(arglist->u.expr.right);
usr/src/cmd/fm/eversholt/common/check.c
1124
(arglist->u.expr.left->t == T_NAME ||
usr/src/cmd/fm/eversholt/common/check.c
1125
arglist->u.expr.left->t == T_FUNC) &&
usr/src/cmd/fm/eversholt/common/check.c
1126
arglist->u.expr.right->t == T_QUOTE) {
usr/src/cmd/fm/eversholt/common/check.c
1127
if (arglist->u.expr.left->t == T_FUNC)
usr/src/cmd/fm/eversholt/common/check.c
1128
check_func(arglist->u.expr.left);
usr/src/cmd/fm/eversholt/common/check.c
1147
arglist->u.expr.left->t != T_QUOTE))
usr/src/cmd/fm/eversholt/common/check.c
1154
(arglist->u.expr.left->t == T_NAME ||
usr/src/cmd/fm/eversholt/common/check.c
1155
arglist->u.expr.left->t == T_FUNC) &&
usr/src/cmd/fm/eversholt/common/check.c
1156
arglist->u.expr.right->t == T_QUOTE) {
usr/src/cmd/fm/eversholt/common/check.c
1157
if (arglist->u.expr.left->t == T_FUNC)
usr/src/cmd/fm/eversholt/common/check.c
1158
check_func(arglist->u.expr.left);
usr/src/cmd/fm/eversholt/common/check.c
1180
arglist->u.expr.left->t != T_QUOTE ||
usr/src/cmd/fm/eversholt/common/check.c
1181
arglist->u.expr.right == NULL)
usr/src/cmd/fm/eversholt/common/check.c
1193
arglist->u.expr.left->t == T_QUOTE) {
usr/src/cmd/fm/eversholt/common/check.c
1194
if (arglist->u.expr.right->t == T_FUNC)
usr/src/cmd/fm/eversholt/common/check.c
1195
check_func(arglist->u.expr.right);
usr/src/cmd/fm/eversholt/common/check.c
1226
ASSERT(np->u.expr.left != NULL);
usr/src/cmd/fm/eversholt/common/check.c
1227
if (np->u.expr.left->t != T_GLOBID)
usr/src/cmd/fm/eversholt/common/check.c
136
check_path_iterators(np->u.expr.left);
usr/src/cmd/fm/eversholt/common/check.c
137
check_path_iterators(np->u.expr.right);
usr/src/cmd/fm/eversholt/common/check.c
238
(void) check_reportlist(t, s, np->u.expr.left);
usr/src/cmd/fm/eversholt/common/check.c
239
(void) check_reportlist(t, s, np->u.expr.right);
usr/src/cmd/fm/eversholt/common/check.c
414
const char *s = nvpairnp->u.expr.left->u.name.s;
usr/src/cmd/fm/eversholt/common/check.c
421
nvpairnp->u.expr.right);
usr/src/cmd/fm/eversholt/common/check.c
433
if (np->t != nvpairnp->u.expr.right->t)
usr/src/cmd/fm/eversholt/common/check.c
441
if (np->u.ull == nvpairnp->u.expr.right->u.ull)
usr/src/cmd/fm/eversholt/common/check.c
447
nvpairnp->u.expr.right) == 0)
usr/src/cmd/fm/eversholt/common/check.c
453
nvpairnp->u.expr.right) == 0)
usr/src/cmd/fm/eversholt/common/check.c
461
nvpairnp->u.expr.left->u.name.s,
usr/src/cmd/fm/eversholt/common/check.c
469
(*Allowednames[i].checker)(t, s, nvpairnp->u.expr.right);
usr/src/cmd/fm/eversholt/common/check.c
569
check_propnames(t, np->u.expr.left, from, to);
usr/src/cmd/fm/eversholt/common/check.c
570
check_propnames(t, np->u.expr.right, from, to);
usr/src/cmd/fm/eversholt/common/check.c
590
ex = record_iterators(np->u.expr.left, ex);
usr/src/cmd/fm/eversholt/common/check.c
591
ex = record_iterators(np->u.expr.right, ex);
usr/src/cmd/fm/eversholt/common/check.c
670
check_exprscope(np->u.expr.left, ex);
usr/src/cmd/fm/eversholt/common/check.c
671
check_exprscope(np->u.expr.right, ex);
usr/src/cmd/fm/eversholt/common/check.c
872
check_cycle_lhs_try(stmtnp, lhs->u.expr.left, rhs);
usr/src/cmd/fm/eversholt/common/check.c
873
check_cycle_lhs_try(stmtnp, lhs->u.expr.right, rhs);
usr/src/cmd/fm/eversholt/common/check.c
895
check_cycle_rhs(rhs->u.expr.left);
usr/src/cmd/fm/eversholt/common/check.c
896
check_cycle_rhs(rhs->u.expr.right);
usr/src/cmd/fm/eversholt/common/check.c
970
check_cat_list(np->u.expr.left);
usr/src/cmd/fm/eversholt/common/check.c
971
check_cat_list(np->u.expr.right);
usr/src/cmd/fm/eversholt/common/escparse.y
107
| IF '(' expr ')' stmt
usr/src/cmd/fm/eversholt/common/escparse.y
109
| IF '(' expr ')' '{' stmtlist '}'
usr/src/cmd/fm/eversholt/common/escparse.y
263
exprlist: expr
usr/src/cmd/fm/eversholt/common/escparse.y
264
| exprlist ',' expr
usr/src/cmd/fm/eversholt/common/escparse.y
272
expr : cexpr
usr/src/cmd/fm/eversholt/common/escparse.y
89
%type <np> exprlist expr iterid ename pname epname eexprlist ipname iname
usr/src/cmd/fm/eversholt/common/ptree.c
156
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
158
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
176
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
178
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
184
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
189
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
191
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
196
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
198
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
203
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
205
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
210
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
212
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
217
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
219
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
224
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
226
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
231
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
233
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
238
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
240
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
245
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
247
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
252
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
254
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
259
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
261
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
266
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
268
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
273
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
275
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
281
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
286
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
288
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
293
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
295
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
300
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
302
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
307
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
309
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
314
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
316
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
321
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
323
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
328
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
330
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
349
ptree(flags, np->u.expr.left, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
350
if (np->u.expr.left && np->u.expr.right &&
usr/src/cmd/fm/eversholt/common/ptree.c
351
(np->u.expr.left->t != T_LIST ||
usr/src/cmd/fm/eversholt/common/ptree.c
352
! is_stmt(np->u.expr.right)))
usr/src/cmd/fm/eversholt/common/ptree.c
354
ptree(flags, np->u.expr.right, no_iterators, fileline);
usr/src/cmd/fm/eversholt/common/ptree.c
657
return (name_pattern_match_in_subtree(np->u.expr.left, pat) ||
usr/src/cmd/fm/eversholt/common/ptree.c
658
name_pattern_match_in_subtree(np->u.expr.right, pat));
usr/src/cmd/fm/eversholt/common/tree.c
222
size += sizeof (ret->u.expr) - sizeof (ret->u);
usr/src/cmd/fm/eversholt/common/tree.c
283
tree_free(root->u.expr.left);
usr/src/cmd/fm/eversholt/common/tree.c
284
tree_free(root->u.expr.right);
usr/src/cmd/fm/eversholt/common/tree.c
292
tree_free(root->u.expr.left);
usr/src/cmd/fm/eversholt/common/tree.c
388
if (tree_treecmp(np1->u.expr.left, np2->u.expr.left, t,
usr/src/cmd/fm/eversholt/common/tree.c
391
return (tree_treecmp(np1->u.expr.right, np2->u.expr.right, t,
usr/src/cmd/fm/eversholt/common/tree.c
407
return (tree_treecmp(np1->u.expr.left, np2->u.expr.left, t,
usr/src/cmd/fm/eversholt/common/tree.c
488
ret->u.expr.left = left;
usr/src/cmd/fm/eversholt/common/tree.c
489
ret->u.expr.right = right;
usr/src/cmd/fm/eversholt/common/tree.c
790
ptr = stable(np->u.expr.right->u.quote.s);
usr/src/cmd/fm/eversholt/common/tree.c
858
make_explicit(np->u.expr.left, eventonly);
usr/src/cmd/fm/eversholt/common/tree.c
859
make_explicit(np->u.expr.right, eventonly);
usr/src/cmd/fm/eversholt/common/tree.c
962
ASSERTeq(np->u.expr.left->t, T_NAME,
usr/src/cmd/fm/eversholt/common/tree.c
966
np->u.expr.left->u.name.s, np->u.expr.right);
usr/src/cmd/fm/eversholt/common/tree.c
968
lutp = nvpair2lut(np->u.expr.left, lutp, t);
usr/src/cmd/fm/eversholt/common/tree.c
969
lutp = nvpair2lut(np->u.expr.right, lutp, t);
usr/src/cmd/fm/eversholt/common/tree.h
219
struct node *expr; /* for if statements */
usr/src/cmd/fm/eversholt/common/tree.h
255
} expr;
usr/src/cmd/fm/eversholt/common/tree.h
279
struct node *tree_if(struct node *expr, struct node *stmts,
usr/src/cmd/fm/fmd/common/fmd_subr.c
49
fmd_assert(const char *expr, const char *file, int line)
usr/src/cmd/fm/fmd/common/fmd_subr.c
51
fmd_panic("\"%s\", line %d: assertion failed: %s\n", file, line, expr);
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
517
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
520
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
525
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
528
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
534
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
537
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
542
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
545
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
550
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
554
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
557
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
561
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
564
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
568
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
571
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
575
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
578
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
582
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
585
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
589
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
592
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
596
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
599
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
603
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
606
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
610
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
613
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
617
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
620
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
624
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
627
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
631
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
634
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
638
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
641
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
645
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
648
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
652
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
655
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
659
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
662
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
667
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
671
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
674
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
678
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
681
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
704
(void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c
707
(void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1001
return (eval_dup(np->u.expr.left, ex, events));
usr/src/cmd/fm/modules/common/eversholt/eval.c
1003
return (eval_dup(np->u.expr.right, ex, events));
usr/src/cmd/fm/modules/common/eversholt/eval.c
1006
eval_dup(np->u.expr.left, ex, events),
usr/src/cmd/fm/modules/common/eversholt/eval.c
1007
eval_dup(np->u.expr.right, ex, events)));
usr/src/cmd/fm/modules/common/eversholt/eval.c
1429
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1433
ASSERT(np->u.expr.left->t == T_GLOBID);
usr/src/cmd/fm/modules/common/eversholt/eval.c
1435
(void *)np->u.expr.left->u.globid.s, NULL);
usr/src/cmd/fm/modules/common/eversholt/eval.c
1440
(void *) np->u.expr.left->u.globid.s, gval, NULL);
usr/src/cmd/fm/modules/common/eversholt/eval.c
1449
np->u.expr.left->u.globid.s, gval->v);
usr/src/cmd/fm/modules/common/eversholt/eval.c
1453
np->u.expr.left->u.globid.s,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1477
np->u.expr.left->t == T_GLOBID &&
usr/src/cmd/fm/modules/common/eversholt/eval.c
1479
(void *)np->u.expr.left->u.globid.s, NULL)) == NULL) {
usr/src/cmd/fm/modules/common/eversholt/eval.c
1480
if (!eval_expr(np->u.expr.right, ex, events, globals,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1486
(void *) np->u.expr.left->u.globid.s,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1497
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1500
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1516
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1519
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1530
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1533
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1544
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1547
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1558
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1561
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1572
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1575
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1586
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1589
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1600
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1603
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1614
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1617
ASSERT(np->u.expr.right == NULL);
usr/src/cmd/fm/modules/common/eversholt/eval.c
1626
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1629
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1640
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1643
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1666
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1673
ASSERT(np->u.expr.right != NULL);
usr/src/cmd/fm/modules/common/eversholt/eval.c
1674
if (np->u.expr.right->t == T_CONDELSE) {
usr/src/cmd/fm/modules/common/eversholt/eval.c
1676
retnp = np->u.expr.right->u.expr.left;
usr/src/cmd/fm/modules/common/eversholt/eval.c
1678
retnp = np->u.expr.right->u.expr.right;
usr/src/cmd/fm/modules/common/eversholt/eval.c
1682
retnp = np->u.expr.right;
usr/src/cmd/fm/modules/common/eversholt/eval.c
1706
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1709
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1726
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1733
np->u.expr.temp = EXPR_TEMP_BOTH_UNK;
usr/src/cmd/fm/modules/common/eversholt/eval.c
1736
if (!eval_expr(np->u.expr.right, ex, events, globals,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1738
np->u.expr.temp = EXPR_TEMP_BOTH_UNK;
usr/src/cmd/fm/modules/common/eversholt/eval.c
1742
np->u.expr.temp = EXPR_TEMP_LHS_UNK;
usr/src/cmd/fm/modules/common/eversholt/eval.c
1750
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1752
np->u.expr.temp = EXPR_TEMP_RHS_UNK;
usr/src/cmd/fm/modules/common/eversholt/eval.c
176
if (!eval_cat(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1760
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1767
np->u.expr.temp = EXPR_TEMP_BOTH_UNK;
usr/src/cmd/fm/modules/common/eversholt/eval.c
1770
if (!eval_expr(np->u.expr.right, ex, events, globals,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1772
np->u.expr.temp = EXPR_TEMP_BOTH_UNK;
usr/src/cmd/fm/modules/common/eversholt/eval.c
1776
np->u.expr.temp = EXPR_TEMP_LHS_UNK;
usr/src/cmd/fm/modules/common/eversholt/eval.c
1785
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1787
np->u.expr.temp = EXPR_TEMP_RHS_UNK;
usr/src/cmd/fm/modules/common/eversholt/eval.c
179
if (!eval_cat(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1795
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1803
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1806
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1817
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1820
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1837
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1840
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1851
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1854
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1871
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
1874
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
230
lhs = eval_getname(funcnp, ex, events, np->u.expr.left, globals,
usr/src/cmd/fm/modules/common/eversholt/eval.c
232
rhs = eval_getname(funcnp, ex, events, np->u.expr.right,
usr/src/cmd/fm/modules/common/eversholt/eval.c
258
ASSERT(np->u.expr.right->t == T_QUOTE);
usr/src/cmd/fm/modules/common/eversholt/eval.c
260
nodep = eval_getname(funcnp, ex, events, np->u.expr.left,
usr/src/cmd/fm/modules/common/eversholt/eval.c
294
s = config_getprop(cp, np->u.expr.right->u.quote.s);
usr/src/cmd/fm/modules/common/eversholt/eval.c
295
if (s == NULL && strcmp(np->u.expr.right->u.quote.s,
usr/src/cmd/fm/modules/common/eversholt/eval.c
302
funcname, np->u.expr.right->u.quote.s);
usr/src/cmd/fm/modules/common/eversholt/eval.c
325
np->u.expr.right->u.quote.s,
usr/src/cmd/fm/modules/common/eversholt/eval.c
341
lhs = eval_getname(funcnp, ex, events, np->u.expr.left, globals,
usr/src/cmd/fm/modules/common/eversholt/eval.c
343
rhs = eval_getname(funcnp, ex, events, np->u.expr.right,
usr/src/cmd/fm/modules/common/eversholt/eval.c
513
nodep = eval_getname(funcnp, ex, events, np->u.expr.left,
usr/src/cmd/fm/modules/common/eversholt/eval.c
528
np->u.expr.right->u.quote.s);
usr/src/cmd/fm/modules/common/eversholt/eval.c
539
strcmp(np->u.expr.right->u.quote.s, "") == 0 ?
usr/src/cmd/fm/modules/common/eversholt/eval.c
540
NULL : (char *)np->u.expr.right->u.quote.s);
usr/src/cmd/fm/modules/common/eversholt/eval.c
645
ASSERTinfo(np->u.expr.left->t == T_QUOTE,
usr/src/cmd/fm/modules/common/eversholt/eval.c
646
ptree_nodetype2str(np->u.expr.left->t));
usr/src/cmd/fm/modules/common/eversholt/eval.c
654
np->u.expr.left->u.quote.s);
usr/src/cmd/fm/modules/common/eversholt/eval.c
655
ptree_name_iter(O_ALTFP|O_VERB2|O_NONL, np->u.expr.right);
usr/src/cmd/fm/modules/common/eversholt/eval.c
665
(void *)np->u.expr.left->u.quote.s, NULL)) == NULL) {
usr/src/cmd/fm/modules/common/eversholt/eval.c
670
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
695
(void *)np->u.expr.left->u.quote.s,
usr/src/cmd/fm/modules/common/eversholt/eval.c
828
ASSERTinfo(np->u.expr.left->t == T_QUOTE,
usr/src/cmd/fm/modules/common/eversholt/eval.c
829
ptree_nodetype2str(np->u.expr.left->t));
usr/src/cmd/fm/modules/common/eversholt/eval.c
833
np->u.expr.left->u.quote.s);
usr/src/cmd/fm/modules/common/eversholt/eval.c
834
ptree_name_iter(O_ALTFP|O_VERB2|O_NONL, np->u.expr.right);
usr/src/cmd/fm/modules/common/eversholt/eval.c
838
if (!eval_expr(np->u.expr.right, ex, events, globals, croot,
usr/src/cmd/fm/modules/common/eversholt/eval.c
869
vals = platform_payloadprop_values(np->u.expr.left->u.quote.s,
usr/src/cmd/fm/modules/common/eversholt/eval.c
983
eval_dup(np->u.expr.left, ex, events),
usr/src/cmd/fm/modules/common/eversholt/eval.c
984
eval_dup(np->u.expr.right, ex, events)));
usr/src/cmd/fm/modules/common/eversholt/eval.c
987
switch (np->u.expr.temp) {
usr/src/cmd/fm/modules/common/eversholt/eval.c
989
return (eval_dup(np->u.expr.left, ex, events));
usr/src/cmd/fm/modules/common/eversholt/eval.c
991
return (eval_dup(np->u.expr.right, ex, events));
usr/src/cmd/fm/modules/common/eversholt/eval.c
994
eval_dup(np->u.expr.left, ex, events),
usr/src/cmd/fm/modules/common/eversholt/eval.c
995
eval_dup(np->u.expr.right, ex, events)));
usr/src/cmd/fm/modules/common/eversholt/eval.c
999
switch (np->u.expr.temp) {
usr/src/cmd/fm/modules/common/eversholt/iexpr.c
103
(iexpr_hash(np->u.expr.left) +
usr/src/cmd/fm/modules/common/eversholt/iexpr.c
104
iexpr_hash(np->u.expr.right)));
usr/src/cmd/fm/modules/common/eversholt/iexpr.c
182
diff = iexpr_cmp(np1->u.expr.left, np2->u.expr.left);
usr/src/cmd/fm/modules/common/eversholt/iexpr.c
185
return (iexpr_cmp(np1->u.expr.right, np2->u.expr.right));
usr/src/cmd/fm/modules/common/eversholt/itree.c
1332
vmatch(infop, np->u.expr.right, np->u.expr.left, anp);
usr/src/cmd/fm/modules/common/eversholt/itree.c
1369
cp_reset(np->u.expr.left);
usr/src/cmd/fm/modules/common/eversholt/itree.c
1370
cp_reset(np->u.expr.right);
usr/src/cmd/fm/modules/common/eversholt/itree.c
1500
src = slst->u.expr.right;
usr/src/cmd/fm/modules/common/eversholt/itree.c
1501
slst = slst->u.expr.left;
usr/src/cmd/fm/modules/common/eversholt/itree.c
1510
dst = dlst->u.expr.right;
usr/src/cmd/fm/modules/common/eversholt/itree.c
1511
dlst = dlst->u.expr.left;
usr/src/cmd/fm/modules/common/eversholt/itree.c
1974
arrow_add_within(ap, xpr->u.expr.left);
usr/src/cmd/fm/modules/common/eversholt/itree.c
1975
arrow_add_within(ap, xpr->u.expr.right);
usr/src/cmd/fm/modules/common/eversholt/itree.c
1992
ASSERT(arglist->u.expr.left->t == T_TIMEVAL);
usr/src/cmd/fm/modules/common/eversholt/itree.c
1993
ap->mindelay = arglist->u.expr.left->u.ull;
usr/src/cmd/fm/modules/common/eversholt/itree.c
1994
switch (arglist->u.expr.right->t) {
usr/src/cmd/fm/modules/common/eversholt/itree.c
1999
ASSERT(arglist->u.expr.right->u.name.s ==
usr/src/cmd/fm/modules/common/eversholt/itree.c
807
if (np->u.expr.left)
usr/src/cmd/fm/modules/common/eversholt/itree.c
808
hmatch(infop, np->u.expr.left, nextnp);
usr/src/cmd/fm/modules/common/eversholt/itree.c
809
if (np->u.expr.right)
usr/src/cmd/fm/modules/common/eversholt/itree.c
810
hmatch(infop, np->u.expr.right, nextnp);
usr/src/cmd/fm/modules/common/eversholt/platform.c
1120
if (arglist2argv(np->u.expr.left, globals, croot, arrowp,
usr/src/cmd/fm/modules/common/eversholt/platform.c
1128
if (arglist2argv(np->u.expr.right, globals, croot, arrowp,
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
172
base : BASE '=' expr
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
351
| xfind ' ' expr
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
473
at : ATTZ '=' expr { set_file(ATTZ, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
474
| ATYE '=' expr { set_file(ATYE, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
475
| ATMO '=' expr { set_file(ATMO, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
476
| ATDA '=' expr { set_file(ATDA, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
477
| ATHO '=' expr { set_file(ATHO, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
478
| ATMI '=' expr { set_file(ATMI, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
479
| ATSE '=' expr { set_file(ATSE, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
480
| ATCE '=' expr { set_file(ATCE, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
481
| ATHU '=' expr { set_file(ATHU, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
482
| ATMIC '=' expr
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
488
ct : CTTZ '=' expr { set_file(CTTZ, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
489
| CTYE '=' expr { set_file(CTYE, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
490
| CTMO '=' expr { set_file(CTMO, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
491
| CTDA '=' expr { set_file(CTDA, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
492
| CTHO '=' expr { set_file(CTHO, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
493
| CTMI '=' expr { set_file(CTMI, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
494
| CTSE '=' expr { set_file(CTSE, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
495
| CTCE '=' expr { set_file(CTCE, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
496
| CTHU '=' expr { set_file(CTHU, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
497
| CTMIC '=' expr
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
503
mt : MTTZ '=' expr { set_file(MTTZ, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
504
| MTYE '=' expr { set_file(MTYE, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
505
| MTMO '=' expr { set_file(MTMO, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
506
| MTDA '=' expr { set_file(MTDA, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
507
| MTHO '=' expr { set_file(MTHO, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
508
| MTMI '=' expr { set_file(MTMI, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
509
| MTSE '=' expr { set_file(MTSE, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
510
| MTCE '=' expr { set_file(MTCE, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
511
| MTHU '=' expr { set_file(MTHU, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
512
| MTMIC '=' expr
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
519
gid : GID '=' expr { set_file(GID, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
522
ln : LN '=' expr { set_file(LN, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
525
md : MD '=' expr { set_file(MD, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
528
maj : MAJ '=' expr { set_file(MAJ, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
531
min : MIO '=' expr { set_file(MIO, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
534
nm : NM '=' expr { set_file(NM, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
537
sz : SZ '=' expr { set_file(SZ, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
540
uid : UID '=' expr { set_file(UID, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
543
uniq : UNIQ '=' expr { set_file(UNIQ, i_number << l2b, $3); }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
579
texpr : expr
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
584
| expr ',' expr
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
591
expr : '+'
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
672
| expr '-' expr { count = 0; $$ = $1 - $3; }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
673
| expr '+' expr { count = 0; $$ = $1 + $3; }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
674
| expr '*' expr { count = 0; $$ = $1 * $3; }
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
675
| expr '%' expr
usr/src/cmd/fs.d/udfs/fsdb/fsdb_yacc.y
97
%type <intval> expr
usr/src/cmd/fs.d/ufs/fsdb/fsdb.c
1018
temp = expr();
usr/src/cmd/fs.d/ufs/fsdb/fsdb.c
1024
temp = expr();
usr/src/cmd/fs.d/ufs/fsdb/fsdb.c
1099
value = expr();
usr/src/cmd/fs.d/ufs/fsdb/fsdb.c
1219
value = expr();
usr/src/cmd/fs.d/ufs/fsdb/fsdb.c
2062
return (expr());
usr/src/cmd/fs.d/ufs/fsdb/fsdb.c
2184
find_ino = expr();
usr/src/cmd/fs.d/ufs/fsdb/fsdb.c
2820
temp = expr();
usr/src/cmd/fs.d/ufs/fsdb/fsdb.c
284
static long expr();
usr/src/cmd/fs.d/ufs/fsdb/fsdb.c
800
addr = expr();
usr/src/cmd/fs.d/ufs/fsdb/fsdb.c
835
count = expr();
usr/src/cmd/fs.d/ufs/fsdb/fsdb.c
851
temp = expr();
usr/src/cmd/fs.d/ufs/fsdb/fsdb.c
902
temp = expr();
usr/src/cmd/fs.d/ufs/fsdb/fsdb.c
947
temp = expr();
usr/src/cmd/fs.d/ufs/fsdb/fsdb.c
958
temp = expr();
usr/src/cmd/geniconvtbl/disassemble.c
1185
itm_expr_t *expr;
usr/src/cmd/geniconvtbl/disassemble.c
1188
expr = (itm_expr_t *)ADDR(expr_place);
usr/src/cmd/geniconvtbl/disassemble.c
1191
switch (expr->type) {
usr/src/cmd/geniconvtbl/disassemble.c
1202
printi(0, "%ld", expr->data.itm_exnum);
usr/src/cmd/geniconvtbl/disassemble.c
1205
data = expr->data.value;
usr/src/cmd/geniconvtbl/disassemble.c
1212
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1216
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1220
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1221
if (0 == expr->data.operand[0].itm_ptr) {
usr/src/cmd/geniconvtbl/disassemble.c
1236
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1240
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1242
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1247
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1249
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1254
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1256
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1261
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1263
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1268
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1270
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1275
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1277
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1282
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1284
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1289
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1291
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1296
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1298
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1303
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1305
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1310
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1312
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1317
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1319
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1324
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1326
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1331
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1333
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1338
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1340
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1345
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1347
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1352
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1354
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1359
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1361
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1366
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1368
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1373
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1375
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1380
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1382
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1387
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1389
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1394
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1396
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1401
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1403
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1408
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1410
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1415
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1417
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1423
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1428
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1430
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1435
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1437
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1442
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1444
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1449
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1451
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1456
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1458
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1463
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1465
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1470
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1472
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1477
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1479
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1484
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1486
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1491
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1493
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1498
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1500
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1505
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1507
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1512
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1514
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1519
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1521
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1526
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1528
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1534
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1539
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1541
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1546
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1548
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1553
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1555
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1560
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1562
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1567
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1569
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1574
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1576
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1581
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1583
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1588
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1590
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1595
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1597
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1602
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1604
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1609
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1611
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1616
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1618
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1623
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1625
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1630
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1632
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1637
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1639
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1645
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1650
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1652
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1657
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1659
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1664
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1666
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1671
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1673
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1678
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1680
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1685
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1687
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1692
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1694
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1699
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1701
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1706
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1708
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1713
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1715
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1720
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1722
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1727
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1729
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1734
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1736
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1741
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1743
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1748
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1750
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1756
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1761
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1763
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1768
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1770
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1775
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1777
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1782
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1784
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1789
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1791
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1796
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1798
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1803
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1805
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1810
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1812
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1817
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1819
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1824
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1826
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1831
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1833
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1838
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1840
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1845
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1847
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1852
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1854
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1859
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1861
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1867
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1872
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1874
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1879
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1881
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1886
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1888
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1893
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1895
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1900
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1902
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1907
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1909
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1914
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1916
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1921
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1923
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1928
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
1930
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1935
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1937
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1942
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1944
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1949
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1951
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
1956
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1958
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1963
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1965
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1970
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1972
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1978
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1983
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
1985
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1990
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1992
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
1997
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
1999
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2004
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2006
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2011
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2013
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2018
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2020
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2025
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2027
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2032
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2034
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2039
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2041
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2046
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2048
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2053
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2055
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2060
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2062
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2067
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2069
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2074
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2076
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2081
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2083
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2089
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2094
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2096
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2101
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2103
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2108
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2110
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2115
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2117
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2122
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2124
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2129
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2131
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2136
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2138
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2143
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2145
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2150
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2152
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2157
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2159
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2164
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2166
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2171
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2173
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2178
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2180
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2185
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2187
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2192
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2194
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2200
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2205
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2207
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2212
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2214
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2219
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2221
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2226
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2228
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2233
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2235
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2240
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2242
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2247
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2249
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2254
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2256
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2261
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2263
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2268
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2270
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2275
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2277
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2282
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2284
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2289
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2291
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2296
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2298
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2303
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2305
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2311
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2316
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2318
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2323
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2325
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2330
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2332
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2337
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2339
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2344
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2346
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2351
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2353
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2358
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2360
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2365
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2367
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2372
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2374
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2379
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2381
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2386
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2388
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2393
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2395
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2400
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2402
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2407
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2409
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2414
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2416
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2421
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2423
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2428
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2430
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2435
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2437
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2442
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2444
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2449
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2451
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2456
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2458
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2463
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2465
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2470
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2472
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2477
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2479
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2484
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2486
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2491
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2493
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2498
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2500
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2505
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2507
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2512
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2514
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2519
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2521
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2526
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2528
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2534
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2539
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2541
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2546
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2548
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2553
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2555
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2560
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2562
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2567
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2569
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2574
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2576
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2581
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2583
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2588
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2590
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2595
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2597
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2602
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2604
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2609
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2611
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2616
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2618
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2623
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2625
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2630
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2632
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2637
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2639
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2645
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2650
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2652
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2657
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2659
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2664
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2666
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2671
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2673
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2678
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2680
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2685
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2687
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2692
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2694
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2699
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2701
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2706
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2708
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2713
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2715
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2720
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2722
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2727
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2729
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2734
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2736
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2741
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2743
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2748
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2750
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2755
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2757
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2762
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2764
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2769
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2771
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2776
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2778
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2783
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2785
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2790
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2792
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2797
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2799
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2804
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2806
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2811
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2813
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2818
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2820
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2825
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2827
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2832
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2834
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2839
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2841
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2846
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2848
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2853
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2855
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2860
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2862
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2868
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2873
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2875
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2880
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2882
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2887
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2889
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2894
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2896
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2901
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2903
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2908
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2910
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2915
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2917
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2922
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2924
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2929
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
2931
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2936
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2938
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2943
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2945
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2950
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2952
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
2957
printi(0, "%ld", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2959
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2964
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2966
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2971
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2973
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2979
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2984
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
2986
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2991
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
2993
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
2998
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
3000
printi(0, "%ld", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
3005
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
3007
printi(0, "%s", reg_name(itm_hdr, expr->data.operand[1]));
usr/src/cmd/geniconvtbl/disassemble.c
3012
printi(0, RNPREF "in[%ld]", expr->data.operand[0].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
3014
printi(0, RNPREF "in[%ld]", expr->data.operand[1].itm_ptr);
usr/src/cmd/geniconvtbl/disassemble.c
3020
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
3026
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
3031
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
3033
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
3038
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/disassemble.c
3040
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
3044
printi(0, "%s = ", reg_name(itm_hdr, expr->data.operand[0]));
usr/src/cmd/geniconvtbl/disassemble.c
3045
dump_expr(itm_hdr, expr->data.operand[1]);
usr/src/cmd/geniconvtbl/disassemble.c
3049
dump_expr(itm_hdr, expr->data.operand[0]);
usr/src/cmd/geniconvtbl/geniconvtbl.c
1130
itm_expr_t *expr;
usr/src/cmd/geniconvtbl/geniconvtbl.c
1176
expr = ADDR(operation->data.operand[0]);
usr/src/cmd/geniconvtbl/geniconvtbl.c
1189
expr = ADDR(operation->data.operand[0]);
usr/src/cmd/geniconvtbl/geniconvtbl.c
1195
PUT(0xff & (expr->data.itm_exnum));
usr/src/cmd/geniconvtbl/geniconvtbl.c
1198
expr = ADDR(operation->data.operand[0]);
usr/src/cmd/geniconvtbl/geniconvtbl.c
1204
z = expr->data.value.size;
usr/src/cmd/geniconvtbl/geniconvtbl.c
1210
p = DADDR(&(expr->data.value));
usr/src/cmd/geniconvtbl/geniconvtbl.c
1216
expr = ADDR(operation->data.operand[0]);
usr/src/cmd/geniconvtbl/geniconvtbl.c
1222
c = REG(expr->data.itm_exnum);
usr/src/cmd/geniconvtbl/geniconvtbl.c
1226
expr = ADDR(operation->data.operand[0]);
usr/src/cmd/geniconvtbl/geniconvtbl.c
1232
z = (((0 <= expr->data.itm_exnum) &&
usr/src/cmd/geniconvtbl/geniconvtbl.c
1233
(expr->data.itm_exnum < *inbytesleft)) ?
usr/src/cmd/geniconvtbl/geniconvtbl.c
1234
(*((unsigned char *)(*inbuf + expr->data.itm_exnum))) :
usr/src/cmd/geniconvtbl/geniconvtbl.c
1235
(((-1) == expr->data.itm_exnum) ? *inbytesleft : 0));
usr/src/cmd/geniconvtbl/geniconvtbl.c
1428
itm_expr_t *expr;
usr/src/cmd/geniconvtbl/geniconvtbl.c
1437
#define EVAL_EXPR_E(n) (eval_expr(ist, expr->data.operand[(n)], \
usr/src/cmd/geniconvtbl/geniconvtbl.c
1439
#define EVAL_EXPR_D(n) ((itm_num_t)(expr->data.operand[(n)].itm_ptr))
usr/src/cmd/geniconvtbl/geniconvtbl.c
1440
#define EVAL_EXPR_R(n) (REG((itm_num_t)(expr->data.operand[(n)].itm_ptr)))
usr/src/cmd/geniconvtbl/geniconvtbl.c
1442
((num0 ## n) = ((itm_num_t)(expr->data.operand[(n)].itm_ptr)), \
usr/src/cmd/geniconvtbl/geniconvtbl.c
1448
(expr0 = ADDR(expr->data.operand[(n)]), \
usr/src/cmd/geniconvtbl/geniconvtbl.c
1458
eval_expr(ist, expr->data.operand[(n)], \
usr/src/cmd/geniconvtbl/geniconvtbl.c
1522
expr = ADDR(expr_place);
usr/src/cmd/geniconvtbl/geniconvtbl.c
1524
switch (expr->type) {
usr/src/cmd/geniconvtbl/geniconvtbl.c
1532
return (expr->data.itm_exnum);
usr/src/cmd/geniconvtbl/geniconvtbl.c
1534
if ((sizeof (itm_place_t)) < expr->data.value.size) {
usr/src/cmd/geniconvtbl/geniconvtbl.c
1535
p = (unsigned char *)ADDR(expr->data.value.place);
usr/src/cmd/geniconvtbl/geniconvtbl.c
1537
p = (unsigned char *)&(expr->data.value.place);
usr/src/cmd/geniconvtbl/geniconvtbl.c
1539
for (i = 0, num = 0; i < expr->data.value.size; i++, p++) {
usr/src/cmd/geniconvtbl/geniconvtbl.c
1544
return (REG(expr->data.itm_exnum));
usr/src/cmd/geniconvtbl/geniconvtbl.c
1555
num = expr->data.itm_exnum;
usr/src/cmd/geniconvtbl/geniconvtbl.c
1685
if (expr->data.operand[0].itm_ptr < ist->itm_hdr->reg_num) {
usr/src/cmd/geniconvtbl/geniconvtbl.c
1686
return (*(ist->regs + expr->data.operand[0].itm_ptr)
usr/src/cmd/geniconvtbl/geniconvtbl.c
1692
expr_op = ADDR(expr->data.operand[0]);
usr/src/cmd/geniconvtbl/itm_comp.y
1033
| expr MINUS expr
usr/src/cmd/geniconvtbl/itm_comp.y
1113
| expr MUL expr
usr/src/cmd/geniconvtbl/itm_comp.y
1187
| expr DIV expr
usr/src/cmd/geniconvtbl/itm_comp.y
1261
| expr MOD expr
usr/src/cmd/geniconvtbl/itm_comp.y
1335
| expr SHL expr
usr/src/cmd/geniconvtbl/itm_comp.y
1415
| expr SHR expr
usr/src/cmd/geniconvtbl/itm_comp.y
1495
| expr OR expr
usr/src/cmd/geniconvtbl/itm_comp.y
1569
| expr XOR expr
usr/src/cmd/geniconvtbl/itm_comp.y
1643
| expr AND expr
usr/src/cmd/geniconvtbl/itm_comp.y
1717
| expr EQ expr
usr/src/cmd/geniconvtbl/itm_comp.y
1791
| expr NE expr
usr/src/cmd/geniconvtbl/itm_comp.y
1865
| expr GT expr
usr/src/cmd/geniconvtbl/itm_comp.y
1939
| expr GE expr
usr/src/cmd/geniconvtbl/itm_comp.y
2013
| expr LT expr
usr/src/cmd/geniconvtbl/itm_comp.y
2087
| expr LE expr
usr/src/cmd/geniconvtbl/itm_comp.y
2161
| name ASSIGN expr
usr/src/cmd/geniconvtbl/itm_comp.y
2166
| expr LOR expr
usr/src/cmd/geniconvtbl/itm_comp.y
2171
| expr LAND expr
usr/src/cmd/geniconvtbl/itm_comp.y
370
| expr
usr/src/cmd/geniconvtbl/itm_comp.y
51
itm_expr_t *expr;
usr/src/cmd/geniconvtbl/itm_comp.y
666
| expr SC
usr/src/cmd/geniconvtbl/itm_comp.y
676
| ERROR expr SC
usr/src/cmd/geniconvtbl/itm_comp.y
690
| DISCARD expr SC
usr/src/cmd/geniconvtbl/itm_comp.y
699
| ITM_OUT ASSIGN expr SC
usr/src/cmd/geniconvtbl/itm_comp.y
765
| MAP name expr SC
usr/src/cmd/geniconvtbl/itm_comp.y
792
| PRINTCHR expr SC
usr/src/cmd/geniconvtbl/itm_comp.y
797
| PRINTHD expr SC
usr/src/cmd/geniconvtbl/itm_comp.y
802
| PRINTINT expr SC
usr/src/cmd/geniconvtbl/itm_comp.y
810
: ITM_IF PO expr PC CBO op_list CBC
usr/src/cmd/geniconvtbl/itm_comp.y
821
| ITM_IF PO expr PC CBO op_list CBC ITM_ELSE op_if_else
usr/src/cmd/geniconvtbl/itm_comp.y
836
| ITM_IF PO expr PC CBO op_list CBC ITM_ELSE CBO op_list CBC
usr/src/cmd/geniconvtbl/itm_comp.y
868
expr : PO expr PC
usr/src/cmd/geniconvtbl/itm_comp.y
888
| itm_in SBO expr SBC
usr/src/cmd/geniconvtbl/itm_comp.y
920
| itm_in EQ expr
usr/src/cmd/geniconvtbl/itm_comp.y
925
| expr EQ itm_in
usr/src/cmd/geniconvtbl/itm_comp.y
930
| NOT expr
usr/src/cmd/geniconvtbl/itm_comp.y
940
| NEG expr
usr/src/cmd/geniconvtbl/itm_comp.y
949
| MINUS expr %prec MUL
usr/src/cmd/geniconvtbl/itm_comp.y
95
%type <expr> expr
usr/src/cmd/geniconvtbl/itm_comp.y
959
| expr PLUS expr
usr/src/cmd/geniconvtbl/itm_comp.y
96
%type <expr> itm_in
usr/src/cmd/geniconvtbl/itm_util.c
2117
itm_expr_t *expr;
usr/src/cmd/geniconvtbl/itm_util.c
2119
expr = malloc_vital(sizeof (itm_expr_t));
usr/src/cmd/geniconvtbl/itm_util.c
2120
expr->type = type;
usr/src/cmd/geniconvtbl/itm_util.c
2121
expr->data.itm_exnum = data;
usr/src/cmd/geniconvtbl/itm_util.c
2123
expr->data.itm_expad = (data < 0) ? (pad_t)(~0) : 0;
usr/src/cmd/geniconvtbl/itm_util.c
2125
return (expr);
usr/src/cmd/geniconvtbl/itm_util.c
2132
itm_expr_t *expr;
usr/src/cmd/geniconvtbl/itm_util.c
2135
expr = malloc_vital(sizeof (itm_expr_t));
usr/src/cmd/geniconvtbl/itm_util.c
2136
expr->type = type;
usr/src/cmd/geniconvtbl/itm_util.c
2138
expr->data.value.size = 0;
usr/src/cmd/geniconvtbl/itm_util.c
2139
expr->data.value.place.itm_ptr = 0;
usr/src/cmd/geniconvtbl/itm_util.c
2141
expr->data.value = *(data);
usr/src/cmd/geniconvtbl/itm_util.c
2160
expr->type = ITM_EXPR_REG;
usr/src/cmd/geniconvtbl/itm_util.c
2161
expr->data.itm_exnum = name->reg_id;
usr/src/cmd/geniconvtbl/itm_util.c
2163
expr->data.itm_expad =
usr/src/cmd/geniconvtbl/itm_util.c
2164
(expr->data.itm_exnum < 0) ? (pad_t)(~0) : 0;
usr/src/cmd/geniconvtbl/itm_util.c
2171
&(expr->data.value.place), OBJ_REG_TAIL);
usr/src/cmd/geniconvtbl/itm_util.c
2175
return (expr);
usr/src/cmd/geniconvtbl/itm_util.c
2182
itm_expr_t *expr;
usr/src/cmd/geniconvtbl/itm_util.c
2184
expr = malloc_vital(sizeof (itm_expr_t));
usr/src/cmd/geniconvtbl/itm_util.c
2185
expr->type = type;
usr/src/cmd/geniconvtbl/itm_util.c
2186
expr->data.operand[0].itm_ptr = (itm_place2_t)(data0);
usr/src/cmd/geniconvtbl/itm_util.c
2189
&(expr->data.operand[0]), OBJ_REG_TAIL);
usr/src/cmd/geniconvtbl/itm_util.c
2191
return (expr);
usr/src/cmd/geniconvtbl/itm_util.c
2199
itm_expr_t *expr;
usr/src/cmd/geniconvtbl/itm_util.c
2204
expr = malloc_vital(sizeof (itm_expr_t));
usr/src/cmd/geniconvtbl/itm_util.c
2205
expr->type = type;
usr/src/cmd/geniconvtbl/itm_util.c
2222
expr->data.operand[0].itm_ptr = (itm_place2_t)(data0);
usr/src/cmd/geniconvtbl/itm_util.c
2223
expr->data.operand[1].itm_ptr = (itm_place2_t)(data1);
usr/src/cmd/geniconvtbl/itm_util.c
2227
&(expr->data.operand[0]), OBJ_REG_TAIL);
usr/src/cmd/geniconvtbl/itm_util.c
2230
&(expr->data.operand[1]), OBJ_REG_TAIL);
usr/src/cmd/geniconvtbl/itm_util.c
2232
return (expr);
usr/src/cmd/geniconvtbl/itm_util.c
2240
itm_expr_t *expr;
usr/src/cmd/geniconvtbl/itm_util.c
2248
expr = malloc_vital(sizeof (itm_expr_t));
usr/src/cmd/geniconvtbl/itm_util.c
2249
expr->type = type;
usr/src/cmd/geniconvtbl/itm_util.c
2258
expr->data.operand[0].itm_ptr = (itm_place2_t)(data0);
usr/src/cmd/geniconvtbl/itm_util.c
2261
&(expr->data.operand[0]), OBJ_REG_TAIL);
usr/src/cmd/geniconvtbl/itm_util.c
2266
expr->data.operand[0] = data0->data.operand[0];
usr/src/cmd/geniconvtbl/itm_util.c
2269
expr->data.operand[0].itm_ptr = (itm_place2_t)(data0);
usr/src/cmd/geniconvtbl/itm_util.c
2272
&(expr->data.operand[0]), OBJ_REG_TAIL);
usr/src/cmd/geniconvtbl/itm_util.c
2283
expr->data.operand[1].itm_ptr = (itm_place2_t)(data1);
usr/src/cmd/geniconvtbl/itm_util.c
2286
&(expr->data.operand[1]), OBJ_REG_TAIL);
usr/src/cmd/geniconvtbl/itm_util.c
2291
expr->data.operand[1] = data1->data.operand[0];
usr/src/cmd/geniconvtbl/itm_util.c
2294
expr->data.operand[1].itm_ptr = (itm_place2_t)(data1);
usr/src/cmd/geniconvtbl/itm_util.c
2297
&(expr->data.operand[1]), OBJ_REG_TAIL);
usr/src/cmd/geniconvtbl/itm_util.c
2300
return (expr);
usr/src/cmd/geniconvtbl/itm_util.c
2308
itm_expr_t *expr;
usr/src/cmd/geniconvtbl/itm_util.c
2311
expr = malloc_vital(sizeof (itm_expr_t));
usr/src/cmd/geniconvtbl/itm_util.c
2312
expr->type = type;
usr/src/cmd/geniconvtbl/itm_util.c
2313
expr->data.operand[1].itm_ptr = (itm_place2_t)(data1);
usr/src/cmd/geniconvtbl/itm_util.c
2317
free(expr);
usr/src/cmd/geniconvtbl/itm_util.c
2323
expr->data.operand[0].itm_ptr = name->reg_id;
usr/src/cmd/geniconvtbl/itm_util.c
2327
&(expr->data.operand[1]), OBJ_REG_TAIL);
usr/src/cmd/geniconvtbl/itm_util.c
2328
return (expr);
usr/src/cmd/geniconvtbl/itm_util.c
2333
expr_seq_to_int(itm_expr_t *expr)
usr/src/cmd/geniconvtbl/itm_util.c
2339
if (ITM_EXPR_SEQ == expr->type) {
usr/src/cmd/geniconvtbl/itm_util.c
2340
if ((sizeof (itm_place_t)) < expr->data.value.size) {
usr/src/cmd/geniconvtbl/itm_util.c
2341
p = (unsigned char *)(expr->data.value.place.itm_ptr);
usr/src/cmd/geniconvtbl/itm_util.c
2343
p = (unsigned char *)&(expr->data.value.place.itm_64d);
usr/src/cmd/geniconvtbl/itm_util.c
2346
i < expr->data.value.size;
usr/src/cmd/geniconvtbl/itm_util.c
2350
free(expr);
usr/src/cmd/geniconvtbl/itm_util.c
2351
expr = expr_self_num(ITM_EXPR_INT, num);
usr/src/cmd/geniconvtbl/itm_util.c
2353
return (expr);
usr/src/cmd/hal/hald/logger.h
67
#define HAL_TRACE(expr) do {logger_setup(HAL_LOGPRI_TRACE, __FILE__, __LINE__, __FUNCTION__); logger_emit expr; } while(0)
usr/src/cmd/hal/hald/logger.h
70
#define HAL_DEBUG(expr) do {logger_setup(HAL_LOGPRI_DEBUG, __FILE__, __LINE__, __FUNCTION__); logger_emit expr; } while(0)
usr/src/cmd/hal/hald/logger.h
73
#define HAL_INFO(expr) do {logger_setup(HAL_LOGPRI_INFO, __FILE__, __LINE__, __FUNCTION__); logger_emit expr; } while(0)
usr/src/cmd/hal/hald/logger.h
76
#define HAL_WARNING(expr) do {logger_setup(HAL_LOGPRI_WARNING, __FILE__, __LINE__, __FUNCTION__); logger_emit expr; } while(0)
usr/src/cmd/hal/hald/logger.h
79
#define HAL_ERROR(expr) do {logger_setup(HAL_LOGPRI_ERROR, __FILE__, __LINE__, __FUNCTION__); logger_emit expr; } while(0)
usr/src/cmd/hal/hald/logger.h
82
#define DIE(expr) do {printf("*** [DIE] %s:%s():%d : ", __FILE__, __FUNCTION__, __LINE__); printf expr; printf("\n"); exit(1); } while(0)
usr/src/cmd/hal/tools/lshal.c
58
#define DIE(expr) do {printf("*** [DIE] %s:%s():%d : ", __FILE__, __FUNCTION__, __LINE__); printf expr; printf("\n"); exit(1); } while(0)
usr/src/cmd/idmap/idmapd/dbutils.c
1042
char *expr = NULL;
usr/src/cmd/idmap/idmapd/dbutils.c
1048
retcode = gen_sql_expr_from_rule(rule, &expr);
usr/src/cmd/idmap/idmapd/dbutils.c
1052
sql = sqlite_mprintf("DELETE FROM namerules WHERE 1 %s;", expr);
usr/src/cmd/idmap/idmapd/dbutils.c
1064
if (expr != NULL)
usr/src/cmd/idmap/idmapd/dbutils.c
1065
sqlite_freemem(expr);
usr/src/cmd/idmap/idmapd/server.c
819
char *expr = NULL;
usr/src/cmd/idmap/idmapd/server.c
838
result->retcode = gen_sql_expr_from_rule(&rule, &expr);
usr/src/cmd/idmap/idmapd/server.c
861
rbuf, expr, lbuf);
usr/src/cmd/idmap/idmapd/server.c
877
if (expr)
usr/src/cmd/idmap/idmapd/server.c
878
sqlite_freemem(expr);
usr/src/cmd/isns/isnsadm/isnsadm.c
443
xmlChar expr[ISNS_MAX_LABEL_LEN + 13];
usr/src/cmd/isns/isnsadm/isnsadm.c
464
(void) xmlStrPrintf(expr, ISNS_MAX_LABEL_LEN + 13,
usr/src/cmd/isns/isnsadm/isnsadm.c
467
xpath_obj = xmlXPathEvalExpression(expr, ctext);
usr/src/cmd/isns/isnsd/door.c
1003
xmlChar expr[ISNS_MAX_LABEL_LEN + 13];
usr/src/cmd/isns/isnsd/door.c
1112
(void) xmlStrPrintf(expr, ISNS_MAX_LABEL_LEN + 13,
usr/src/cmd/isns/isnsd/door.c
1114
xpath_obj = xmlXPathEvalExpression(expr, ctext);
usr/src/cmd/isns/isnsd/door.c
123
xmlChar expr[ISNS_MAX_LABEL_LEN + 13];
usr/src/cmd/isns/isnsd/door.c
128
(void) xmlStrPrintf(expr, ISNS_MAX_LABEL_LEN + 13,
usr/src/cmd/isns/isnsd/door.c
131
xpath_obj = xmlXPathEvalExpression(expr, ctext);
usr/src/cmd/isns/isnsd/door.c
163
xmlChar expr[ISNS_MAX_LABEL_LEN + 13];
usr/src/cmd/isns/isnsd/door.c
172
(void) xmlStrPrintf(expr, ISNS_MAX_LABEL_LEN + 13,
usr/src/cmd/isns/isnsd/door.c
174
xpath_obj = xmlXPathEvalExpression(expr, ctext);
usr/src/cmd/isns/isnsd/door.c
199
(void) xmlStrPrintf(expr, ISNS_MAX_LABEL_LEN + 13,
usr/src/cmd/isns/isnsd/door.c
201
xpath_obj = xmlXPathEvalExpression(expr, ctext);
usr/src/cmd/isns/isnsd/door.c
226
(void) xmlStrPrintf(expr, ISNS_MAX_LABEL_LEN + 12,
usr/src/cmd/isns/isnsd/door.c
229
xpath_obj = xmlXPathEvalExpression(expr, ctext);
usr/src/cmd/isns/isnsd/door.c
290
xmlChar expr[ISNS_MAX_LABEL_LEN + 13];
usr/src/cmd/isns/isnsd/door.c
297
(void) xmlStrPrintf(expr, ISNS_MAX_LABEL_LEN + 13,
usr/src/cmd/isns/isnsd/door.c
299
xpath_obj = xmlXPathEvalExpression(expr, ctext);
usr/src/cmd/isns/isnsd/door.c
351
xmlChar expr[ISNS_MAX_LABEL_LEN + 13];
usr/src/cmd/isns/isnsd/door.c
358
(void) xmlStrPrintf(expr, ISNS_MAX_LABEL_LEN + 13,
usr/src/cmd/isns/isnsd/door.c
360
xpath_obj = xmlXPathEvalExpression(expr, ctext);
usr/src/cmd/isns/isnsd/door.c
391
(void) xmlStrPrintf(expr, ISNS_MAX_LABEL_LEN + 13,
usr/src/cmd/isns/isnsd/door.c
393
xpath_obj = xmlXPathEvalExpression(expr, ctext);
usr/src/cmd/isns/isnsd/door.c
401
(void) xmlStrPrintf(expr, ISNS_MAX_LABEL_LEN + 13,
usr/src/cmd/isns/isnsd/door.c
404
xpath_obj = xmlXPathEvalExpression(expr, ctext);
usr/src/cmd/isns/isnsd/door.c
417
(void) xmlStrPrintf(expr, ISNS_MAX_LABEL_LEN + 13,
usr/src/cmd/isns/isnsd/door.c
419
xpath_obj = xmlXPathEvalExpression(expr, ctext);
usr/src/cmd/isns/isnsd/door.c
427
(void) xmlStrPrintf(expr, ISNS_MAX_LABEL_LEN + 13,
usr/src/cmd/isns/isnsd/door.c
430
xpath_obj = xmlXPathEvalExpression(expr, ctext);
usr/src/cmd/isns/isnsd/door.c
489
xmlChar expr[ISNS_MAX_LABEL_LEN + 13];
usr/src/cmd/isns/isnsd/door.c
500
(void) xmlStrPrintf(expr, ISNS_MAX_LABEL_LEN + 13,
usr/src/cmd/isns/isnsd/door.c
503
xpath_obj = xmlXPathEvalExpression(expr, ctext);
usr/src/cmd/isns/isnsd/door.c
679
xmlChar expr[ISNS_MAX_LABEL_LEN + 13];
usr/src/cmd/isns/isnsd/door.c
690
(void) xmlStrPrintf(expr, ISNS_MAX_LABEL_LEN + 13,
usr/src/cmd/isns/isnsd/door.c
693
xpath_obj = xmlXPathEvalExpression(expr, ctext);
usr/src/cmd/isns/isnsd/xml/data.c
641
xmlChar expr[32] = { (xmlChar)'/', (xmlChar)'/', 0 };
usr/src/cmd/isns/isnsd/xml/data.c
658
xmlStrPrintf(&expr[2], 30, XMLSTRING_CAST "%s",
usr/src/cmd/isns/isnsd/xml/data.c
660
*result = xmlXPathEvalExpression(expr, *context);
usr/src/cmd/krb5/kadmin/cli/kadmin.c
1629
char *expr, **names;
usr/src/cmd/krb5/kadmin/cli/kadmin.c
1638
expr = NULL;
usr/src/cmd/krb5/kadmin/cli/kadmin.c
1639
if (! (argc == 1 || (argc == 2 && (expr = argv[1])))) {
usr/src/cmd/krb5/kadmin/cli/kadmin.c
1644
retval = kadm5_get_principals(handle, expr, &names, &count);
usr/src/cmd/krb5/kadmin/cli/kadmin.c
1917
char *expr, **names;
usr/src/cmd/krb5/kadmin/cli/kadmin.c
1929
expr = NULL;
usr/src/cmd/krb5/kadmin/cli/kadmin.c
1930
if (! (argc == 1 || (argc == 2 && (expr = argv[1])))) {
usr/src/cmd/krb5/kadmin/cli/kadmin.c
1935
retval = kadm5_get_policies(handle, expr, &names, &count);
usr/src/cmd/loadkeys/loadkeys.y
525
%type <number> code expr term number
usr/src/cmd/loadkeys/loadkeys.y
605
| expr
usr/src/cmd/loadkeys/loadkeys.y
611
expr:
usr/src/cmd/loadkeys/loadkeys.y
616
| expr '+' term
usr/src/cmd/lp/model/netpr/netdebug.h
35
#define ASSERT(expr, str) \
usr/src/cmd/lp/model/netpr/netdebug.h
37
if (!expr) { \
usr/src/cmd/make/include/mksh/defs.h
53
#define BOOLEAN(expr) ((expr) ? true : false)
usr/src/cmd/mandoc/mansearch.c
237
manmerge(struct expr *e, struct ohash *htab)
usr/src/cmd/mandoc/mansearch.c
252
manmerge_term(struct expr *e, struct ohash *htab)
usr/src/cmd/mandoc/mansearch.c
311
manmerge_or(struct expr *e, struct ohash *htab)
usr/src/cmd/mandoc/mansearch.c
321
manmerge_and(struct expr *e, struct ohash *htab)
usr/src/cmd/mandoc/mansearch.c
50
struct expr *next; /* Next child in the parent group. */
usr/src/cmd/mandoc/mansearch.c
51
struct expr *child; /* First child in this group. */
usr/src/cmd/mandoc/mansearch.c
609
static struct expr *
usr/src/cmd/mandoc/mansearch.c
612
struct expr *parent, *child;
usr/src/cmd/mandoc/mansearch.c
64
static struct ohash *manmerge(struct expr *, struct ohash *);
usr/src/cmd/mandoc/mansearch.c
65
static struct ohash *manmerge_term(struct expr *, struct ohash *);
usr/src/cmd/mandoc/mansearch.c
66
static struct ohash *manmerge_or(struct expr *, struct ohash *);
usr/src/cmd/mandoc/mansearch.c
662
static struct expr *
usr/src/cmd/mandoc/mansearch.c
665
struct expr *parent, *child;
usr/src/cmd/mandoc/mansearch.c
67
static struct ohash *manmerge_and(struct expr *, struct ohash *);
usr/src/cmd/mandoc/mansearch.c
718
static struct expr *
usr/src/cmd/mandoc/mansearch.c
722
struct expr *e;
usr/src/cmd/mandoc/mansearch.c
73
static struct expr *exprcomp(const struct mansearch *,
usr/src/cmd/mandoc/mansearch.c
75
static struct expr *expr_and(const struct mansearch *,
usr/src/cmd/mandoc/mansearch.c
77
static struct expr *exprterm(const struct mansearch *,
usr/src/cmd/mandoc/mansearch.c
79
static void exprfree(struct expr *);
usr/src/cmd/mandoc/mansearch.c
844
exprfree(struct expr *e)
usr/src/cmd/mandoc/mansearch.c
91
struct expr *e;
usr/src/cmd/mdb/common/mdb/mdb_debug.c
159
mdb_dassert(const char *expr, const char *file, int line)
usr/src/cmd/mdb/common/mdb/mdb_debug.c
161
fail("\"%s\", line %d: assertion failed: %s\n", file, line, expr);
usr/src/cmd/oawk/awk.g.y
119
expr {
usr/src/cmd/oawk/awk.g.y
146
expr MATCHOP regular_expr {
usr/src/cmd/oawk/awk.g.y
156
| VAR '[' expr ']' { $$ = op2(ARRAY, $1, $3); }
usr/src/cmd/oawk/awk.g.y
170
| FNCN '(' expr ')' { $$ = op2(FNCN, $1, $3); }
usr/src/cmd/oawk/awk.g.y
172
| SUBSTR '(' expr ',' expr ',' expr ')'
usr/src/cmd/oawk/awk.g.y
174
| SUBSTR '(' expr ',' expr ')'
usr/src/cmd/oawk/awk.g.y
176
| SPLIT '(' expr ',' VAR ',' expr ')'
usr/src/cmd/oawk/awk.g.y
178
| SPLIT '(' expr ',' VAR ')'
usr/src/cmd/oawk/awk.g.y
180
| INDEX '(' expr ',' expr ')'
usr/src/cmd/oawk/awk.g.y
182
| '(' expr ')' {$$ = $2; }
usr/src/cmd/oawk/awk.g.y
197
expr:
usr/src/cmd/oawk/awk.g.y
199
| expr term { $$ = op2(CAT, $1, $2); }
usr/src/cmd/oawk/awk.g.y
200
| var ASGNOP expr { $$ = op2($2, $1, $3); }
usr/src/cmd/oawk/awk.g.y
239
expr
usr/src/cmd/oawk/awk.g.y
248
expr ',' expr {$$ = linkum($1, $3); }
usr/src/cmd/oawk/awk.g.y
249
| pe_list ',' expr {$$ = linkum($1, $3); }
usr/src/cmd/oawk/awk.g.y
285
expr RELOP expr
usr/src/cmd/oawk/awk.g.y
299
PRINT print_list redir expr
usr/src/cmd/oawk/awk.g.y
303
| PRINTF print_list redir expr
usr/src/cmd/oawk/awk.g.y
307
| expr { $$ = exptostat($1); }
usr/src/cmd/oawk/awk.g.y
322
| EXIT expr st { $$ = stat1(EXIT, $2); }
usr/src/cmd/sendmail/libsm/test.c
109
sm_test(success, expr, filename, lineno)
usr/src/cmd/sendmail/libsm/test.c
111
char *expr;
usr/src/cmd/sendmail/libsm/test.c
124
expr);
usr/src/cmd/sh/defs.h
181
extern float expr();
usr/src/common/ficl/emu/loader_emu.c
301
#define PARSE_FAIL(expr) \
usr/src/common/ficl/emu/loader_emu.c
302
if (expr) { \
usr/src/common/lz4/lz4.c
308
#define expect(expr, value) (__builtin_expect((expr), (value)))
usr/src/common/lz4/lz4.c
310
#define expect(expr, value) (expr)
usr/src/common/lz4/lz4.c
314
#define likely(expr) expect((expr) != 0, 1)
usr/src/common/lz4/lz4.c
318
#define unlikely(expr) expect((expr) != 0, 0)
usr/src/common/smbclnt/smbfs_ntacl.c
84
#define ERRCHK(expr) if ((error = expr) != 0) goto errout
usr/src/grub/grub-0.97/stage2/zfs_lz4.c
106
#define expect(expr, value) (__builtin_expect((expr), (value)))
usr/src/grub/grub-0.97/stage2/zfs_lz4.c
108
#define expect(expr, value) (expr)
usr/src/grub/grub-0.97/stage2/zfs_lz4.c
111
#define likely(expr) expect((expr) != 0, 1)
usr/src/grub/grub-0.97/stage2/zfs_lz4.c
112
#define unlikely(expr) expect((expr) != 0, 0)
usr/src/lib/fm/libfmd_msg/common/fmd_msg.c
1003
char *s, *expr;
usr/src/lib/fm/libfmd_msg/common/fmd_msg.c
1093
expr = malloc(elen + MB_CUR_MAX + 1);
usr/src/lib/fm/libfmd_msg/common/fmd_msg.c
1095
if (expr == NULL) {
usr/src/lib/fm/libfmd_msg/common/fmd_msg.c
1101
(void) wctomb(&expr[i], q[i]);
usr/src/lib/fm/libfmd_msg/common/fmd_msg.c
1103
expr[i] = '\0';
usr/src/lib/fm/libfmd_msg/common/fmd_msg.c
1106
(void) fmd_msg_nv_parse_nvname(&buf, nvl, expr);
usr/src/lib/fm/libfmd_msg/common/fmd_msg.c
1108
fmd_msg_buf_printf(&buf, "%%<%s>", expr);
usr/src/lib/fm/libfmd_msg/common/fmd_msg.c
1110
free(expr);
usr/src/lib/fm/libfmd_msg/common/fmd_msg.c
1145
char *s, *expr, host[MAXHOSTNAMELEN + 1];
usr/src/lib/fm/libfmd_msg/common/fmd_msg.c
1212
expr = malloc(elen + MB_CUR_MAX + 1);
usr/src/lib/fm/libfmd_msg/common/fmd_msg.c
1214
if (expr == NULL) {
usr/src/lib/fm/libfmd_msg/common/fmd_msg.c
1220
(void) wctomb(&expr[i], q[i]);
usr/src/lib/fm/libfmd_msg/common/fmd_msg.c
1222
expr[i] = '\0';
usr/src/lib/fm/libfmd_msg/common/fmd_msg.c
1225
(void) fmd_msg_nv_parse_nvname(&buf, nvl, expr);
usr/src/lib/fm/libfmd_msg/common/fmd_msg.c
1227
fmd_msg_buf_printf(&buf, "%%<%s>", expr);
usr/src/lib/fm/libfmd_msg/common/fmd_msg.c
1229
free(expr);
usr/src/lib/fm/libfmd_snmp/common/debug_subr.c
56
sunFm_assert(const char *expr, const char *file, int line)
usr/src/lib/fm/libfmd_snmp/common/debug_subr.c
59
expr);
usr/src/lib/libc/port/i18n/gettext.h
88
typedef struct expr *plural_expr_t;
usr/src/lib/libc/port/i18n/gettext_util.c
531
printexpr(struct expr *e, int level)
usr/src/lib/libc/port/i18n/plural_parser.c
108
static struct expr *
usr/src/lib/libc/port/i18n/plural_parser.c
109
stack_pop(struct stack *stk, struct expr *exp_a, struct expr *exp_b)
usr/src/lib/libc/port/i18n/plural_parser.c
132
freeexpr(struct expr *e)
usr/src/lib/libc/port/i18n/plural_parser.c
158
static struct expr *
usr/src/lib/libc/port/i18n/plural_parser.c
162
struct expr *newitem;
usr/src/lib/libc/port/i18n/plural_parser.c
173
newitem = (struct expr *)calloc(1, sizeof (struct expr));
usr/src/lib/libc/port/i18n/plural_parser.c
185
static struct expr *
usr/src/lib/libc/port/i18n/plural_parser.c
187
struct expr *exp1, struct expr *exp2, struct expr *exp3)
usr/src/lib/libc/port/i18n/plural_parser.c
189
struct expr *newitem;
usr/src/lib/libc/port/i18n/plural_parser.c
210
newitem = (struct expr *)calloc(1, sizeof (struct expr));
usr/src/lib/libc/port/i18n/plural_parser.c
240
reduce(struct expr **nexp, unsigned int n, struct expr *exp, struct stack *stk)
usr/src/lib/libc/port/i18n/plural_parser.c
242
struct expr *exp_op, *exp1, *exp2, *exp3;
usr/src/lib/libc/port/i18n/plural_parser.c
449
plural_expr(struct expr **e, const char *plural_string)
usr/src/lib/libc/port/i18n/plural_parser.c
453
struct expr *exp, *nexp, *exp_op, *ret;
usr/src/lib/libc/port/i18n/plural_parser.c
461
stk->ptr = malloc(sizeof (struct expr *) * MAX_STACK_SIZE);
usr/src/lib/libc/port/i18n/plural_parser.c
844
plural_eval(struct expr *exp, unsigned int n)
usr/src/lib/libc/port/i18n/plural_parser.c
86
static void freeexpr(struct expr *);
usr/src/lib/libc/port/i18n/plural_parser.c
88
static struct expr *
usr/src/lib/libc/port/i18n/plural_parser.c
89
stack_push(struct stack *stk, struct expr *exp)
usr/src/lib/libc/port/i18n/plural_parser.h
77
struct expr *nodes[3]; /* operands */
usr/src/lib/libc/port/i18n/plural_parser.h
82
struct expr **ptr;
usr/src/lib/libdevinfo/devfsmap.c
2043
char *expr;
usr/src/lib/libdevinfo/devfsmap.c
2054
expr = calloc(1, MAXNAMELEN);
usr/src/lib/libdevinfo/devfsmap.c
2055
if (devpath == NULL || expr == NULL || minor_path == NULL) {
usr/src/lib/libdevinfo/devfsmap.c
2068
if (snprintf(expr, MAXNAMELEN, "%s:.*", p) >= MAXNAMELEN)
usr/src/lib/libdevinfo/devfsmap.c
2070
if (regcomp(®ex, expr, REG_EXTENDED) != 0)
usr/src/lib/libdevinfo/devfsmap.c
2112
if (expr)
usr/src/lib/libdevinfo/devfsmap.c
2113
free(expr);
usr/src/lib/libdtrace/common/dt_parser.c
2117
dt_node_op3(dt_node_t *expr, dt_node_t *lp, dt_node_t *rp)
usr/src/lib/libdtrace/common/dt_parser.c
2121
if (expr->dn_kind == DT_NODE_INT)
usr/src/lib/libdtrace/common/dt_parser.c
2122
return (expr->dn_value != 0 ? lp : rp);
usr/src/lib/libdtrace/common/dt_parser.c
2126
dnp->dn_expr = expr;
usr/src/lib/libdtrace/common/dt_parser.c
2134
dt_node_statement(dt_node_t *expr)
usr/src/lib/libdtrace/common/dt_parser.c
2138
if (expr->dn_kind == DT_NODE_AGG)
usr/src/lib/libdtrace/common/dt_parser.c
2139
return (expr);
usr/src/lib/libdtrace/common/dt_parser.c
2141
if (expr->dn_kind == DT_NODE_FUNC &&
usr/src/lib/libdtrace/common/dt_parser.c
2142
expr->dn_ident->di_kind == DT_IDENT_ACTFUNC)
usr/src/lib/libdtrace/common/dt_parser.c
2147
dnp->dn_expr = expr;
usr/src/lib/libdtrace/common/dt_parser.c
2235
dt_node_inline(dt_node_t *expr)
usr/src/lib/libdtrace/common/dt_parser.c
2381
expr = dt_node_cook(expr, DT_IDFLG_REF);
usr/src/lib/libdtrace/common/dt_parser.c
2392
if (dt_node_is_dynamic(expr))
usr/src/lib/libdtrace/common/dt_parser.c
2393
rdp = dt_ident_resolve(expr->dn_ident);
usr/src/lib/libdtrace/common/dt_parser.c
2394
else if (expr->dn_kind == DT_NODE_VAR || expr->dn_kind == DT_NODE_SYM)
usr/src/lib/libdtrace/common/dt_parser.c
2395
rdp = expr->dn_ident;
usr/src/lib/libdtrace/common/dt_parser.c
2404
idp->di_attr = dt_attr_min(_dtrace_defattr, expr->dn_attr);
usr/src/lib/libdtrace/common/dt_parser.c
2414
inp->din_root = expr;
usr/src/lib/libdtrace/common/dt_parser.c
2428
dt_node_member(dt_decl_t *ddp, char *name, dt_node_t *expr)
usr/src/lib/libdtrace/common/dt_parser.c
2444
dnp->dn_membexpr = expr;
usr/src/lib/libdwarf/common/pro_expr.c
134
if (expr == NULL) {
usr/src/lib/libdwarf/common/pro_expr.c
138
dbg = expr->ex_dbg;
usr/src/lib/libdwarf/common/pro_expr.c
140
if (expr->ex_dbg == NULL) {
usr/src/lib/libdwarf/common/pro_expr.c
218
_dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
usr/src/lib/libdwarf/common/pro_expr.c
228
_dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
usr/src/lib/libdwarf/common/pro_expr.c
269
_dwarf_p_error(expr->ex_dbg, error, DW_DLE_BAD_EXPR_OPCODE);
usr/src/lib/libdwarf/common/pro_expr.c
305
_dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
usr/src/lib/libdwarf/common/pro_expr.c
317
_dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
usr/src/lib/libdwarf/common/pro_expr.c
329
_dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
usr/src/lib/libdwarf/common/pro_expr.c
340
_dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
usr/src/lib/libdwarf/common/pro_expr.c
350
_dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
usr/src/lib/libdwarf/common/pro_expr.c
398
_dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
usr/src/lib/libdwarf/common/pro_expr.c
421
_dwarf_p_error(expr->ex_dbg, error, DW_DLE_BAD_EXPR_OPCODE);
usr/src/lib/libdwarf/common/pro_expr.c
429
_dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
usr/src/lib/libdwarf/common/pro_expr.c
466
_dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
usr/src/lib/libdwarf/common/pro_expr.c
476
_dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
usr/src/lib/libdwarf/common/pro_expr.c
482
_dwarf_p_error(expr->ex_dbg, error, DW_DLE_BAD_EXPR_OPCODE);
usr/src/lib/libdwarf/common/pro_expr.c
486
next_byte_offset = expr->ex_next_byte_offset + operand_size + 1;
usr/src/lib/libdwarf/common/pro_expr.c
489
_dwarf_p_error(expr->ex_dbg, error, DW_DLE_EXPR_LENGTH_BAD);
usr/src/lib/libdwarf/common/pro_expr.c
494
&(expr->ex_byte_stream[0]) + expr->ex_next_byte_offset;
usr/src/lib/libdwarf/common/pro_expr.c
502
expr->ex_next_byte_offset = next_byte_offset;
usr/src/lib/libdwarf/common/pro_expr.c
508
dwarf_add_expr_addr_b(Dwarf_P_Expr expr,
usr/src/lib/libdwarf/common/pro_expr.c
516
res = dwarf_add_expr_addr_c(expr,addr,sym_index,
usr/src/lib/libdwarf/common/pro_expr.c
525
dwarf_add_expr_addr_c(Dwarf_P_Expr expr,
usr/src/lib/libdwarf/common/pro_expr.c
536
if (expr == NULL) {
usr/src/lib/libdwarf/common/pro_expr.c
541
dbg = expr->ex_dbg;
usr/src/lib/libdwarf/common/pro_expr.c
548
next_byte_offset = expr->ex_next_byte_offset + upointer_size + 1;
usr/src/lib/libdwarf/common/pro_expr.c
555
&(expr->ex_byte_stream[0]) + expr->ex_next_byte_offset;
usr/src/lib/libdwarf/common/pro_expr.c
562
if (expr->ex_reloc_offset != 0) {
usr/src/lib/libdwarf/common/pro_expr.c
567
expr->ex_reloc_sym_index = sym_index;
usr/src/lib/libdwarf/common/pro_expr.c
568
expr->ex_reloc_offset = expr->ex_next_byte_offset + 1;
usr/src/lib/libdwarf/common/pro_expr.c
570
expr->ex_next_byte_offset = next_byte_offset;
usr/src/lib/libdwarf/common/pro_expr.c
576
dwarf_add_expr_addr(Dwarf_P_Expr expr,
usr/src/lib/libdwarf/common/pro_expr.c
590
res = dwarf_add_expr_addr_c(expr,
usr/src/lib/libdwarf/common/pro_expr.c
601
dwarf_expr_current_offset(Dwarf_P_Expr expr, Dwarf_Error * error)
usr/src/lib/libdwarf/common/pro_expr.c
606
res = dwarf_expr_current_offset_a(expr,&l,error);
usr/src/lib/libdwarf/common/pro_expr.c
614
dwarf_expr_current_offset_a(Dwarf_P_Expr expr,
usr/src/lib/libdwarf/common/pro_expr.c
618
if (expr == NULL) {
usr/src/lib/libdwarf/common/pro_expr.c
623
if (expr->ex_dbg == NULL) {
usr/src/lib/libdwarf/common/pro_expr.c
627
*stream_length_out = expr->ex_next_byte_offset;
usr/src/lib/libdwarf/common/pro_expr.c
632
dwarf_expr_reset(Dwarf_P_Expr expr, Dwarf_Error * error)
usr/src/lib/libdwarf/common/pro_expr.c
634
if (expr == NULL) {
usr/src/lib/libdwarf/common/pro_expr.c
638
expr->ex_next_byte_offset=0;
usr/src/lib/libdwarf/common/pro_expr.c
642
dwarf_expr_into_block(Dwarf_P_Expr expr,
usr/src/lib/libdwarf/common/pro_expr.c
649
res = dwarf_expr_into_block_a(expr,length,&addr,error);
usr/src/lib/libdwarf/common/pro_expr.c
658
dwarf_expr_into_block_a(Dwarf_P_Expr expr,
usr/src/lib/libdwarf/common/pro_expr.c
663
if (expr == NULL) {
usr/src/lib/libdwarf/common/pro_expr.c
668
if (expr->ex_dbg == NULL) {
usr/src/lib/libdwarf/common/pro_expr.c
674
*length = expr->ex_next_byte_offset;
usr/src/lib/libdwarf/common/pro_expr.c
675
*address = &(expr->ex_byte_stream[0]);
usr/src/lib/libdwarf/common/pro_expr.c
80
dwarf_add_expr_gen(Dwarf_P_Expr expr,
usr/src/lib/libdwarf/common/pro_expr.c
88
res = dwarf_add_expr_gen_a(expr,opcode,
usr/src/lib/libdwarf/common/pro_expr.c
98
dwarf_add_expr_gen_a(Dwarf_P_Expr expr,
usr/src/lib/libfru/libfru/libfru.cc
113
#define RETRY(expr) \
usr/src/lib/libfru/libfru/libfru.cc
115
(expr) == FRU_NORESPONSE; loop++) ; \
usr/src/lib/libsqlite/src/parse.y
193
ccons ::= CHECK LP expr RP onconf.
usr/src/lib/libsqlite/src/parse.y
240
tcons ::= CHECK expr onconf.
usr/src/lib/libsqlite/src/parse.y
328
selcollist(A) ::= sclp(P) expr(X) as(Y). {
usr/src/lib/libsqlite/src/parse.y
422
on_opt(N) ::= ON expr(E). {N = E;}
usr/src/lib/libsqlite/src/parse.y
448
sortitem(A) ::= expr(X). {A = X;}
usr/src/lib/libsqlite/src/parse.y
467
having_opt(A) ::= HAVING expr(X). {A = X;}
usr/src/lib/libsqlite/src/parse.y
487
where_opt(A) ::= WHERE expr(X). {A = X;}
usr/src/lib/libsqlite/src/parse.y
497
setlist(A) ::= setlist(Z) COMMA nm(X) EQ expr(Y).
usr/src/lib/libsqlite/src/parse.y
499
setlist(A) ::= nm(X) EQ expr(Y). {A = sqliteExprListAppend(0,Y,&X);}
usr/src/lib/libsqlite/src/parse.y
517
itemlist(A) ::= itemlist(X) COMMA expr(Y). {A = sqliteExprListAppend(X,Y,0);}
usr/src/lib/libsqlite/src/parse.y
518
itemlist(A) ::= expr(X). {A = sqliteExprListAppend(0,X,0);}
usr/src/lib/libsqlite/src/parse.y
533
%type expr {Expr*}
usr/src/lib/libsqlite/src/parse.y
534
%destructor expr {sqliteExprDelete($$);}
usr/src/lib/libsqlite/src/parse.y
536
expr(A) ::= LP(B) expr(X) RP(E). {A = X; sqliteExprSpan(A,&B,&E); }
usr/src/lib/libsqlite/src/parse.y
537
expr(A) ::= NULL(X). {A = sqliteExpr(TK_NULL, 0, 0, &X);}
usr/src/lib/libsqlite/src/parse.y
538
expr(A) ::= ID(X). {A = sqliteExpr(TK_ID, 0, 0, &X);}
usr/src/lib/libsqlite/src/parse.y
539
expr(A) ::= JOIN_KW(X). {A = sqliteExpr(TK_ID, 0, 0, &X);}
usr/src/lib/libsqlite/src/parse.y
540
expr(A) ::= nm(X) DOT nm(Y). {
usr/src/lib/libsqlite/src/parse.y
545
expr(A) ::= nm(X) DOT nm(Y) DOT nm(Z). {
usr/src/lib/libsqlite/src/parse.y
552
expr(A) ::= INTEGER(X). {A = sqliteExpr(TK_INTEGER, 0, 0, &X);}
usr/src/lib/libsqlite/src/parse.y
553
expr(A) ::= FLOAT(X). {A = sqliteExpr(TK_FLOAT, 0, 0, &X);}
usr/src/lib/libsqlite/src/parse.y
554
expr(A) ::= STRING(X). {A = sqliteExpr(TK_STRING, 0, 0, &X);}
usr/src/lib/libsqlite/src/parse.y
555
expr(A) ::= VARIABLE(X). {
usr/src/lib/libsqlite/src/parse.y
559
expr(A) ::= ID(X) LP exprlist(Y) RP(E). {
usr/src/lib/libsqlite/src/parse.y
563
expr(A) ::= ID(X) LP STAR RP(E). {
usr/src/lib/libsqlite/src/parse.y
567
expr(A) ::= expr(X) AND expr(Y). {A = sqliteExpr(TK_AND, X, Y, 0);}
usr/src/lib/libsqlite/src/parse.y
568
expr(A) ::= expr(X) OR expr(Y). {A = sqliteExpr(TK_OR, X, Y, 0);}
usr/src/lib/libsqlite/src/parse.y
569
expr(A) ::= expr(X) LT expr(Y). {A = sqliteExpr(TK_LT, X, Y, 0);}
usr/src/lib/libsqlite/src/parse.y
570
expr(A) ::= expr(X) GT expr(Y). {A = sqliteExpr(TK_GT, X, Y, 0);}
usr/src/lib/libsqlite/src/parse.y
571
expr(A) ::= expr(X) LE expr(Y). {A = sqliteExpr(TK_LE, X, Y, 0);}
usr/src/lib/libsqlite/src/parse.y
572
expr(A) ::= expr(X) GE expr(Y). {A = sqliteExpr(TK_GE, X, Y, 0);}
usr/src/lib/libsqlite/src/parse.y
573
expr(A) ::= expr(X) NE expr(Y). {A = sqliteExpr(TK_NE, X, Y, 0);}
usr/src/lib/libsqlite/src/parse.y
574
expr(A) ::= expr(X) EQ expr(Y). {A = sqliteExpr(TK_EQ, X, Y, 0);}
usr/src/lib/libsqlite/src/parse.y
575
expr(A) ::= expr(X) BITAND expr(Y). {A = sqliteExpr(TK_BITAND, X, Y, 0);}
usr/src/lib/libsqlite/src/parse.y
576
expr(A) ::= expr(X) BITOR expr(Y). {A = sqliteExpr(TK_BITOR, X, Y, 0);}
usr/src/lib/libsqlite/src/parse.y
577
expr(A) ::= expr(X) LSHIFT expr(Y). {A = sqliteExpr(TK_LSHIFT, X, Y, 0);}
usr/src/lib/libsqlite/src/parse.y
578
expr(A) ::= expr(X) RSHIFT expr(Y). {A = sqliteExpr(TK_RSHIFT, X, Y, 0);}
usr/src/lib/libsqlite/src/parse.y
579
expr(A) ::= expr(X) likeop(OP) expr(Y). [LIKE] {
usr/src/lib/libsqlite/src/parse.y
586
expr(A) ::= expr(X) NOT likeop(OP) expr(Y). [LIKE] {
usr/src/lib/libsqlite/src/parse.y
597
expr(A) ::= expr(X) PLUS expr(Y). {A = sqliteExpr(TK_PLUS, X, Y, 0);}
usr/src/lib/libsqlite/src/parse.y
598
expr(A) ::= expr(X) MINUS expr(Y). {A = sqliteExpr(TK_MINUS, X, Y, 0);}
usr/src/lib/libsqlite/src/parse.y
599
expr(A) ::= expr(X) STAR expr(Y). {A = sqliteExpr(TK_STAR, X, Y, 0);}
usr/src/lib/libsqlite/src/parse.y
600
expr(A) ::= expr(X) SLASH expr(Y). {A = sqliteExpr(TK_SLASH, X, Y, 0);}
usr/src/lib/libsqlite/src/parse.y
601
expr(A) ::= expr(X) REM expr(Y). {A = sqliteExpr(TK_REM, X, Y, 0);}
usr/src/lib/libsqlite/src/parse.y
602
expr(A) ::= expr(X) CONCAT expr(Y). {A = sqliteExpr(TK_CONCAT, X, Y, 0);}
usr/src/lib/libsqlite/src/parse.y
603
expr(A) ::= expr(X) ISNULL(E). {
usr/src/lib/libsqlite/src/parse.y
607
expr(A) ::= expr(X) IS NULL(E). {
usr/src/lib/libsqlite/src/parse.y
611
expr(A) ::= expr(X) NOTNULL(E). {
usr/src/lib/libsqlite/src/parse.y
615
expr(A) ::= expr(X) NOT NULL(E). {
usr/src/lib/libsqlite/src/parse.y
619
expr(A) ::= expr(X) IS NOT NULL(E). {
usr/src/lib/libsqlite/src/parse.y
623
expr(A) ::= NOT(B) expr(X). {
usr/src/lib/libsqlite/src/parse.y
627
expr(A) ::= BITNOT(B) expr(X). {
usr/src/lib/libsqlite/src/parse.y
631
expr(A) ::= MINUS(B) expr(X). [UMINUS] {
usr/src/lib/libsqlite/src/parse.y
635
expr(A) ::= PLUS(B) expr(X). [UPLUS] {
usr/src/lib/libsqlite/src/parse.y
639
expr(A) ::= LP(B) select(X) RP(E). {
usr/src/lib/libsqlite/src/parse.y
644
expr(A) ::= expr(W) BETWEEN expr(X) AND expr(Y). {
usr/src/lib/libsqlite/src/parse.y
651
expr(A) ::= expr(W) NOT BETWEEN expr(X) AND expr(Y). {
usr/src/lib/libsqlite/src/parse.y
659
expr(A) ::= expr(X) IN LP exprlist(Y) RP(E). {
usr/src/lib/libsqlite/src/parse.y
664
expr(A) ::= expr(X) IN LP select(Y) RP(E). {
usr/src/lib/libsqlite/src/parse.y
669
expr(A) ::= expr(X) NOT IN LP exprlist(Y) RP(E). {
usr/src/lib/libsqlite/src/parse.y
675
expr(A) ::= expr(X) NOT IN LP select(Y) RP(E). {
usr/src/lib/libsqlite/src/parse.y
681
expr(A) ::= expr(X) IN nm(Y) dbnm(D). {
usr/src/lib/libsqlite/src/parse.y
687
expr(A) ::= expr(X) NOT IN nm(Y) dbnm(D). {
usr/src/lib/libsqlite/src/parse.y
697
expr(A) ::= CASE(C) case_operand(X) case_exprlist(Y) case_else(Z) END(E). {
usr/src/lib/libsqlite/src/parse.y
704
case_exprlist(A) ::= case_exprlist(X) WHEN expr(Y) THEN expr(Z). {
usr/src/lib/libsqlite/src/parse.y
708
case_exprlist(A) ::= WHEN expr(Y) THEN expr(Z). {
usr/src/lib/libsqlite/src/parse.y
713
case_else(A) ::= ELSE expr(X). {A = X;}
usr/src/lib/libsqlite/src/parse.y
716
case_operand(A) ::= expr(X). {A = X;}
usr/src/lib/libsqlite/src/parse.y
727
expritem(A) ::= expr(X). {A = X;}
usr/src/lib/libsqlite/src/parse.y
826
when_clause(A) ::= WHEN expr(X). { A = X; }
usr/src/lib/libsqlite/src/parse.y
858
expr(A) ::= RAISE(X) LP IGNORE RP(Y). {
usr/src/lib/libsqlite/src/parse.y
863
expr(A) ::= RAISE(X) LP ROLLBACK COMMA nm(Z) RP(Y). {
usr/src/lib/libsqlite/src/parse.y
868
expr(A) ::= RAISE(X) LP ABORT COMMA nm(Z) RP(Y). {
usr/src/lib/libsqlite/src/parse.y
873
expr(A) ::= RAISE(X) LP FAIL COMMA nm(Z) RP(Y). {
usr/src/lib/libzoneinfo/common/libzone.c
914
_tz_match(const char *expr, const char *string)
usr/src/lib/libzoneinfo/common/libzone.c
920
ret = regcomp(®, expr, REG_EXTENDED);
usr/src/lib/libzpool/common/sys/zfs_context.h
290
#define _zfs_expect(expr, value) (__builtin_expect((expr), (value)))
usr/src/lib/libzpool/common/sys/zfs_context.h
292
#define _zfs_expect(expr, value) (expr)
usr/src/lib/scsi/libscsi/common/scsi_subr.c
48
libscsi_assert(const char *expr, const char *file, int line)
usr/src/lib/scsi/libscsi/common/scsi_subr.c
54
"ABORT: \"%s\", line %d: assertion failed: %s\n", file, line, expr);
usr/src/lib/scsi/libscsi/common/scsi_subr.c
59
"ABORT: \"%s\", line %d: assertion failed: %s\n", file, line, expr);
usr/src/lib/scsi/libses/common/ses_subr.c
74
ses_assert(const char *expr, const char *file, int line)
usr/src/lib/scsi/libses/common/ses_subr.c
76
ses_panic("\"%s\", line %d: assertion failed: %s\n", file, line, expr);
usr/src/lib/scsi/libsmp/common/smp_subr.c
52
smp_assert(const char *expr, const char *file, int line)
usr/src/lib/scsi/libsmp/common/smp_subr.c
58
"ABORT: \"%s\", line %d: assertion failed: %s\n", file, line, expr);
usr/src/lib/scsi/libsmp/common/smp_subr.c
63
"ABORT: \"%s\", line %d: assertion failed: %s\n", file, line, expr);
usr/src/lib/udapl/libdat/include/dat_osd.h
71
#define dat_os_assert(expr) assert(expr)
usr/src/test/zfs-tests/cmd/libzfs_input_check/libzfs_input_check.c
881
#define CHECK(expr) do { \
usr/src/test/zfs-tests/cmd/libzfs_input_check/libzfs_input_check.c
882
if (!(expr)) { \
usr/src/test/zfs-tests/cmd/libzfs_input_check/libzfs_input_check.c
884
fprintf(stderr, "(%s) === FALSE\n", #expr); \
usr/src/tools/smatch/src/ast-inspect.c
190
struct expression *expr = node->ptr;
usr/src/tools/smatch/src/ast-inspect.c
191
node->text = g_strdup_printf("%s %s", node->text, expression_type_name(expr->type));
usr/src/tools/smatch/src/ast-inspect.c
192
switch (expr->type) {
usr/src/tools/smatch/src/ast-inspect.c
194
ast_append_child(node, "statement:", expr->statement, inspect_statement);
usr/src/tools/smatch/src/ast-inspect.c
201
ast_append_child(node, "left:", expr->left, inspect_expression);
usr/src/tools/smatch/src/ast-inspect.c
202
ast_append_child(node, "right:", expr->right, inspect_expression);
usr/src/tools/smatch/src/ast-inspect.c
208
ast_append_child(node, "cast_type:", expr->cast_type, inspect_symbol);
usr/src/tools/smatch/src/ast-inspect.c
209
ast_append_child(node, "cast_expression:", expr->cast_expression, inspect_expression);
usr/src/tools/smatch/src/ast-inspect.c
213
ast_append_child(node, "unop:", expr->unop, inspect_expression);
usr/src/tools/smatch/src/builtin.c
101
*expr = get_expression_value(args[0]) ? *args[1] : *args[2];
usr/src/tools/smatch/src/builtin.c
106
static int expand_expect(struct expression *expr, int cost)
usr/src/tools/smatch/src/builtin.c
108
struct expression *arg = first_ptr_list((struct ptr_list *) expr->args);
usr/src/tools/smatch/src/builtin.c
111
*expr = *arg;
usr/src/tools/smatch/src/builtin.c
119
static int expand_warning(struct expression *expr, int cost)
usr/src/tools/smatch/src/builtin.c
122
struct expression_list *arglist = expr->args;
usr/src/tools/smatch/src/builtin.c
138
warning(expr->pos, "%*s", string->length-1, string->data);
usr/src/tools/smatch/src/builtin.c
154
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/builtin.c
155
expr->value = 1;
usr/src/tools/smatch/src/builtin.c
156
expr->taint = 0;
usr/src/tools/smatch/src/builtin.c
161
static int expand_constant_p(struct expression *expr, int cost)
usr/src/tools/smatch/src/builtin.c
163
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/builtin.c
164
expr->value = !cost;
usr/src/tools/smatch/src/builtin.c
165
expr->taint = 0;
usr/src/tools/smatch/src/builtin.c
170
static int expand_safe_p(struct expression *expr, int cost)
usr/src/tools/smatch/src/builtin.c
172
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/builtin.c
173
expr->value = (cost < SIDE_EFFECTS);
usr/src/tools/smatch/src/builtin.c
174
expr->taint = 0;
usr/src/tools/smatch/src/builtin.c
203
static int expand_bswap(struct expression *expr, int cost)
usr/src/tools/smatch/src/builtin.c
212
arg = first_expression(expr->args);
usr/src/tools/smatch/src/builtin.c
214
switch (expr->ctype->bit_size) {
usr/src/tools/smatch/src/builtin.c
215
case 16: expr->value = bswap16(val); break;
usr/src/tools/smatch/src/builtin.c
216
case 32: expr->value = bswap32(val); break;
usr/src/tools/smatch/src/builtin.c
217
case 64: expr->value = bswap64(val); break;
usr/src/tools/smatch/src/builtin.c
222
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/builtin.c
223
expr->taint = 0;
usr/src/tools/smatch/src/builtin.c
233
static int evaluate_fp_unop(struct expression *expr)
usr/src/tools/smatch/src/builtin.c
237
if (!eval_args(expr, 1))
usr/src/tools/smatch/src/builtin.c
240
arg = first_expression(expr->args);
usr/src/tools/smatch/src/builtin.c
242
expression_error(expr, "non-floating-point argument in call to %s()",
usr/src/tools/smatch/src/builtin.c
243
show_ident(expr->fn->ctype->ident));
usr/src/tools/smatch/src/builtin.c
254
static int evaluate_overflow_gen(struct expression *expr, int ptr)
usr/src/tools/smatch/src/builtin.c
260
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/builtin.c
288
expr->ctype = &bool_ctype;
usr/src/tools/smatch/src/builtin.c
294
expr->ctype = &bad_ctype;
usr/src/tools/smatch/src/builtin.c
298
static int evaluate_overflow(struct expression *expr)
usr/src/tools/smatch/src/builtin.c
300
return evaluate_overflow_gen(expr, 1);
usr/src/tools/smatch/src/builtin.c
308
static int evaluate_overflow_p(struct expression *expr)
usr/src/tools/smatch/src/builtin.c
310
return evaluate_overflow_gen(expr, 0);
usr/src/tools/smatch/src/builtin.c
33
static int evaluate_to_int_const_expr(struct expression *expr)
usr/src/tools/smatch/src/builtin.c
35
expr->ctype = &int_ctype;
usr/src/tools/smatch/src/builtin.c
36
expr->flags |= CEF_SET_ICE;
usr/src/tools/smatch/src/builtin.c
40
static int evaluate_pure_unop(struct expression *expr)
usr/src/tools/smatch/src/builtin.c
42
struct expression *arg = first_expression(expr->args);
usr/src/tools/smatch/src/builtin.c
51
expr->flags = flags;
usr/src/tools/smatch/src/builtin.c
58
static int eval_args(struct expression *expr, int n)
usr/src/tools/smatch/src/builtin.c
65
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/builtin.c
80
sym = expr->fn->ctype;
usr/src/tools/smatch/src/builtin.c
81
expression_error(expr, "%s for %s", msg, show_ident(sym->ident));
usr/src/tools/smatch/src/builtin.c
85
static int args_triadic(struct expression *expr)
usr/src/tools/smatch/src/builtin.c
87
return eval_args(expr, 3);
usr/src/tools/smatch/src/builtin.c
90
static int evaluate_choose(struct expression *expr)
usr/src/tools/smatch/src/builtin.c
92
struct expression_list *list = expr->args;
usr/src/tools/smatch/src/char.c
143
expr->string = string;
usr/src/tools/smatch/src/char.c
144
expr->wide = is_wide;
usr/src/tools/smatch/src/char.c
94
struct token *get_string_constant(struct token *token, struct expression *expr)
usr/src/tools/smatch/src/check_64bit_shift.c
23
static void match_shift_mask(struct expression *expr)
usr/src/tools/smatch/src/check_64bit_shift.c
29
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_64bit_shift.c
30
if (expr->type != EXPR_BINOP || expr->op != '&')
usr/src/tools/smatch/src/check_64bit_shift.c
33
if (get_type(expr->left) != &ullong_ctype)
usr/src/tools/smatch/src/check_64bit_shift.c
36
if (type_bits(get_type(expr->right)) == 64)
usr/src/tools/smatch/src/check_64bit_shift.c
39
right = strip_expr(expr->right);
usr/src/tools/smatch/src/check_64bit_shift.c
48
str = expr_to_str(expr->right);
usr/src/tools/smatch/src/check_64bit_shift.c
53
static void match_shift_assignment(struct expression *expr)
usr/src/tools/smatch/src/check_64bit_shift.c
61
right = strip_expr(expr->right);
usr/src/tools/smatch/src/check_64bit_shift.c
65
left_type = get_type(expr->left);
usr/src/tools/smatch/src/check_64bit_shift.c
69
right_type = get_type(expr->right);
usr/src/tools/smatch/src/check_access_ok_math.c
22
static int can_overflow(struct expression *expr)
usr/src/tools/smatch/src/check_access_ok_math.c
27
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_access_ok_math.c
29
if (expr->type == EXPR_BINOP) {
usr/src/tools/smatch/src/check_access_ok_math.c
30
uncapped += can_overflow(expr->left);
usr/src/tools/smatch/src/check_access_ok_math.c
31
uncapped += can_overflow(expr->right);
usr/src/tools/smatch/src/check_access_ok_math.c
34
(expr->op == '+' || expr->op == '*' || expr->op == SPECIAL_LEFTSHIFT))
usr/src/tools/smatch/src/check_access_ok_math.c
40
if (get_implied_max(expr, &max))
usr/src/tools/smatch/src/check_access_ok_math.c
42
if (get_absolute_max(expr, &max) && sval_cmp_val(max, 4096) <= 0)
usr/src/tools/smatch/src/check_access_ok_math.c
68
static void match_access_ok(const char *fn, struct expression *expr, void *data)
usr/src/tools/smatch/src/check_access_ok_math.c
72
size_expr = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/check_access_ok_math.c
78
struct expression *expr;
usr/src/tools/smatch/src/check_access_ok_math.c
82
FOR_EACH_PTR(expr_list, expr) {
usr/src/tools/smatch/src/check_access_ok_math.c
84
if (expr->type != EXPR_ASM_OPERAND)
usr/src/tools/smatch/src/check_access_ok_math.c
87
match_size(expr->expr);
usr/src/tools/smatch/src/check_access_ok_math.c
88
} END_FOR_EACH_PTR(expr);
usr/src/tools/smatch/src/check_all_func_returns.c
26
static void check_func_return(struct expression *expr)
usr/src/tools/smatch/src/check_all_func_returns.c
28
struct symbol *sym = get_real_base_type(get_type(expr->fn));
usr/src/tools/smatch/src/check_all_func_returns.c
29
const char *func = expr_to_str(expr->fn);
usr/src/tools/smatch/src/check_all_func_returns.c
37
if (expr->type != EXPR_CALL) {
usr/src/tools/smatch/src/check_all_func_returns.c
59
const char *arg0 = expr_to_str(get_argument_from_call_expr(expr->args, 0));
usr/src/tools/smatch/src/check_all_func_returns.c
77
if (stmt && stmt->type == STMT_EXPRESSION && stmt->expression == expr)
usr/src/tools/smatch/src/check_all_func_returns.c
78
sm_error("unchecked function return '%s'", expr_to_str(expr->fn));
usr/src/tools/smatch/src/check_allocating_enough_data.c
20
static void db_returns_buf_size(struct expression *expr, int param, char *unused, char *math)
usr/src/tools/smatch/src/check_allocating_enough_data.c
28
if (expr->type != EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/check_allocating_enough_data.c
30
right_type = get_pointer_type(expr->right);
usr/src/tools/smatch/src/check_allocating_enough_data.c
34
call = strip_expr(expr->right);
usr/src/tools/smatch/src/check_allocating_enough_data.c
35
left_type = get_pointer_type(expr->left);
usr/src/tools/smatch/src/check_allocating_enough_data.c
47
str = expr_to_str(expr->left);
usr/src/tools/smatch/src/check_allocation_funcs.c
40
static void match_allocation(const char *fn, struct expression *expr,
usr/src/tools/smatch/src/check_allocation_funcs.c
46
left_name = expr_to_var_sym(expr->left, &left_sym);
usr/src/tools/smatch/src/check_arm64_tagged.c
105
if (expr_has_macro_with_name(expr, "offset_in_page"))
usr/src/tools/smatch/src/check_arm64_tagged.c
115
static bool expr_has_memory_addr(struct expression *expr)
usr/src/tools/smatch/src/check_arm64_tagged.c
117
if (expr->type == EXPR_PREOP || expr->type == EXPR_POSTOP)
usr/src/tools/smatch/src/check_arm64_tagged.c
118
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/check_arm64_tagged.c
120
if (expr_has_untagged_member(expr))
usr/src/tools/smatch/src/check_arm64_tagged.c
123
if (expr_has_untagged_macro(expr))
usr/src/tools/smatch/src/check_arm64_tagged.c
126
if (expr_has_untagged_symbol(expr))
usr/src/tools/smatch/src/check_arm64_tagged.c
188
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_arm64_tagged.c
200
if (expr->type != EXPR_COMPARE &&
usr/src/tools/smatch/src/check_arm64_tagged.c
201
expr->type != EXPR_BINOP)
usr/src/tools/smatch/src/check_arm64_tagged.c
209
if (expr_has_memory_addr(expr->left))
usr/src/tools/smatch/src/check_arm64_tagged.c
210
val = expr->right;
usr/src/tools/smatch/src/check_arm64_tagged.c
218
if (expr_has_memory_addr(expr->right))
usr/src/tools/smatch/src/check_arm64_tagged.c
219
val = expr->left;
usr/src/tools/smatch/src/check_arm64_tagged.c
22
static bool expr_has_memory_addr(struct expression *expr);
usr/src/tools/smatch/src/check_arm64_tagged.c
28
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/check_arm64_tagged.c
33
left_name = expr_to_var_sym(expr->left, &left_sym);
usr/src/tools/smatch/src/check_arm64_tagged.c
43
if (expr_has_memory_addr(expr->right))
usr/src/tools/smatch/src/check_arm64_tagged.c
53
static bool expr_has_untagged_symbol(struct expression *expr)
usr/src/tools/smatch/src/check_arm64_tagged.c
58
if (expr->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/check_arm64_tagged.c
61
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/check_arm64_tagged.c
72
static bool expr_has_untagged_member(struct expression *expr)
usr/src/tools/smatch/src/check_arm64_tagged.c
74
if (expr->type != EXPR_DEREF)
usr/src/tools/smatch/src/check_arm64_tagged.c
77
if (!strcmp(expr->member->name, "vm_start") ||
usr/src/tools/smatch/src/check_arm64_tagged.c
78
!strcmp(expr->member->name, "vm_end") ||
usr/src/tools/smatch/src/check_arm64_tagged.c
79
!strcmp(expr->member->name, "addr_limit"))
usr/src/tools/smatch/src/check_arm64_tagged.c
85
static bool expr_has_macro_with_name(struct expression *expr, const char *macro_name)
usr/src/tools/smatch/src/check_arm64_tagged.c
89
name = get_macro_name(expr->pos);
usr/src/tools/smatch/src/check_arm64_tagged.c
93
static bool expr_has_untagged_macro(struct expression *expr)
usr/src/tools/smatch/src/check_arm64_tagged.c
95
if (expr_has_macro_with_name(expr, "PAGE_SIZE") ||
usr/src/tools/smatch/src/check_arm64_tagged.c
96
expr_has_macro_with_name(expr, "PAGE_MASK") ||
usr/src/tools/smatch/src/check_arm64_tagged.c
97
expr_has_macro_with_name(expr, "TASK_SIZE"))
usr/src/tools/smatch/src/check_array_condition.c
30
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_array_condition.c
35
if (expr->type != EXPR_DEREF)
usr/src/tools/smatch/src/check_array_condition.c
37
type = get_type(expr);
usr/src/tools/smatch/src/check_array_condition.c
40
if (get_macro_name(expr->pos))
usr/src/tools/smatch/src/check_array_condition.c
43
str = expr_to_str(expr);
usr/src/tools/smatch/src/check_assign_vs_compare.c
22
static void check_constant(struct expression *expr)
usr/src/tools/smatch/src/check_assign_vs_compare.c
26
if (!get_value(expr->right, &val))
usr/src/tools/smatch/src/check_assign_vs_compare.c
31
static void check_address(struct expression *expr)
usr/src/tools/smatch/src/check_assign_vs_compare.c
34
struct expression *right = strip_expr(expr->right);
usr/src/tools/smatch/src/check_assign_vs_compare.c
43
if (get_macro_name(expr->pos))
usr/src/tools/smatch/src/check_assign_vs_compare.c
51
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_assign_vs_compare.c
53
if (expr->type != EXPR_ASSIGNMENT || expr->op != '=')
usr/src/tools/smatch/src/check_assign_vs_compare.c
56
check_constant(expr);
usr/src/tools/smatch/src/check_assign_vs_compare.c
57
check_address(expr);
usr/src/tools/smatch/src/check_atomic_inc_dec.c
105
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/check_atomic_inc_dec.c
106
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/check_atomic_inc_dec.c
107
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/check_atomic_inc_dec.c
110
arg = get_argument_from_call_expr(expr->args, param);
usr/src/tools/smatch/src/check_atomic_inc_dec.c
172
static bool is_inc_dec_primitive(struct expression *expr)
usr/src/tools/smatch/src/check_atomic_inc_dec.c
176
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/check_atomic_inc_dec.c
177
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/check_atomic_inc_dec.c
178
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/check_atomic_inc_dec.c
181
if (expr->fn->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/check_atomic_inc_dec.c
185
if (sym_name_is(primitive_funcs[i], expr->fn))
usr/src/tools/smatch/src/check_atomic_inc_dec.c
192
static void db_inc(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/check_atomic_inc_dec.c
194
if (is_inc_dec_primitive(expr))
usr/src/tools/smatch/src/check_atomic_inc_dec.c
196
db_inc_dec(expr, param, key, ATOMIC_INC);
usr/src/tools/smatch/src/check_atomic_inc_dec.c
199
static void db_dec(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/check_atomic_inc_dec.c
201
if (is_inc_dec_primitive(expr))
usr/src/tools/smatch/src/check_atomic_inc_dec.c
203
db_inc_dec(expr, param, key, ATOMIC_DEC);
usr/src/tools/smatch/src/check_atomic_inc_dec.c
206
static void match_atomic_inc(const char *fn, struct expression *expr, void *_unused)
usr/src/tools/smatch/src/check_atomic_inc_dec.c
208
db_inc_dec(expr, 0, "$->counter", ATOMIC_INC);
usr/src/tools/smatch/src/check_atomic_inc_dec.c
211
static void match_atomic_dec(const char *fn, struct expression *expr, void *_unused)
usr/src/tools/smatch/src/check_atomic_inc_dec.c
213
db_inc_dec(expr, 0, "$->counter", ATOMIC_DEC);
usr/src/tools/smatch/src/check_atomic_inc_dec.c
216
static void match_atomic_add(const char *fn, struct expression *expr, void *_unused)
usr/src/tools/smatch/src/check_atomic_inc_dec.c
221
amount = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_atomic_inc_dec.c
223
db_inc_dec(expr, 1, "$->counter", ATOMIC_DEC);
usr/src/tools/smatch/src/check_atomic_inc_dec.c
227
db_inc_dec(expr, 1, "$->counter", ATOMIC_INC);
usr/src/tools/smatch/src/check_atomic_inc_dec.c
230
static void match_atomic_sub(const char *fn, struct expression *expr, void *_unused)
usr/src/tools/smatch/src/check_atomic_inc_dec.c
232
db_inc_dec(expr, 1, "$->counter", ATOMIC_DEC);
usr/src/tools/smatch/src/check_atomic_inc_dec.c
235
static void refcount_inc(const char *fn, struct expression *expr, void *param)
usr/src/tools/smatch/src/check_atomic_inc_dec.c
237
db_inc_dec(expr, PTR_INT(param), "$->ref.counter", ATOMIC_INC);
usr/src/tools/smatch/src/check_atomic_inc_dec.c
240
static void refcount_dec(const char *fn, struct expression *expr, void *param)
usr/src/tools/smatch/src/check_atomic_inc_dec.c
242
db_inc_dec(expr, PTR_INT(param), "$->ref.counter", ATOMIC_DEC);
usr/src/tools/smatch/src/check_atomic_inc_dec.c
245
static void pm_runtime_get_sync(const char *fn, struct expression *expr, void *param)
usr/src/tools/smatch/src/check_atomic_inc_dec.c
247
db_inc_dec(expr, PTR_INT(param), "$->power.usage_count.counter", ATOMIC_INC);
usr/src/tools/smatch/src/check_atomic_inc_dec.c
272
static void match_return_info(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/check_atomic_inc_dec.c
411
static void match_save_states(struct expression *expr)
usr/src/tools/smatch/src/check_atomic_inc_dec.c
417
static void match_restore_states(struct expression *expr)
usr/src/tools/smatch/src/check_atomic_inc_dec.c
97
static void db_inc_dec(struct expression *expr, int param, const char *key, int inc_dec)
usr/src/tools/smatch/src/check_bit_shift.c
115
static void match_binop_info(struct expression *expr)
usr/src/tools/smatch/src/check_bit_shift.c
120
if (positions_eq(expr->pos, expr->right->pos))
usr/src/tools/smatch/src/check_bit_shift.c
122
if (expr->op != SPECIAL_LEFTSHIFT)
usr/src/tools/smatch/src/check_bit_shift.c
124
if (expr->right->type != EXPR_VALUE)
usr/src/tools/smatch/src/check_bit_shift.c
126
name = pos_ident(expr->right->pos);
usr/src/tools/smatch/src/check_bit_shift.c
129
if (!get_value(expr->right, &sval))
usr/src/tools/smatch/src/check_bit_shift.c
134
static void match_call(const char *fn, struct expression *expr, void *_arg_no)
usr/src/tools/smatch/src/check_bit_shift.c
141
arg_expr = get_argument_from_call_expr(expr->args, arg_no);
usr/src/tools/smatch/src/check_bit_shift.c
142
if (positions_eq(expr->pos, arg_expr->pos))
usr/src/tools/smatch/src/check_bit_shift.c
32
static const char *get_shifter(struct expression *expr)
usr/src/tools/smatch/src/check_bit_shift.c
38
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_bit_shift.c
39
if (expr->type != EXPR_VALUE)
usr/src/tools/smatch/src/check_bit_shift.c
41
if (!get_value(expr, &expr_value))
usr/src/tools/smatch/src/check_bit_shift.c
43
name = pos_ident(expr->pos);
usr/src/tools/smatch/src/check_bit_shift.c
54
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/check_bit_shift.c
58
if (expr->op != SPECIAL_OR_ASSIGN)
usr/src/tools/smatch/src/check_bit_shift.c
60
if (positions_eq(expr->pos, expr->right->pos))
usr/src/tools/smatch/src/check_bit_shift.c
62
name = get_shifter(expr->right);
usr/src/tools/smatch/src/check_bit_shift.c
67
name, show_special(expr->op));
usr/src/tools/smatch/src/check_bit_shift.c
70
static void match_binop(struct expression *expr)
usr/src/tools/smatch/src/check_bit_shift.c
74
if (positions_eq(expr->pos, expr->right->pos))
usr/src/tools/smatch/src/check_bit_shift.c
76
if (expr->op != '&')
usr/src/tools/smatch/src/check_bit_shift.c
78
name = get_shifter(expr->right);
usr/src/tools/smatch/src/check_bit_shift.c
83
name, show_special(expr->op));
usr/src/tools/smatch/src/check_bogus_irqrestore.c
22
static void match_irqrestore(const char *fn, struct expression *expr, void *data)
usr/src/tools/smatch/src/check_bogus_irqrestore.c
27
arg_expr = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/check_bogus_loop.c
23
static int right_side_changes(struct expression *expr)
usr/src/tools/smatch/src/check_bogus_loop.c
27
if (get_value(expr->right, &dummy))
usr/src/tools/smatch/src/check_bogus_loop.c
34
struct expression *expr;
usr/src/tools/smatch/src/check_bogus_loop.c
40
expr = stmt->expression;
usr/src/tools/smatch/src/check_bogus_loop.c
41
if (expr->type != EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/check_bogus_loop.c
43
if (expr->op != '=')
usr/src/tools/smatch/src/check_bogus_loop.c
45
if (right_side_changes(expr))
usr/src/tools/smatch/src/check_bogus_loop.c
47
return expr->left;
usr/src/tools/smatch/src/check_bogus_loop.c
50
static struct expression *get_iterator_tested(struct expression *expr)
usr/src/tools/smatch/src/check_bogus_loop.c
52
if (!expr)
usr/src/tools/smatch/src/check_bogus_loop.c
54
if (expr->type != EXPR_COMPARE)
usr/src/tools/smatch/src/check_bogus_loop.c
56
return expr->left;
usr/src/tools/smatch/src/check_buffer_too_small_for_struct.c
104
set_state_expr(my_id, expr, &undefined);
usr/src/tools/smatch/src/check_buffer_too_small_for_struct.c
24
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/check_buffer_too_small_for_struct.c
32
left_type = get_type(expr->left);
usr/src/tools/smatch/src/check_buffer_too_small_for_struct.c
39
right_type = get_type(expr->right);
usr/src/tools/smatch/src/check_buffer_too_small_for_struct.c
48
bytes = get_array_size_bytes(expr->right);
usr/src/tools/smatch/src/check_buffer_too_small_for_struct.c
52
size_expr = get_size_variable(expr->right, &limit_type);
usr/src/tools/smatch/src/check_buffer_too_small_for_struct.c
62
set_state_expr(my_id, expr->left, &too_small);
usr/src/tools/smatch/src/check_buffer_too_small_for_struct.c
65
static void match_dereferences(struct expression *expr)
usr/src/tools/smatch/src/check_buffer_too_small_for_struct.c
75
if (expr->type != EXPR_PREOP)
usr/src/tools/smatch/src/check_buffer_too_small_for_struct.c
78
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/check_buffer_too_small_for_struct.c
79
state = get_state_expr(my_id, expr);
usr/src/tools/smatch/src/check_buffer_too_small_for_struct.c
83
left_type = get_type(expr);
usr/src/tools/smatch/src/check_buffer_too_small_for_struct.c
90
right = get_assigned_expr(expr);
usr/src/tools/smatch/src/check_call_tree.c
22
static void match_call(struct expression *expr)
usr/src/tools/smatch/src/check_call_tree.c
26
fn_name = expr_to_var(expr->fn);
usr/src/tools/smatch/src/check_capable.c
26
static void match_capable(const char *fn, struct expression *expr, void *_param)
usr/src/tools/smatch/src/check_capable.c
32
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_capable.c
39
static void match_ns_capable(const char *fn, struct expression *expr, void *_param)
usr/src/tools/smatch/src/check_capable.c
48
arg = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/check_capable.c
70
static void save_return_info(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/check_cast_assign.c
24
static struct symbol *get_cast_type(struct expression *expr)
usr/src/tools/smatch/src/check_cast_assign.c
26
if (!expr || expr->type != EXPR_PREOP || expr->op != '*')
usr/src/tools/smatch/src/check_cast_assign.c
28
expr = strip_parens(expr->unop);
usr/src/tools/smatch/src/check_cast_assign.c
29
if (expr->type != EXPR_CAST)
usr/src/tools/smatch/src/check_cast_assign.c
31
return get_pointer_type(expr);
usr/src/tools/smatch/src/check_cast_assign.c
34
static void match_overflow(struct expression *expr)
usr/src/tools/smatch/src/check_cast_assign.c
41
type = get_cast_type(expr->left);
usr/src/tools/smatch/src/check_cast_assign.c
46
ptr = strip_expr(expr->left->unop);
usr/src/tools/smatch/src/check_check_deref.c
107
static void match_dereferences(struct expression *expr)
usr/src/tools/smatch/src/check_check_deref.c
109
if (expr->type != EXPR_PREOP)
usr/src/tools/smatch/src/check_check_deref.c
111
check_dereference(expr->unop);
usr/src/tools/smatch/src/check_check_deref.c
114
static void match_pointer_as_array(struct expression *expr)
usr/src/tools/smatch/src/check_check_deref.c
116
if (!is_array(expr))
usr/src/tools/smatch/src/check_check_deref.c
118
check_dereference(get_array_base(expr));
usr/src/tools/smatch/src/check_check_deref.c
135
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_check_deref.c
140
name = get_macro_name(expr->pos);
usr/src/tools/smatch/src/check_check_deref.c
145
if (!is_pointer(expr))
usr/src/tools/smatch/src/check_check_deref.c
148
if (expr->type == EXPR_ASSIGNMENT) {
usr/src/tools/smatch/src/check_check_deref.c
149
match_condition(expr->right);
usr/src/tools/smatch/src/check_check_deref.c
150
match_condition(expr->left);
usr/src/tools/smatch/src/check_check_deref.c
153
if (implied_not_equal(expr, 0))
usr/src/tools/smatch/src/check_check_deref.c
156
if (get_state_expr(my_id, expr))
usr/src/tools/smatch/src/check_check_deref.c
159
set_true_false_states_expr(my_id, expr, true_state, &null);
usr/src/tools/smatch/src/check_check_deref.c
48
static void check_dereference(struct expression *expr)
usr/src/tools/smatch/src/check_check_deref.c
56
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_check_deref.c
58
sm = get_sm_state_expr(my_id, expr);
usr/src/tools/smatch/src/check_check_deref.c
63
if (implied_not_equal(expr, 0))
usr/src/tools/smatch/src/check_cmn_err.c
31
void match_cmn_err(const char *fn, struct expression *expr,
usr/src/tools/smatch/src/check_cmn_err.c
37
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_container_of.c
35
static void match_non_null(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_container_of.c
37
set_state_expr(my_id, expr->left, &non_null);
usr/src/tools/smatch/src/check_container_of.c
40
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_container_of.c
45
if (get_macro_name(expr->pos))
usr/src/tools/smatch/src/check_container_of.c
48
if (get_state_expr(my_id, expr) == &non_null) {
usr/src/tools/smatch/src/check_container_of.c
51
name = expr_to_var(expr);
usr/src/tools/smatch/src/check_container_of.c
53
set_state_expr(my_id, expr, &undefined);
usr/src/tools/smatch/src/check_continue_vs_break.c
93
static void match_inline_start(struct expression *expr)
usr/src/tools/smatch/src/check_continue_vs_break.c
98
static void match_inline_end(struct expression *expr)
usr/src/tools/smatch/src/check_debug.c
103
arg_expr = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
116
static void match_print_known(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
124
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
135
static void match_print_implied(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
141
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
149
static void match_real_absolute(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
155
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
163
static void match_print_implied_min(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
169
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
180
static void match_print_implied_max(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
186
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
197
static void match_user_rl(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
207
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
218
static void match_capped(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
223
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
229
static void match_print_hard_max(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
235
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
246
static void match_print_fuzzy_max(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
252
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
263
static void match_print_absolute(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
269
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
278
static void match_print_absolute_min(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
284
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
295
static void match_print_absolute_max(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
301
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
309
static void match_sval_info(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
315
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
328
static void match_member_name(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
333
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
34
static void match_all_values(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
352
static void match_possible(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
358
arg_expr = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
371
static void match_strlen(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
377
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
385
static void match_buf_size(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
396
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
418
static void match_note(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
422
arg_expr = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
43
static void match_cur_stree(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
445
static void match_dump_related(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
456
static void match_compare(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
463
one = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
464
two = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/check_debug.c
48
static void match_state(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
481
static void match_debug_on(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
486
static void match_debug_check(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
490
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
497
static void match_debug_off(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
503
static void match_local_debug_on(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
508
static void match_local_debug_off(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
513
static void match_debug_db_on(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
518
static void match_debug_db_off(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
523
static void mtag_info(struct expression *expr)
usr/src/tools/smatch/src/check_debug.c
529
expr_to_mtag_offset(expr, &tag, &offset);
usr/src/tools/smatch/src/check_debug.c
530
get_mtag_rl(expr, &rl);
usr/src/tools/smatch/src/check_debug.c
534
static void match_about(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
54
check_arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
541
match_print_implied(fn, expr, NULL);
usr/src/tools/smatch/src/check_debug.c
542
match_buf_size(fn, expr, NULL);
usr/src/tools/smatch/src/check_debug.c
543
match_strlen(fn, expr, NULL);
usr/src/tools/smatch/src/check_debug.c
544
match_real_absolute(fn, expr, NULL);
usr/src/tools/smatch/src/check_debug.c
545
mtag_info(expr);
usr/src/tools/smatch/src/check_debug.c
547
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
561
static void match_intersection(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
567
one = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
568
two = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/check_debug.c
577
static void match_type(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
583
one = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
59
state_arg = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/check_debug.c
631
static void match_print_merge_tree(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
637
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
655
static void match_print_stree_id(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
660
static void match_bits(const char *fn, struct expression *expr, void *_unused)
usr/src/tools/smatch/src/check_debug.c
666
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
675
static void match_mtag(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
682
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
689
static void match_mtag_data_offset(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
696
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
703
static void match_container(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
708
container = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
709
x = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/check_debug.c
719
static void match_expr(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
724
str = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
725
arg = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/check_debug.c
741
static void match_state_count(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
746
static void match_mem(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
758
static void match_exit(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
78
static void match_states(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.c
82
check_arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_debug.c
97
static void match_print_value(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_debug.h
66
static inline void __smatch_bits(long long expr){}
usr/src/tools/smatch/src/check_deref.c
141
static void match_dereferences(struct expression *expr)
usr/src/tools/smatch/src/check_deref.c
143
if (expr->type != EXPR_PREOP)
usr/src/tools/smatch/src/check_deref.c
145
check_dereference(expr->unop);
usr/src/tools/smatch/src/check_deref.c
148
static void match_pointer_as_array(struct expression *expr)
usr/src/tools/smatch/src/check_deref.c
150
if (!is_array(expr))
usr/src/tools/smatch/src/check_deref.c
152
check_dereference(get_array_base(expr));
usr/src/tools/smatch/src/check_deref.c
185
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/check_deref.c
189
if (!expr_is_zero(expr->right))
usr/src/tools/smatch/src/check_deref.c
201
set_state_expr(my_id, expr->left, &null);
usr/src/tools/smatch/src/check_deref.c
204
static void match_assigns_address(struct expression *expr)
usr/src/tools/smatch/src/check_deref.c
208
right = strip_expr(expr->right);
usr/src/tools/smatch/src/check_deref.c
214
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_deref.c
216
if (expr->type == EXPR_ASSIGNMENT) {
usr/src/tools/smatch/src/check_deref.c
217
match_condition(expr->right);
usr/src/tools/smatch/src/check_deref.c
218
match_condition(expr->left);
usr/src/tools/smatch/src/check_deref.c
220
if (!get_state_expr(my_id, expr))
usr/src/tools/smatch/src/check_deref.c
222
set_true_false_states_expr(my_id, expr, &ok, NULL);
usr/src/tools/smatch/src/check_deref.c
241
static void match_assign_returns_null(const char *fn, struct expression *expr, void *_gfp)
usr/src/tools/smatch/src/check_deref.c
246
if (called_with_no_fail(expr->right, gfp_param))
usr/src/tools/smatch/src/check_deref.c
249
set_state_expr(my_id, expr->left, state);
usr/src/tools/smatch/src/check_deref.c
64
static void check_dereference(struct expression *expr)
usr/src/tools/smatch/src/check_deref.c
69
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_deref.c
70
if (is_static(expr))
usr/src/tools/smatch/src/check_deref.c
72
sm = get_sm_state_expr(my_id, expr);
usr/src/tools/smatch/src/check_deref.c
77
if (implied_not_equal(expr, 0))
usr/src/tools/smatch/src/check_deref_check.c
30
static void match_dereference(struct expression *expr)
usr/src/tools/smatch/src/check_deref_check.c
35
if (expr->type != EXPR_PREOP)
usr/src/tools/smatch/src/check_deref_check.c
37
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/check_deref_check.c
38
if (!is_pointer(expr))
usr/src/tools/smatch/src/check_deref_check.c
40
if (implied_not_equal(expr, 0))
usr/src/tools/smatch/src/check_deref_check.c
46
set_state_expr(my_id, expr, &derefed);
usr/src/tools/smatch/src/check_deref_check.c
66
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_deref_check.c
74
name = get_macro_name(expr->pos);
usr/src/tools/smatch/src/check_deref_check.c
79
if (!is_pointer(expr))
usr/src/tools/smatch/src/check_deref_check.c
82
sm = get_sm_state_expr(my_id, expr);
usr/src/tools/smatch/src/check_deref_check.c
87
set_state_expr(my_id, expr, &undefined);
usr/src/tools/smatch/src/check_dereferences_param.c
111
static void match_pointer_as_array(struct expression *expr)
usr/src/tools/smatch/src/check_dereferences_param.c
113
if (!is_array(expr))
usr/src/tools/smatch/src/check_dereferences_param.c
115
check_deref(get_array_base(expr));
usr/src/tools/smatch/src/check_dereferences_param.c
55
static void check_deref(struct expression *expr)
usr/src/tools/smatch/src/check_dereferences_param.c
60
tmp = get_assigned_expr(expr);
usr/src/tools/smatch/src/check_dereferences_param.c
62
expr = tmp;
usr/src/tools/smatch/src/check_dereferences_param.c
63
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_dereferences_param.c
65
if (get_param_num(expr) < 0)
usr/src/tools/smatch/src/check_dereferences_param.c
68
if (param_was_set(expr))
usr/src/tools/smatch/src/check_dereferences_param.c
71
sm = get_sm_state_expr(my_id, expr);
usr/src/tools/smatch/src/check_dereferences_param.c
74
set_state_expr(my_id, expr, &derefed);
usr/src/tools/smatch/src/check_dereferences_param.c
77
static void match_dereference(struct expression *expr)
usr/src/tools/smatch/src/check_dereferences_param.c
79
if (expr->type != EXPR_PREOP)
usr/src/tools/smatch/src/check_dereferences_param.c
81
check_deref(expr->unop);
usr/src/tools/smatch/src/check_dev_queue_xmit.c
60
static void match_symbol(struct expression *expr)
usr/src/tools/smatch/src/check_dev_queue_xmit.c
65
sm = get_sm_state_expr(my_id, expr);
usr/src/tools/smatch/src/check_dev_queue_xmit.c
70
name = expr_to_var(expr);
usr/src/tools/smatch/src/check_dev_queue_xmit.c
75
static void match_kfree_skb(const char *fn, struct expression *expr, void *param)
usr/src/tools/smatch/src/check_dev_queue_xmit.c
79
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_dev_queue_xmit.c
85
static void match_xmit(const char *fn, struct expression *expr, void *param)
usr/src/tools/smatch/src/check_dev_queue_xmit.c
89
arg = get_argument_from_call_expr(expr->args, PTR_INT(param));
usr/src/tools/smatch/src/check_dma_mapping_error.c
33
static void match_assign(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_dma_mapping_error.c
37
if (!get_implied_rl(expr->right, &rl))
usr/src/tools/smatch/src/check_dma_mapping_error.c
41
set_state_expr(my_id, expr->left, &positive);
usr/src/tools/smatch/src/check_dma_mapping_error.c
44
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_dma_mapping_error.c
46
if (!get_state_expr(my_id, expr))
usr/src/tools/smatch/src/check_dma_mapping_error.c
49
set_true_false_states_expr(my_id, expr, NULL, &ok);
usr/src/tools/smatch/src/check_dma_on_stack.c
22
static void match_dma_func(const char *fn, struct expression *expr, void *param)
usr/src/tools/smatch/src/check_dma_on_stack.c
28
arg = get_argument_from_call_expr(expr->args, PTR_INT(param));
usr/src/tools/smatch/src/check_double_checking.c
167
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_double_checking.c
176
if (get_value(expr, &dummy))
usr/src/tools/smatch/src/check_double_checking.c
179
if (get_macro_name(expr->pos))
usr/src/tools/smatch/src/check_double_checking.c
182
state = get_stored_condition(expr);
usr/src/tools/smatch/src/check_double_checking.c
192
if (is_pointer(expr) && implied_condition_true(expr))
usr/src/tools/smatch/src/check_double_checking.c
201
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/check_double_checking.c
204
set_state_expr(my_id, expr, &checked);
usr/src/tools/smatch/src/check_double_checking.c
220
name = expr_to_str(expr);
usr/src/tools/smatch/src/check_double_checking.c
40
static struct expression *strip_condition(struct expression *expr)
usr/src/tools/smatch/src/check_double_checking.c
42
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_double_checking.c
44
if (expr->type == EXPR_PREOP && expr->op == '!')
usr/src/tools/smatch/src/check_double_checking.c
45
return strip_condition(expr->unop);
usr/src/tools/smatch/src/check_double_checking.c
47
if (expr->type == EXPR_COMPARE &&
usr/src/tools/smatch/src/check_double_checking.c
48
(expr->op == SPECIAL_EQUAL ||
usr/src/tools/smatch/src/check_double_checking.c
49
expr->op == SPECIAL_NOTEQUAL)) {
usr/src/tools/smatch/src/check_double_checking.c
50
if (expr_is_zero(expr->left))
usr/src/tools/smatch/src/check_double_checking.c
51
return strip_condition(expr->right);
usr/src/tools/smatch/src/check_double_checking.c
52
if (expr_is_zero(expr->right))
usr/src/tools/smatch/src/check_double_checking.c
53
return strip_condition(expr->left);
usr/src/tools/smatch/src/check_double_checking.c
56
return expr;
usr/src/tools/smatch/src/check_err_ptr.c
26
static void match_err_ptr(struct expression *expr)
usr/src/tools/smatch/src/check_err_ptr.c
28
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_err_ptr.c
29
if (!expr)
usr/src/tools/smatch/src/check_err_ptr.c
31
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/check_err_ptr.c
34
if (expr->fn->type != EXPR_SYMBOL || !expr->fn->symbol)
usr/src/tools/smatch/src/check_err_ptr.c
36
if (!strcmp(expr->fn->symbol->ident->name, "ERR_PTR"))
usr/src/tools/smatch/src/check_err_ptr_deref.c
124
static void match_dereferences(struct expression *expr)
usr/src/tools/smatch/src/check_err_ptr_deref.c
126
if (expr->type != EXPR_PREOP)
usr/src/tools/smatch/src/check_err_ptr_deref.c
128
check_is_err_ptr(expr->unop);
usr/src/tools/smatch/src/check_err_ptr_deref.c
131
static void match_kfree(const char *fn, struct expression *expr, void *_arg_nr)
usr/src/tools/smatch/src/check_err_ptr_deref.c
136
arg = get_argument_from_call_expr(expr->args, arg_nr);
usr/src/tools/smatch/src/check_err_ptr_deref.c
140
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_err_ptr_deref.c
142
if (expr->type == EXPR_ASSIGNMENT) {
usr/src/tools/smatch/src/check_err_ptr_deref.c
143
match_condition(expr->right);
usr/src/tools/smatch/src/check_err_ptr_deref.c
144
match_condition(expr->left);
usr/src/tools/smatch/src/check_err_ptr_deref.c
146
if (!get_state_expr(my_id, expr))
usr/src/tools/smatch/src/check_err_ptr_deref.c
149
set_true_false_states_expr(my_id, expr, NULL, &checked);
usr/src/tools/smatch/src/check_err_ptr_deref.c
173
static void match_err_ptr_positive_const(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_err_ptr_deref.c
178
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_err_ptr_deref.c
186
static void match_err_ptr(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_err_ptr_deref.c
196
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_err_ptr_deref.c
45
static void check_is_err_ptr(struct expression *expr)
usr/src/tools/smatch/src/check_err_ptr_deref.c
50
sm = get_sm_state_expr(my_id, expr);
usr/src/tools/smatch/src/check_err_ptr_deref.c
57
get_absolute_rl(expr, &rl);
usr/src/tools/smatch/src/check_err_ptr_deref.c
65
static void match_returns_err_ptr(const char *fn, struct expression *expr,
usr/src/tools/smatch/src/check_err_ptr_deref.c
68
set_state_expr(my_id, expr->left, &err_ptr);
usr/src/tools/smatch/src/check_expects_err_ptr.c
45
static int get_arg_num(struct expression *expr)
usr/src/tools/smatch/src/check_expects_err_ptr.c
52
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_expects_err_ptr.c
53
if (expr->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/check_expects_err_ptr.c
55
this_arg = expr->symbol;
usr/src/tools/smatch/src/check_expects_err_ptr.c
57
state = get_state_expr(my_id, expr);
usr/src/tools/smatch/src/check_expects_err_ptr.c
71
static void match_is_err(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_expects_err_ptr.c
76
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_free.c
156
static void match_call(struct expression *expr)
usr/src/tools/smatch/src/check_free.c
165
set_ignored_params(expr);
usr/src/tools/smatch/src/check_free.c
168
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/check_free.c
178
if (is_free_func(expr->fn))
usr/src/tools/smatch/src/check_free.c
187
static void match_return(struct expression *expr)
usr/src/tools/smatch/src/check_free.c
196
if (!expr)
usr/src/tools/smatch/src/check_free.c
198
if (!is_freed(expr))
usr/src/tools/smatch/src/check_free.c
201
name = expr_to_var(expr);
usr/src/tools/smatch/src/check_free.c
203
set_state_expr(my_id, expr, &ok);
usr/src/tools/smatch/src/check_free.c
207
static void match_free(const char *fn, struct expression *expr, void *param)
usr/src/tools/smatch/src/check_free.c
214
arg = get_argument_from_call_expr(expr->args, PTR_INT(param));
usr/src/tools/smatch/src/check_free.c
266
int parent_is_free(struct expression *expr)
usr/src/tools/smatch/src/check_free.c
272
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_free.c
273
var = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/check_free.c
45
static int is_freed(struct expression *expr)
usr/src/tools/smatch/src/check_free.c
49
sm = get_sm_state_expr(my_id, expr);
usr/src/tools/smatch/src/check_free.c
55
static void match_symbol(struct expression *expr)
usr/src/tools/smatch/src/check_free.c
65
parent = expr_get_parent_expr(expr);
usr/src/tools/smatch/src/check_free.c
71
if (!is_freed(expr))
usr/src/tools/smatch/src/check_free.c
73
name = expr_to_var(expr);
usr/src/tools/smatch/src/check_free.c
78
static void match_dereferences(struct expression *expr)
usr/src/tools/smatch/src/check_free.c
85
if (expr->type != EXPR_PREOP)
usr/src/tools/smatch/src/check_free.c
91
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/check_free.c
92
if (!is_freed(expr))
usr/src/tools/smatch/src/check_free.c
94
name = expr_to_var(expr);
usr/src/tools/smatch/src/check_free.c
96
set_state_expr(my_id, expr, &ok);
usr/src/tools/smatch/src/check_free_strict.c
107
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/check_free_strict.c
108
if (!is_freed(expr))
usr/src/tools/smatch/src/check_free_strict.c
110
name = expr_to_var(expr);
usr/src/tools/smatch/src/check_free_strict.c
112
set_state_expr(my_id, expr, &ok);
usr/src/tools/smatch/src/check_free_strict.c
172
static void match_call(struct expression *expr)
usr/src/tools/smatch/src/check_free_strict.c
181
set_ignored_params(expr);
usr/src/tools/smatch/src/check_free_strict.c
184
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/check_free_strict.c
194
if (is_free_func(expr->fn))
usr/src/tools/smatch/src/check_free_strict.c
203
static void match_return(struct expression *expr)
usr/src/tools/smatch/src/check_free_strict.c
210
if (!expr)
usr/src/tools/smatch/src/check_free_strict.c
212
if (!is_freed(expr))
usr/src/tools/smatch/src/check_free_strict.c
215
name = expr_to_var(expr);
usr/src/tools/smatch/src/check_free_strict.c
217
set_state_expr(my_id, expr, &ok);
usr/src/tools/smatch/src/check_free_strict.c
221
static void match_free(const char *fn, struct expression *expr, void *param)
usr/src/tools/smatch/src/check_free_strict.c
228
arg = get_argument_from_call_expr(expr->args, PTR_INT(param));
usr/src/tools/smatch/src/check_free_strict.c
240
static void set_param_freed(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/check_free_strict.c
247
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/check_free_strict.c
248
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/check_free_strict.c
249
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/check_free_strict.c
252
arg = get_argument_from_call_expr(expr->args, param);
usr/src/tools/smatch/src/check_free_strict.c
295
int parent_is_free_strict(struct expression *expr)
usr/src/tools/smatch/src/check_free_strict.c
301
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_free_strict.c
302
var = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/check_free_strict.c
62
static int is_freed(struct expression *expr)
usr/src/tools/smatch/src/check_free_strict.c
66
sm = get_sm_state_expr(my_id, expr);
usr/src/tools/smatch/src/check_free_strict.c
72
static void match_symbol(struct expression *expr)
usr/src/tools/smatch/src/check_free_strict.c
82
parent = expr_get_parent_expr(expr);
usr/src/tools/smatch/src/check_free_strict.c
88
if (!is_freed(expr))
usr/src/tools/smatch/src/check_free_strict.c
90
name = expr_to_var(expr);
usr/src/tools/smatch/src/check_free_strict.c
95
static void match_dereferences(struct expression *expr)
usr/src/tools/smatch/src/check_free_strict.c
99
if (expr->type != EXPR_PREOP)
usr/src/tools/smatch/src/check_freeing_devm.c
24
static void match_assign(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_freeing_devm.c
26
set_state_expr(my_id, expr->left, &devm);
usr/src/tools/smatch/src/check_freeing_devm.c
29
static void match_free_func(const char *fn, struct expression *expr, void *_arg)
usr/src/tools/smatch/src/check_freeing_devm.c
35
arg_expr = get_argument_from_call_expr(expr->args, arg);
usr/src/tools/smatch/src/check_freeing_null.c
22
static void match_free(const char *fn, struct expression *expr, void *data)
usr/src/tools/smatch/src/check_freeing_null.c
28
arg_expr = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_frees_argument.c
51
static void match_kfree(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_frees_argument.c
57
tmp = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_frees_param.c
38
static void freed_variable(struct expression *expr)
usr/src/tools/smatch/src/check_frees_param.c
42
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_frees_param.c
43
if (get_param_num(expr) < 0)
usr/src/tools/smatch/src/check_frees_param.c
46
sm = get_sm_state_expr(my_id, expr);
usr/src/tools/smatch/src/check_frees_param.c
49
set_state_expr(my_id, expr, &freed);
usr/src/tools/smatch/src/check_frees_param.c
52
static void match_free(const char *fn, struct expression *expr, void *param)
usr/src/tools/smatch/src/check_frees_param.c
56
arg = get_argument_from_call_expr(expr->args, PTR_INT(param));
usr/src/tools/smatch/src/check_frees_param_strict.c
100
arg = get_argument_from_call_expr(expr->args, param);
usr/src/tools/smatch/src/check_frees_param_strict.c
117
static void param_freed_info(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/check_frees_param_strict.c
47
static int counter_was_inced(struct expression *expr)
usr/src/tools/smatch/src/check_frees_param_strict.c
54
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/check_frees_param_strict.c
65
static void match_free(const char *fn, struct expression *expr, void *param)
usr/src/tools/smatch/src/check_frees_param_strict.c
70
arg = get_argument_from_call_expr(expr->args, PTR_INT(param));
usr/src/tools/smatch/src/check_frees_param_strict.c
89
static void set_param_freed(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/check_frees_param_strict.c
95
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/check_frees_param_strict.c
96
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/check_frees_param_strict.c
97
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/check_get_user_overflow.c
101
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/check_get_user_overflow.c
105
name = get_macro_name(expr->pos);
usr/src/tools/smatch/src/check_get_user_overflow.c
107
match_normal_assign(expr);
usr/src/tools/smatch/src/check_get_user_overflow.c
110
name = expr_to_var(expr->right);
usr/src/tools/smatch/src/check_get_user_overflow.c
113
set_state_expr(my_max_id, expr->left, &user_data);
usr/src/tools/smatch/src/check_get_user_overflow.c
114
set_state_expr(my_min_id, expr->left, &user_data);
usr/src/tools/smatch/src/check_get_user_overflow.c
119
static void check_expr(struct expression *expr)
usr/src/tools/smatch/src/check_get_user_overflow.c
128
sm = get_sm_state_expr(my_max_id, expr);
usr/src/tools/smatch/src/check_get_user_overflow.c
130
get_absolute_max(expr, &max);
usr/src/tools/smatch/src/check_get_user_overflow.c
135
sm = get_sm_state_expr(my_min_id, expr);
usr/src/tools/smatch/src/check_get_user_overflow.c
137
get_absolute_min(expr, &sval);
usr/src/tools/smatch/src/check_get_user_overflow.c
145
name = expr_to_var_sym(expr, NULL);
usr/src/tools/smatch/src/check_get_user_overflow.c
154
set_state_expr(my_max_id, expr, &capped);
usr/src/tools/smatch/src/check_get_user_overflow.c
155
set_state_expr(my_min_id, expr, &capped);
usr/src/tools/smatch/src/check_get_user_overflow.c
158
static void match_binop(struct expression *expr)
usr/src/tools/smatch/src/check_get_user_overflow.c
160
if (expr->op == '^')
usr/src/tools/smatch/src/check_get_user_overflow.c
162
if (expr->op == '&')
usr/src/tools/smatch/src/check_get_user_overflow.c
164
if (expr->op == '|')
usr/src/tools/smatch/src/check_get_user_overflow.c
166
if (expr->op == SPECIAL_RIGHTSHIFT)
usr/src/tools/smatch/src/check_get_user_overflow.c
168
if (expr->op == SPECIAL_LEFTSHIFT)
usr/src/tools/smatch/src/check_get_user_overflow.c
171
check_expr(expr->left);
usr/src/tools/smatch/src/check_get_user_overflow.c
172
check_expr(expr->right);
usr/src/tools/smatch/src/check_get_user_overflow.c
33
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_get_user_overflow.c
45
if (expr->type != EXPR_COMPARE)
usr/src/tools/smatch/src/check_get_user_overflow.c
48
switch (expr->op) {
usr/src/tools/smatch/src/check_get_user_overflow.c
83
if (get_state_expr(my_max_id, expr->left)) {
usr/src/tools/smatch/src/check_get_user_overflow.c
84
set_true_false_states_expr(my_max_id, expr->left, left_max_true, left_max_false);
usr/src/tools/smatch/src/check_get_user_overflow.c
85
set_true_false_states_expr(my_min_id, expr->left, left_min_true, left_min_false);
usr/src/tools/smatch/src/check_get_user_overflow.c
87
if (get_state_expr(my_max_id, expr->right)) {
usr/src/tools/smatch/src/check_get_user_overflow.c
88
set_true_false_states_expr(my_max_id, expr->right, right_max_true, right_max_false);
usr/src/tools/smatch/src/check_get_user_overflow.c
89
set_true_false_states_expr(my_min_id, expr->right, right_min_true, right_min_false);
usr/src/tools/smatch/src/check_get_user_overflow.c
93
static void match_normal_assign(struct expression *expr)
usr/src/tools/smatch/src/check_get_user_overflow.c
95
if (get_state_expr(my_max_id, expr->left)) {
usr/src/tools/smatch/src/check_get_user_overflow.c
96
set_state_expr(my_max_id, expr->left, &capped);
usr/src/tools/smatch/src/check_get_user_overflow.c
97
set_state_expr(my_min_id, expr->left, &capped);
usr/src/tools/smatch/src/check_gfp_dma.c
29
static void match_alloc(const char *fn, struct expression *expr, void *_arg)
usr/src/tools/smatch/src/check_gfp_dma.c
35
arg_expr = get_argument_from_call_expr(expr->args, arg_nr);
usr/src/tools/smatch/src/check_held_dev.c
36
static void match_dev_hold(const char *fn, struct expression *expr, void *data)
usr/src/tools/smatch/src/check_held_dev.c
40
arg_expr = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_held_dev.c
44
static void match_dev_put(const char *fn, struct expression *expr, void *data)
usr/src/tools/smatch/src/check_held_dev.c
48
arg_expr = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_held_dev.c
80
static void print_returns_held(struct expression *expr)
usr/src/tools/smatch/src/check_held_dev.c
86
sm = get_sm_state_expr(my_id, expr);
usr/src/tools/smatch/src/check_implicit_dependencies.c
146
static void print_read_member_type(struct expression *expr)
usr/src/tools/smatch/src/check_implicit_dependencies.c
152
member = get_member_name(expr);
usr/src/tools/smatch/src/check_implicit_dependencies.c
156
sym = get_type(expr->deref);
usr/src/tools/smatch/src/check_implicit_dependencies.c
157
member_sym = get_type(expr);
usr/src/tools/smatch/src/check_implicit_dependencies.c
181
static void print_write_member_type(struct expression *expr)
usr/src/tools/smatch/src/check_implicit_dependencies.c
187
member = get_member_name(expr);
usr/src/tools/smatch/src/check_implicit_dependencies.c
191
sym = get_type(expr->deref);
usr/src/tools/smatch/src/check_implicit_dependencies.c
192
member_sym = get_type(expr);
usr/src/tools/smatch/src/check_implicit_dependencies.c
213
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_implicit_dependencies.c
222
if (expr->type == EXPR_COMPARE ||
usr/src/tools/smatch/src/check_implicit_dependencies.c
223
expr->type == EXPR_BINOP ||
usr/src/tools/smatch/src/check_implicit_dependencies.c
224
expr->type == EXPR_LOGICAL ||
usr/src/tools/smatch/src/check_implicit_dependencies.c
225
expr->type == EXPR_ASSIGNMENT ||
usr/src/tools/smatch/src/check_implicit_dependencies.c
226
expr->type == EXPR_COMMA) {
usr/src/tools/smatch/src/check_implicit_dependencies.c
227
match_condition(expr->left);
usr/src/tools/smatch/src/check_implicit_dependencies.c
228
match_condition(expr->right);
usr/src/tools/smatch/src/check_implicit_dependencies.c
232
if (expr->type == EXPR_CALL) {
usr/src/tools/smatch/src/check_implicit_dependencies.c
233
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/check_implicit_dependencies.c
241
print_read_member_type(expr);
usr/src/tools/smatch/src/check_implicit_dependencies.c
249
static void match_call_info(struct expression *expr)
usr/src/tools/smatch/src/check_implicit_dependencies.c
260
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/check_implicit_dependencies.c
270
static void match_assign_value(struct expression *expr)
usr/src/tools/smatch/src/check_implicit_dependencies.c
274
print_write_member_type(expr->left);
usr/src/tools/smatch/src/check_implicit_dependencies.c
277
static void unop_expr(struct expression *expr)
usr/src/tools/smatch/src/check_implicit_dependencies.c
282
if (expr->op == SPECIAL_ADD_ASSIGN || expr->op == SPECIAL_INCREMENT ||
usr/src/tools/smatch/src/check_implicit_dependencies.c
283
expr->op == SPECIAL_SUB_ASSIGN || expr->op == SPECIAL_DECREMENT ||
usr/src/tools/smatch/src/check_implicit_dependencies.c
284
expr->op == SPECIAL_MUL_ASSIGN || expr->op == SPECIAL_DIV_ASSIGN ||
usr/src/tools/smatch/src/check_implicit_dependencies.c
285
expr->op == SPECIAL_MOD_ASSIGN || expr->op == SPECIAL_AND_ASSIGN ||
usr/src/tools/smatch/src/check_implicit_dependencies.c
286
expr->op == SPECIAL_OR_ASSIGN || expr->op == SPECIAL_XOR_ASSIGN ||
usr/src/tools/smatch/src/check_implicit_dependencies.c
287
expr->op == SPECIAL_SHL_ASSIGN || expr->op == SPECIAL_SHR_ASSIGN)
usr/src/tools/smatch/src/check_implicit_dependencies.c
288
print_write_member_type(strip_expr(expr->unop));
usr/src/tools/smatch/src/check_implicit_dependencies_tester.c
102
member = get_member_name(expr);
usr/src/tools/smatch/src/check_implicit_dependencies_tester.c
111
static void match_condition(struct expression *expr) {
usr/src/tools/smatch/src/check_implicit_dependencies_tester.c
137
if (expr->type == EXPR_COMPARE || expr->type == EXPR_BINOP
usr/src/tools/smatch/src/check_implicit_dependencies_tester.c
138
|| expr->type == EXPR_LOGICAL
usr/src/tools/smatch/src/check_implicit_dependencies_tester.c
139
|| expr->type == EXPR_ASSIGNMENT
usr/src/tools/smatch/src/check_implicit_dependencies_tester.c
140
|| expr->type == EXPR_COMMA) {
usr/src/tools/smatch/src/check_implicit_dependencies_tester.c
141
match_condition(expr->left);
usr/src/tools/smatch/src/check_implicit_dependencies_tester.c
142
match_condition(expr->right);
usr/src/tools/smatch/src/check_implicit_dependencies_tester.c
145
print_member_type(expr);
usr/src/tools/smatch/src/check_implicit_dependencies_tester.c
149
static void match_function_call(struct expression *expr) {
usr/src/tools/smatch/src/check_implicit_dependencies_tester.c
153
printf("function call %s\n", expression_type_name(expr->type));
usr/src/tools/smatch/src/check_implicit_dependencies_tester.c
98
static void print_member_type(struct expression *expr)
usr/src/tools/smatch/src/check_impossible_mask.c
111
str = expr_to_str(expr);
usr/src/tools/smatch/src/check_impossible_mask.c
113
expr->op == SPECIAL_EQUAL ? "false" : "true");
usr/src/tools/smatch/src/check_impossible_mask.c
23
static unsigned long long find_possible_bits(struct expression *expr)
usr/src/tools/smatch/src/check_impossible_mask.c
30
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_impossible_mask.c
32
if (get_implied_value(expr, &sval))
usr/src/tools/smatch/src/check_impossible_mask.c
35
if (expr->type == EXPR_BINOP && (expr->op == '&' || expr->op == '|')) {
usr/src/tools/smatch/src/check_impossible_mask.c
38
left = find_possible_bits(expr->left);
usr/src/tools/smatch/src/check_impossible_mask.c
41
right = find_possible_bits(expr->right);
usr/src/tools/smatch/src/check_impossible_mask.c
45
if (expr->op == '&')
usr/src/tools/smatch/src/check_impossible_mask.c
50
get_absolute_max(expr, &sval);
usr/src/tools/smatch/src/check_impossible_mask.c
64
static unsigned long long get_possible_bits(struct expression *expr)
usr/src/tools/smatch/src/check_impossible_mask.c
68
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_impossible_mask.c
69
if (expr->type != EXPR_BINOP)
usr/src/tools/smatch/src/check_impossible_mask.c
71
if (expr->op != '&')
usr/src/tools/smatch/src/check_impossible_mask.c
73
if (!get_implied_value(expr->right, &sval))
usr/src/tools/smatch/src/check_impossible_mask.c
79
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_impossible_mask.c
86
type = get_type(expr);
usr/src/tools/smatch/src/check_impossible_mask.c
90
if (expr->type != EXPR_COMPARE)
usr/src/tools/smatch/src/check_impossible_mask.c
92
if (expr->op != SPECIAL_EQUAL && expr->op != SPECIAL_NOTEQUAL)
usr/src/tools/smatch/src/check_impossible_mask.c
95
if (!get_value(expr->right, &sval))
usr/src/tools/smatch/src/check_impossible_mask.c
99
left_mask = get_possible_bits(expr->left);
usr/src/tools/smatch/src/check_index_overflow.c
163
static int is_subtract(struct expression *expr)
usr/src/tools/smatch/src/check_index_overflow.c
168
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_index_overflow.c
169
while ((tmp = get_assigned_expr(expr))) {
usr/src/tools/smatch/src/check_index_overflow.c
170
expr = strip_expr(tmp);
usr/src/tools/smatch/src/check_index_overflow.c
175
if (expr->type == EXPR_BINOP && expr->op == '-')
usr/src/tools/smatch/src/check_index_overflow.c
205
static int should_warn(struct expression *expr)
usr/src/tools/smatch/src/check_index_overflow.c
215
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_index_overflow.c
216
if (!is_array(expr))
usr/src/tools/smatch/src/check_index_overflow.c
221
array_expr = get_array_base(expr);
usr/src/tools/smatch/src/check_index_overflow.c
226
offset = get_array_offset(expr);
usr/src/tools/smatch/src/check_index_overflow.c
262
static void array_check(struct expression *expr)
usr/src/tools/smatch/src/check_index_overflow.c
276
if (!should_warn(expr))
usr/src/tools/smatch/src/check_index_overflow.c
279
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_index_overflow.c
280
array_expr = get_array_base(expr);
usr/src/tools/smatch/src/check_index_overflow.c
282
offset = get_array_offset(expr);
usr/src/tools/smatch/src/check_index_overflow.c
293
if (!should_warn(expr)) {
usr/src/tools/smatch/src/check_index_overflow.c
338
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_index_overflow.c
342
if (expr->type != EXPR_COMPARE)
usr/src/tools/smatch/src/check_index_overflow.c
344
if (expr->op != '<' && expr->op != SPECIAL_UNSIGNED_LT)
usr/src/tools/smatch/src/check_index_overflow.c
347
stmt = expr_get_parent_stmt(expr);
usr/src/tools/smatch/src/check_index_overflow.c
351
set_true_false_states_expr(loop_id, expr->left, NULL, &loop_end);
usr/src/tools/smatch/src/check_index_overflow.c
47
static int fake_get_hard_max(struct expression *expr, sval_t *sval)
usr/src/tools/smatch/src/check_index_overflow.c
51
if (!get_hard_max(expr, sval))
usr/src/tools/smatch/src/check_index_overflow.c
63
if (get_implied_rl(expr, &implied_rl) &&
usr/src/tools/smatch/src/check_index_overflow.c
69
static int get_the_max(struct expression *expr, sval_t *sval)
usr/src/tools/smatch/src/check_index_overflow.c
73
if (get_hard_max(expr, sval)) {
usr/src/tools/smatch/src/check_index_overflow.c
85
if (get_implied_rl(expr, &implied_rl) &&
usr/src/tools/smatch/src/check_index_overflow.c
95
if (!get_user_rl(expr, &rl))
usr/src/tools/smatch/src/check_index_overflow.c
98
is_capped(expr))
usr/src/tools/smatch/src/check_info_leak.c
26
static char *my_get_variable(struct expression *expr, struct symbol **sym)
usr/src/tools/smatch/src/check_info_leak.c
30
name = expr_to_var_sym(expr, sym);
usr/src/tools/smatch/src/check_info_leak.c
38
static void match_kmalloc(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_info_leak.c
43
name = my_get_variable(expr->left, &sym);
usr/src/tools/smatch/src/check_info_leak.c
49
static void match_strcpy(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_info_leak.c
55
dest = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_info_leak.c
64
static void match_copy_to_user(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_info_leak.c
71
src = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/check_input_free_device.c
32
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/check_input_free_device.c
34
if (get_state_expr(my_id, expr->left)) {
usr/src/tools/smatch/src/check_input_free_device.c
35
set_state_expr(my_id, expr->left, &ok);
usr/src/tools/smatch/src/check_input_free_device.c
39
static void match_input_unregister(const char *fn, struct expression *expr, void *data)
usr/src/tools/smatch/src/check_input_free_device.c
43
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_input_free_device.c
47
static void match_input_free(const char *fn, struct expression *expr, void *data)
usr/src/tools/smatch/src/check_input_free_device.c
52
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_kernel.c
165
static void match_container_of_macro(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_kernel.c
167
set_extra_expr_mod(expr->left, alloc_estate_range(valid_ptr_min_sval, valid_ptr_max_sval));
usr/src/tools/smatch/src/check_kernel.c
170
static void match_container_of(struct expression *expr)
usr/src/tools/smatch/src/check_kernel.c
172
struct expression *right = expr->right;
usr/src/tools/smatch/src/check_kernel.c
202
set_extra_expr_mod(expr->left, alloc_estate_range(valid_ptr_min_sval, valid_ptr_max_sval));
usr/src/tools/smatch/src/check_kernel.c
334
static struct expression *get_val_expr(struct expression *expr)
usr/src/tools/smatch/src/check_kernel.c
338
if (expr->type != EXPR_DEREF)
usr/src/tools/smatch/src/check_kernel.c
340
expr = expr->deref;
usr/src/tools/smatch/src/check_kernel.c
341
if (expr->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/check_kernel.c
343
if (strcmp(expr->symbol_name->name, "__u") != 0)
usr/src/tools/smatch/src/check_kernel.c
345
sym = get_base_type(expr->symbol);
usr/src/tools/smatch/src/check_kernel.c
349
return member_expression(expr, '.', val->ident);
usr/src/tools/smatch/src/check_kernel_printf.c
928
static int unknown_format(struct expression *expr)
usr/src/tools/smatch/src/check_kernel_printf.c
932
slist = get_strings(expr);
usr/src/tools/smatch/src/check_kernel_printf.c
968
is_cast_expr(struct expression *expr)
usr/src/tools/smatch/src/check_kernel_printf.c
970
if (!expr)
usr/src/tools/smatch/src/check_kernel_printf.c
973
switch (expr->type) {
usr/src/tools/smatch/src/check_kmalloc_to_bugon.c
24
static int is_kmalloc_call(struct expression *expr)
usr/src/tools/smatch/src/check_kmalloc_to_bugon.c
26
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/check_kmalloc_to_bugon.c
28
if (expr->fn->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/check_kmalloc_to_bugon.c
30
if (!strcmp(expr->fn->symbol_name->name, "kmalloc"))
usr/src/tools/smatch/src/check_kmalloc_to_bugon.c
32
if (!strcmp(expr->fn->symbol_name->name, "kzalloc"))
usr/src/tools/smatch/src/check_kmalloc_to_bugon.c
37
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_kmalloc_to_bugon.c
44
macro = get_macro_name(expr->pos);
usr/src/tools/smatch/src/check_kmalloc_to_bugon.c
47
state = get_state_expr(check_assigned_expr_id, expr);
usr/src/tools/smatch/src/check_kmalloc_to_bugon.c
54
name = expr_to_var(expr);
usr/src/tools/smatch/src/check_kmalloc_wrong_size.c
48
static void match_alloc(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_kmalloc_wrong_size.c
50
struct expression *call = strip_expr(expr->right);
usr/src/tools/smatch/src/check_kmalloc_wrong_size.c
54
ptr_size = get_data_size(expr->left);
usr/src/tools/smatch/src/check_kmalloc_wrong_size.c
62
if (expr->left->type == EXPR_SIZEOF)
usr/src/tools/smatch/src/check_kmalloc_wrong_size.c
64
if (expr->right->type == EXPR_SIZEOF)
usr/src/tools/smatch/src/check_kmalloc_wrong_size.c
68
static void match_calloc(const char *fn, struct expression *expr, void *_arg_nr)
usr/src/tools/smatch/src/check_kmalloc_wrong_size.c
71
struct expression *call = strip_expr(expr->right);
usr/src/tools/smatch/src/check_kmalloc_wrong_size.c
75
ptr_size = get_data_size(expr->left);
usr/src/tools/smatch/src/check_kunmap.c
28
struct expression *expr = (struct expression *)data;
usr/src/tools/smatch/src/check_kunmap.c
31
if (!expr)
usr/src/tools/smatch/src/check_kunmap.c
33
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/check_kunmap.c
35
fn = expr_to_var(expr->fn);
usr/src/tools/smatch/src/check_kunmap.c
43
static void match_kmap_atomic(const char *fn, struct expression *expr, void *data)
usr/src/tools/smatch/src/check_kunmap.c
47
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_kunmap.c
51
static void match_kunmap_atomic(const char *fn, struct expression *expr, void *data)
usr/src/tools/smatch/src/check_kunmap.c
56
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_kunmap.c
64
static void match_kunmap(const char *fn, struct expression *expr, void *data)
usr/src/tools/smatch/src/check_kunmap.c
70
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_leaks.c
100
static int is_param(struct expression *expr)
usr/src/tools/smatch/src/check_leaks.c
107
name = expr_to_str_sym(expr, &sym);
usr/src/tools/smatch/src/check_leaks.c
122
static void match_alloc(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_leaks.c
124
if (!is_local(expr->left))
usr/src/tools/smatch/src/check_leaks.c
126
if (is_param(expr->left))
usr/src/tools/smatch/src/check_leaks.c
128
if (expr->left->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/check_leaks.c
130
set_state_expr(my_id, expr->left, &allocated);
usr/src/tools/smatch/src/check_leaks.c
133
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_leaks.c
137
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_leaks.c
139
switch (expr->type) {
usr/src/tools/smatch/src/check_leaks.c
143
sm = get_sm_state_expr(my_id, expr);
usr/src/tools/smatch/src/check_leaks.c
145
set_true_false_states_expr(my_id, expr, NULL, &ok);
usr/src/tools/smatch/src/check_leaks.c
149
match_condition(expr->left);
usr/src/tools/smatch/src/check_leaks.c
156
static void set_parent(struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/check_leaks.c
161
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_leaks.c
162
if (!expr)
usr/src/tools/smatch/src/check_leaks.c
164
if (expr->type == EXPR_CONDITIONAL ||
usr/src/tools/smatch/src/check_leaks.c
165
expr->type == EXPR_SELECT) {
usr/src/tools/smatch/src/check_leaks.c
166
set_parent(expr->cond_true, state);
usr/src/tools/smatch/src/check_leaks.c
167
set_parent(expr->cond_false, state);
usr/src/tools/smatch/src/check_leaks.c
171
name = get_parent_from_expr(expr, &sym);
usr/src/tools/smatch/src/check_leaks.c
181
static void match_function_call(struct expression *expr)
usr/src/tools/smatch/src/check_leaks.c
185
FOR_EACH_PTR(expr->args, tmp) {
usr/src/tools/smatch/src/check_leaks.c
190
static void warn_if_allocated(struct expression *expr)
usr/src/tools/smatch/src/check_leaks.c
196
if (get_implied_value(expr, &sval) && sval.value == 0)
usr/src/tools/smatch/src/check_leaks.c
199
sm = get_sm_state_expr(my_id, expr);
usr/src/tools/smatch/src/check_leaks.c
205
name = expr_to_var(expr);
usr/src/tools/smatch/src/check_leaks.c
210
set_state_expr(my_id, expr, &ok);
usr/src/tools/smatch/src/check_leaks.c
213
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/check_leaks.c
217
right = expr->right;
usr/src/tools/smatch/src/check_leaks.c
222
warn_if_allocated(expr->left);
usr/src/tools/smatch/src/check_leaks.c
47
static void set_parent(struct expression *expr, struct smatch_state *state);
usr/src/tools/smatch/src/check_leaks.c
68
static char *get_parent_from_expr(struct expression *expr, struct symbol **sym)
usr/src/tools/smatch/src/check_leaks.c
72
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_leaks.c
74
name = expr_to_str_sym(expr, sym);
usr/src/tools/smatch/src/check_leaks.c
83
static int is_local(struct expression *expr)
usr/src/tools/smatch/src/check_leaks.c
89
name = expr_to_str_sym(expr, &sym);
usr/src/tools/smatch/src/check_locking.c
1110
static void db_param_locked_unlocked(struct expression *expr, int param, char *key, char *value, enum action lock_unlock)
usr/src/tools/smatch/src/check_locking.c
1116
call = expr;
usr/src/tools/smatch/src/check_locking.c
1131
if (expr->type != EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/check_locking.c
1133
name = get_variable_from_key(expr->left, key, &sym);
usr/src/tools/smatch/src/check_locking.c
1155
static void db_param_locked(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/check_locking.c
1157
db_param_locked_unlocked(expr, param, key, value, LOCK);
usr/src/tools/smatch/src/check_locking.c
1160
static void db_param_unlocked(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/check_locking.c
1162
db_param_locked_unlocked(expr, param, key, value, UNLOCK);
usr/src/tools/smatch/src/check_locking.c
1165
static void db_param_restore(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/check_locking.c
1167
db_param_locked_unlocked(expr, param, key, value, RESTORE);
usr/src/tools/smatch/src/check_locking.c
1190
static void match_call_info(struct expression *expr)
usr/src/tools/smatch/src/check_locking.c
1198
param = get_caller_param_lock_name(expr, sm, ¶m_name);
usr/src/tools/smatch/src/check_locking.c
1206
sql_insert_caller_info(expr, locked_type, param, param_name, "xxx type");
usr/src/tools/smatch/src/check_locking.c
1211
static void match_save_states(struct expression *expr)
usr/src/tools/smatch/src/check_locking.c
1217
static void match_restore_states(struct expression *expr)
usr/src/tools/smatch/src/check_locking.c
441
static struct expression *remove_spinlock_check(struct expression *expr)
usr/src/tools/smatch/src/check_locking.c
443
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/check_locking.c
444
return expr;
usr/src/tools/smatch/src/check_locking.c
445
if (expr->fn->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/check_locking.c
446
return expr;
usr/src/tools/smatch/src/check_locking.c
447
if (strcmp(expr->fn->symbol_name->name, "spinlock_check"))
usr/src/tools/smatch/src/check_locking.c
448
return expr;
usr/src/tools/smatch/src/check_locking.c
449
expr = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_locking.c
450
return expr;
usr/src/tools/smatch/src/check_locking.c
462
static char *lock_to_name_sym(struct expression *expr, struct symbol **sym)
usr/src/tools/smatch/src/check_locking.c
464
expr = remove_spinlock_check(expr);
usr/src/tools/smatch/src/check_locking.c
465
expr = filter_kernel_args(expr);
usr/src/tools/smatch/src/check_locking.c
466
return expr_to_str_sym(expr, sym);
usr/src/tools/smatch/src/check_locking.c
469
static char *get_full_name(struct expression *expr, int index, struct symbol **sym)
usr/src/tools/smatch/src/check_locking.c
476
return expr_to_var_sym(strip_expr(expr->left), sym);
usr/src/tools/smatch/src/check_locking.c
480
arg = get_argument_from_call_expr(expr->args, lock->arg);
usr/src/tools/smatch/src/check_locking.c
637
struct expression *expr, *arg;
usr/src/tools/smatch/src/check_locking.c
646
expr = last_ptr_list((struct ptr_list *)big_expression_stack);
usr/src/tools/smatch/src/check_locking.c
647
while (expr && expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/check_locking.c
648
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/check_locking.c
649
if (!expr || expr->type != EXPR_CALL)
usr/src/tools/smatch/src/check_locking.c
652
macro = get_macro_name(expr->pos);
usr/src/tools/smatch/src/check_locking.c
661
arg = get_argument_from_call_expr(expr->args, info->param);
usr/src/tools/smatch/src/check_locking.c
670
if (sm && sm->line != expr->pos.line)
usr/src/tools/smatch/src/check_locking.c
676
if (sm && sm->line != expr->pos.line)
usr/src/tools/smatch/src/check_locking.c
793
static void match_returns_locked(const char *fn, struct expression *expr,
usr/src/tools/smatch/src/check_locking.c
803
full_name = get_full_name(expr, index, &sym);
usr/src/tools/smatch/src/check_locking.c
809
static void match_lock_unlock(const char *fn, struct expression *expr, void *_index)
usr/src/tools/smatch/src/check_locking.c
816
full_name = get_full_name(expr, index, &sym);
usr/src/tools/smatch/src/check_locking.c
843
static int get_param_lock_name(struct sm_state *sm, struct expression *expr,
usr/src/tools/smatch/src/check_locking.c
861
if (expr) {
usr/src/tools/smatch/src/check_locking.c
865
ret_str = expr_to_str_sym(expr, &ret_sym);
usr/src/tools/smatch/src/check_locking.c
909
static void match_return_info(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/check_locking.c
921
param = get_param_lock_name(sm, expr, ¶m_name);
usr/src/tools/smatch/src/check_locking.c
983
static bool func_in_lock_table(struct expression *expr)
usr/src/tools/smatch/src/check_locking.c
985
if (expr->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/check_locking.c
987
return sym_in_lock_table(expr->symbol);
usr/src/tools/smatch/src/check_logical_instead_of_bitwise.c
23
static int is_bitshift(struct expression *expr)
usr/src/tools/smatch/src/check_logical_instead_of_bitwise.c
25
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_logical_instead_of_bitwise.c
27
if (expr->type != EXPR_BINOP)
usr/src/tools/smatch/src/check_logical_instead_of_bitwise.c
29
if (expr->op == SPECIAL_LEFTSHIFT)
usr/src/tools/smatch/src/check_logical_instead_of_bitwise.c
34
static void match_logic(struct expression *expr)
usr/src/tools/smatch/src/check_logical_instead_of_bitwise.c
38
if (expr->type != EXPR_LOGICAL)
usr/src/tools/smatch/src/check_logical_instead_of_bitwise.c
41
if (get_macro_name(expr->pos))
usr/src/tools/smatch/src/check_logical_instead_of_bitwise.c
44
if (!get_value(expr->right, &sval)) {
usr/src/tools/smatch/src/check_logical_instead_of_bitwise.c
45
if (!get_value(expr->left, &sval))
usr/src/tools/smatch/src/check_logical_instead_of_bitwise.c
55
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/check_logical_instead_of_bitwise.c
59
right = strip_expr(expr->right);
usr/src/tools/smatch/src/check_macro_side_effects.c
106
expr = strip_expr(raw_expr->unop);
usr/src/tools/smatch/src/check_macro_side_effects.c
108
if (defined_inside_macro(expr->pos, expr))
usr/src/tools/smatch/src/check_macro_side_effects.c
114
if (!affected_inside_macro_before(expr)) {
usr/src/tools/smatch/src/check_macro_side_effects.c
115
set_state_expr(my_id, expr, alloc_my_state(expr));
usr/src/tools/smatch/src/check_macro_side_effects.c
116
old_pos = expr->pos;
usr/src/tools/smatch/src/check_macro_side_effects.c
120
if (!positions_eq(old_pos, expr->pos))
usr/src/tools/smatch/src/check_macro_side_effects.c
28
static struct smatch_state *alloc_my_state(struct expression *expr)
usr/src/tools/smatch/src/check_macro_side_effects.c
33
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_macro_side_effects.c
34
name = expr_to_str(expr);
usr/src/tools/smatch/src/check_macro_side_effects.c
41
state->data = expr;
usr/src/tools/smatch/src/check_macro_side_effects.c
45
static int defined_inside_macro(struct position macro_pos, struct expression *expr)
usr/src/tools/smatch/src/check_macro_side_effects.c
51
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/check_macro_side_effects.c
63
static int affected_inside_macro_before(struct expression *expr)
usr/src/tools/smatch/src/check_macro_side_effects.c
69
sm = get_sm_state_expr(my_id, expr);
usr/src/tools/smatch/src/check_macro_side_effects.c
77
if (positions_eq(old_mod->pos, expr->pos))
usr/src/tools/smatch/src/check_macro_side_effects.c
96
struct expression *expr;
usr/src/tools/smatch/src/check_macros.c
22
static void match_inside(struct expression *expr, struct position pos)
usr/src/tools/smatch/src/check_macros.c
27
if (positions_eq(expr->pos, pos))
usr/src/tools/smatch/src/check_macros.c
29
if (positions_eq(expr->unop->pos, pos))
usr/src/tools/smatch/src/check_macros.c
39
static void match_one_side(struct expression *expr, struct position pos, int op)
usr/src/tools/smatch/src/check_macros.c
44
if ((op == '+' || op == '*' || op == '|' || op == '&') && expr->op == op)
usr/src/tools/smatch/src/check_macros.c
46
if (positions_eq(expr->right->pos, pos))
usr/src/tools/smatch/src/check_macros.c
48
if (positions_eq(expr->left->pos, pos))
usr/src/tools/smatch/src/check_macros.c
60
static void match_join(struct expression *expr)
usr/src/tools/smatch/src/check_macros.c
62
if (expr->left->type == EXPR_PREOP)
usr/src/tools/smatch/src/check_macros.c
63
match_inside(expr->left, expr->pos);
usr/src/tools/smatch/src/check_macros.c
64
if (expr->right->type == EXPR_POSTOP)
usr/src/tools/smatch/src/check_macros.c
65
match_inside(expr->right, expr->pos);
usr/src/tools/smatch/src/check_macros.c
67
if (expr->left->type == EXPR_BINOP)
usr/src/tools/smatch/src/check_macros.c
68
match_one_side(expr->left, expr->pos, expr->op);
usr/src/tools/smatch/src/check_macros.c
69
if (expr->right->type == EXPR_BINOP)
usr/src/tools/smatch/src/check_macros.c
70
match_one_side(expr->right, expr->pos, expr->op);
usr/src/tools/smatch/src/check_memcpy_overflow.c
132
static int ends_on_struct_member_boundary(struct expression *expr, int needed)
usr/src/tools/smatch/src/check_memcpy_overflow.c
139
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_memcpy_overflow.c
140
if (expr->type == EXPR_PREOP && expr->op == '&') {
usr/src/tools/smatch/src/check_memcpy_overflow.c
141
expr = strip_parens(expr->unop);
usr/src/tools/smatch/src/check_memcpy_overflow.c
143
type = get_type(expr);
usr/src/tools/smatch/src/check_memcpy_overflow.c
147
if (expr->type != EXPR_DEREF || !expr->member)
usr/src/tools/smatch/src/check_memcpy_overflow.c
150
type = get_type(expr->unop);
usr/src/tools/smatch/src/check_memcpy_overflow.c
154
struct expression *unop = strip_expr(expr->unop);
usr/src/tools/smatch/src/check_memcpy_overflow.c
169
strcmp(expr->member->name, tmp->ident->name) == 0) ||
usr/src/tools/smatch/src/check_memcpy_overflow.c
170
name_in_union(tmp, expr->member->name))
usr/src/tools/smatch/src/check_memcpy_overflow.c
194
static int is_one_element_array(struct expression *expr)
usr/src/tools/smatch/src/check_memcpy_overflow.c
199
if (expr->type == EXPR_PREOP && expr->op == '&')
usr/src/tools/smatch/src/check_memcpy_overflow.c
200
expr = expr->unop;
usr/src/tools/smatch/src/check_memcpy_overflow.c
201
if (expr->type == EXPR_BINOP) /* array elements foo[5] */
usr/src/tools/smatch/src/check_memcpy_overflow.c
204
type = get_type(expr);
usr/src/tools/smatch/src/check_memcpy_overflow.c
218
static int is_ignored_struct(struct expression *expr)
usr/src/tools/smatch/src/check_memcpy_overflow.c
222
type = get_type(expr);
usr/src/tools/smatch/src/check_memcpy_overflow.c
236
static void match_limited(const char *fn, struct expression *expr, void *_limiter)
usr/src/tools/smatch/src/check_memcpy_overflow.c
245
dest = get_argument_from_call_expr(expr->args, limiter->buf_arg);
usr/src/tools/smatch/src/check_memcpy_overflow.c
246
limit = get_argument_from_call_expr(expr->args, limiter->limit_arg);
usr/src/tools/smatch/src/check_memcpy_overflow.c
33
static int get_the_max(struct expression *expr, sval_t *sval)
usr/src/tools/smatch/src/check_memcpy_overflow.c
37
if (get_hard_max(expr, sval))
usr/src/tools/smatch/src/check_memcpy_overflow.c
41
if (get_fuzzy_max(expr, sval))
usr/src/tools/smatch/src/check_memcpy_overflow.c
43
if (!get_user_rl(expr, &rl))
usr/src/tools/smatch/src/check_memcpy_overflow.c
49
static int bytes_to_end_of_struct(struct expression *expr)
usr/src/tools/smatch/src/check_memcpy_overflow.c
56
if (expr->type == EXPR_PREOP && expr->op == '&')
usr/src/tools/smatch/src/check_memcpy_overflow.c
57
expr = strip_parens(expr->unop);
usr/src/tools/smatch/src/check_memcpy_overflow.c
59
type = get_type(expr);
usr/src/tools/smatch/src/check_memcpy_overflow.c
63
if (expr->type != EXPR_DEREF || !expr->member)
usr/src/tools/smatch/src/check_memcpy_overflow.c
65
deref = expr->deref;
usr/src/tools/smatch/src/check_memcpy_overflow.c
70
type = get_type(expr->deref);
usr/src/tools/smatch/src/check_memcpy_overflow.c
73
offset = get_member_offset_from_deref(expr);
usr/src/tools/smatch/src/check_memcpy_overflow.c
76
return struct_bytes - expr->member_offset;
usr/src/tools/smatch/src/check_memcpy_overflow.c
79
static int size_of_union(struct expression *expr)
usr/src/tools/smatch/src/check_memcpy_overflow.c
83
if (expr->type != EXPR_PREOP || expr->op != '&')
usr/src/tools/smatch/src/check_memcpy_overflow.c
85
expr = strip_parens(expr->unop);
usr/src/tools/smatch/src/check_memcpy_overflow.c
86
if (expr->type != EXPR_DEREF || !expr->member)
usr/src/tools/smatch/src/check_memcpy_overflow.c
88
expr = expr->unop;
usr/src/tools/smatch/src/check_memcpy_overflow.c
89
type = get_type(expr);
usr/src/tools/smatch/src/check_memset.c
22
static void check_size_not_zero(struct expression *expr)
usr/src/tools/smatch/src/check_memset.c
26
if (expr->type != EXPR_VALUE)
usr/src/tools/smatch/src/check_memset.c
28
if (!get_value(expr, &sval))
usr/src/tools/smatch/src/check_memset.c
35
static void check_size_not_ARRAY_SIZE(struct expression *expr)
usr/src/tools/smatch/src/check_memset.c
39
name = get_macro_name(expr->pos);
usr/src/tools/smatch/src/check_memset.c
44
static void match_memset(const char *fn, struct expression *expr, void *data)
usr/src/tools/smatch/src/check_memset.c
48
arg_expr = get_argument_from_call_expr(expr->args, 2);
usr/src/tools/smatch/src/check_min_t.c
22
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/check_min_t.c
28
if (expr->op != '=')
usr/src/tools/smatch/src/check_min_t.c
31
macro = get_macro_name(expr->pos);
usr/src/tools/smatch/src/check_min_t.c
37
if (!get_absolute_max(expr->left, &max_left))
usr/src/tools/smatch/src/check_min_t.c
39
if (!get_absolute_max(expr->right, &max_right))
usr/src/tools/smatch/src/check_min_t.c
45
name = expr_to_str(expr->right);
usr/src/tools/smatch/src/check_missing_break.c
103
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_missing_break.c
104
if (expr == skip_this)
usr/src/tools/smatch/src/check_missing_break.c
106
set_state_expr(my_id, expr, &used);
usr/src/tools/smatch/src/check_missing_break.c
50
static struct smatch_state *alloc_my_state(struct expression *expr)
usr/src/tools/smatch/src/check_missing_break.c
56
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_missing_break.c
57
name = expr_to_str(expr);
usr/src/tools/smatch/src/check_missing_break.c
62
state->data = expr;
usr/src/tools/smatch/src/check_missing_break.c
67
static void print_missing_break(struct expression *expr)
usr/src/tools/smatch/src/check_missing_break.c
75
name = expr_to_var(expr);
usr/src/tools/smatch/src/check_missing_break.c
80
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/check_missing_break.c
84
if (expr->op != '=')
usr/src/tools/smatch/src/check_missing_break.c
88
left = strip_expr(expr->left);
usr/src/tools/smatch/src/check_missing_break.c
96
static void match_symbol(struct expression *expr)
usr/src/tools/smatch/src/check_mod_timer.c
23
static void match_mod_timer(const char *fn, struct expression *expr, void *param)
usr/src/tools/smatch/src/check_mod_timer.c
28
arg = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/check_no_effect.c
24
struct expression *expr;
usr/src/tools/smatch/src/check_no_effect.c
28
expr = stmt->expression;
usr/src/tools/smatch/src/check_no_effect.c
29
if (!expr)
usr/src/tools/smatch/src/check_no_effect.c
31
switch(expr->type) {
usr/src/tools/smatch/src/check_no_effect.c
33
if (expr->op == '!')
usr/src/tools/smatch/src/check_no_effect.c
35
if (expr->op == '~')
usr/src/tools/smatch/src/check_no_effect.c
50
sm_warning("statement has no effect %d", expr->type);
usr/src/tools/smatch/src/check_nospec.c
106
returned_sym = expr_to_sym(expr);
usr/src/tools/smatch/src/check_nospec.c
130
if (is_nospec(expr) && get_user_rl(expr, &rl))
usr/src/tools/smatch/src/check_nospec.c
144
static void db_returns_nospec(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/check_nospec.c
151
call = expr;
usr/src/tools/smatch/src/check_nospec.c
157
if (param == -1 && expr->type == EXPR_ASSIGNMENT) {
usr/src/tools/smatch/src/check_nospec.c
158
name = get_variable_from_key(expr->left, key, &sym);
usr/src/tools/smatch/src/check_nospec.c
238
static void db_returns_barrier(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/check_nospec.c
243
static void select_return_stmt_cnt(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/check_nospec.c
40
bool is_nospec(struct expression *expr)
usr/src/tools/smatch/src/check_nospec.c
46
if (!expr)
usr/src/tools/smatch/src/check_nospec.c
48
if (get_state_expr(my_id, expr) == &nospec)
usr/src/tools/smatch/src/check_nospec.c
50
macro = get_macro_name(expr->pos);
usr/src/tools/smatch/src/check_nospec.c
56
static void nospec_assign(struct expression *expr)
usr/src/tools/smatch/src/check_nospec.c
58
if (is_nospec(expr->right))
usr/src/tools/smatch/src/check_nospec.c
59
set_state_expr(my_id, expr->left, &nospec);
usr/src/tools/smatch/src/check_nospec.c
76
static void match_call_info(struct expression *expr)
usr/src/tools/smatch/src/check_nospec.c
81
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/check_nospec.c
83
sql_insert_caller_info(expr, NOSPEC, i, "$", "");
usr/src/tools/smatch/src/check_nospec.c
97
static void returned_struct_members(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/check_off_by_one_relative.c
100
offset = get_array_offset(expr);
usr/src/tools/smatch/src/check_off_by_one_relative.c
30
static void array_check(struct expression *expr)
usr/src/tools/smatch/src/check_off_by_one_relative.c
38
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_off_by_one_relative.c
39
if (!is_array(expr))
usr/src/tools/smatch/src/check_off_by_one_relative.c
42
array = get_array_base(expr);
usr/src/tools/smatch/src/check_off_by_one_relative.c
46
offset = get_array_offset(expr);
usr/src/tools/smatch/src/check_off_by_one_relative.c
50
if (buf_comparison_index_ok(expr))
usr/src/tools/smatch/src/check_off_by_one_relative.c
60
static int known_access_ok_numbers(struct expression *expr)
usr/src/tools/smatch/src/check_off_by_one_relative.c
67
array = get_array_base(expr);
usr/src/tools/smatch/src/check_off_by_one_relative.c
68
offset = get_array_offset(expr);
usr/src/tools/smatch/src/check_off_by_one_relative.c
80
static void array_check_data_info(struct expression *expr)
usr/src/tools/smatch/src/check_off_by_one_relative.c
90
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_off_by_one_relative.c
91
if (!is_array(expr))
usr/src/tools/smatch/src/check_off_by_one_relative.c
94
if (known_access_ok_numbers(expr))
usr/src/tools/smatch/src/check_off_by_one_relative.c
96
if (buf_comparison_index_ok(expr))
usr/src/tools/smatch/src/check_off_by_one_relative.c
99
array = get_array_base(expr);
usr/src/tools/smatch/src/check_or_vs_and.c
102
if (is_kernel_min_macro(expr))
usr/src/tools/smatch/src/check_or_vs_and.c
105
left = strip_expr(expr->left);
usr/src/tools/smatch/src/check_or_vs_and.c
106
right = strip_expr(expr->right);
usr/src/tools/smatch/src/check_or_vs_and.c
118
static void match_logic(struct expression *expr)
usr/src/tools/smatch/src/check_or_vs_and.c
120
if (expr->type != EXPR_LOGICAL)
usr/src/tools/smatch/src/check_or_vs_and.c
123
if (expr->op == SPECIAL_LOGICAL_OR)
usr/src/tools/smatch/src/check_or_vs_and.c
124
check_or(expr);
usr/src/tools/smatch/src/check_or_vs_and.c
125
if (expr->op == SPECIAL_LOGICAL_AND)
usr/src/tools/smatch/src/check_or_vs_and.c
126
check_and(expr);
usr/src/tools/smatch/src/check_or_vs_and.c
129
static int is_unconstant_macro(struct expression *expr)
usr/src/tools/smatch/src/check_or_vs_and.c
133
macro = get_macro_name(expr->pos);
usr/src/tools/smatch/src/check_or_vs_and.c
141
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_or_vs_and.c
145
if (expr->type != EXPR_BINOP)
usr/src/tools/smatch/src/check_or_vs_and.c
147
if (expr->op == '|') {
usr/src/tools/smatch/src/check_or_vs_and.c
148
if (get_value(expr->left, &sval) || get_value(expr->right, &sval))
usr/src/tools/smatch/src/check_or_vs_and.c
153
if (expr->op != '&')
usr/src/tools/smatch/src/check_or_vs_and.c
156
if (get_macro_name(expr->pos))
usr/src/tools/smatch/src/check_or_vs_and.c
158
if (is_unconstant_macro(expr->left) || is_unconstant_macro(expr->right))
usr/src/tools/smatch/src/check_or_vs_and.c
161
if ((get_value(expr->left, &sval) && sval.value == 0) ||
usr/src/tools/smatch/src/check_or_vs_and.c
162
(get_value(expr->right, &sval) && sval.value == 0))
usr/src/tools/smatch/src/check_or_vs_and.c
166
static void match_binop(struct expression *expr)
usr/src/tools/smatch/src/check_or_vs_and.c
170
if (expr->op != '&')
usr/src/tools/smatch/src/check_or_vs_and.c
172
if (!get_value(expr, &sval) || sval.value != 0)
usr/src/tools/smatch/src/check_or_vs_and.c
174
if (get_macro_name(expr->pos))
usr/src/tools/smatch/src/check_or_vs_and.c
176
if (!get_value(expr->left, &left) || !get_value(expr->right, &right))
usr/src/tools/smatch/src/check_or_vs_and.c
25
static int does_inc_dec(struct expression *expr)
usr/src/tools/smatch/src/check_or_vs_and.c
27
if (expr->type == EXPR_PREOP || expr->type == EXPR_POSTOP) {
usr/src/tools/smatch/src/check_or_vs_and.c
28
if (expr->op == SPECIAL_INCREMENT || expr->op == SPECIAL_DECREMENT)
usr/src/tools/smatch/src/check_or_vs_and.c
30
return does_inc_dec(expr->unop);
usr/src/tools/smatch/src/check_or_vs_and.c
64
static void check_or(struct expression *expr)
usr/src/tools/smatch/src/check_or_vs_and.c
68
left = strip_expr(expr->left);
usr/src/tools/smatch/src/check_or_vs_and.c
69
right = strip_expr(expr->right);
usr/src/tools/smatch/src/check_or_vs_and.c
81
static int is_kernel_min_macro(struct expression *expr)
usr/src/tools/smatch/src/check_or_vs_and.c
87
macro = get_macro_name(expr->pos);
usr/src/tools/smatch/src/check_or_vs_and.c
98
static void check_and(struct expression *expr)
usr/src/tools/smatch/src/check_param_mapper.c
36
static void match_call(struct expression *expr)
usr/src/tools/smatch/src/check_param_mapper.c
43
if (expr->fn->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/check_param_mapper.c
46
func = expr->fn->symbol_name->name;
usr/src/tools/smatch/src/check_param_mapper.c
49
FOR_EACH_PTR(expr->args, tmp) {
usr/src/tools/smatch/src/check_passes_sizeof.c
26
static struct expression *get_returned_expr(struct expression *expr)
usr/src/tools/smatch/src/check_passes_sizeof.c
35
if (stmt->expression->right != expr)
usr/src/tools/smatch/src/check_passes_sizeof.c
40
static struct expression *remove_dereference(struct expression *expr)
usr/src/tools/smatch/src/check_passes_sizeof.c
42
if (!expr || expr->type != EXPR_PREOP || expr->op != '*')
usr/src/tools/smatch/src/check_passes_sizeof.c
43
return expr;
usr/src/tools/smatch/src/check_passes_sizeof.c
44
expr = expr->unop;
usr/src/tools/smatch/src/check_passes_sizeof.c
45
if (!expr || expr->type != EXPR_PREOP || expr->op != '*')
usr/src/tools/smatch/src/check_passes_sizeof.c
46
return expr;
usr/src/tools/smatch/src/check_passes_sizeof.c
47
return expr->unop;
usr/src/tools/smatch/src/check_platform_device_put.c
47
static void match_platform_device_del(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_platform_device_put.c
52
arg_expr = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_pointer_math.c
101
if (expr->op != '=')
usr/src/tools/smatch/src/check_pointer_math.c
104
if (!is_size_in_bytes(expr->right))
usr/src/tools/smatch/src/check_pointer_math.c
106
set_state_expr(my_id, expr->left, &size_in_bytes);
usr/src/tools/smatch/src/check_pointer_math.c
109
static void check_assign(struct expression *expr)
usr/src/tools/smatch/src/check_pointer_math.c
114
if (expr->op != SPECIAL_ADD_ASSIGN && expr->op != SPECIAL_SUB_ASSIGN)
usr/src/tools/smatch/src/check_pointer_math.c
117
type = get_pointer_type(expr->left);
usr/src/tools/smatch/src/check_pointer_math.c
122
if (!is_size_in_bytes(expr->right))
usr/src/tools/smatch/src/check_pointer_math.c
124
name = expr_to_var(expr->left);
usr/src/tools/smatch/src/check_pointer_math.c
30
static int is_sizeof(struct expression *expr)
usr/src/tools/smatch/src/check_pointer_math.c
32
return (expr->type == EXPR_SIZEOF);
usr/src/tools/smatch/src/check_pointer_math.c
35
static int is_macro(struct expression *expr, const char *macro_name)
usr/src/tools/smatch/src/check_pointer_math.c
42
if (outside_expr && positions_eq(expr->pos, outside_expr->pos))
usr/src/tools/smatch/src/check_pointer_math.c
45
name = get_macro_name(expr->pos);
usr/src/tools/smatch/src/check_pointer_math.c
51
static int is_size_in_bytes(struct expression *expr)
usr/src/tools/smatch/src/check_pointer_math.c
53
if (is_sizeof(expr))
usr/src/tools/smatch/src/check_pointer_math.c
56
if (is_macro(expr, "offsetof"))
usr/src/tools/smatch/src/check_pointer_math.c
58
if (is_macro(expr, "PAGE_SIZE"))
usr/src/tools/smatch/src/check_pointer_math.c
61
if (get_state_expr(my_id, expr) == &size_in_bytes)
usr/src/tools/smatch/src/check_pointer_math.c
67
static void match_binop(struct expression *expr)
usr/src/tools/smatch/src/check_pointer_math.c
73
if (expr->op != '+')
usr/src/tools/smatch/src/check_pointer_math.c
75
type = get_pointer_type(expr->left);
usr/src/tools/smatch/src/check_pointer_math.c
80
if (!is_size_in_bytes(expr->right))
usr/src/tools/smatch/src/check_pointer_math.c
84
size = get_array_size(expr->left);
usr/src/tools/smatch/src/check_pointer_math.c
88
get_absolute_max(expr->right, &max);
usr/src/tools/smatch/src/check_pointer_math.c
93
name = expr_to_str(expr->left);
usr/src/tools/smatch/src/check_pointer_math.c
99
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/check_precedence.c
103
static void match_binop(struct expression *expr)
usr/src/tools/smatch/src/check_precedence.c
105
if (expr->op != '&')
usr/src/tools/smatch/src/check_precedence.c
107
if (expr->left->op == '!')
usr/src/tools/smatch/src/check_precedence.c
111
static void match_mask(struct expression *expr)
usr/src/tools/smatch/src/check_precedence.c
113
if (expr->op != '&')
usr/src/tools/smatch/src/check_precedence.c
115
if (expr->right->type != EXPR_BINOP)
usr/src/tools/smatch/src/check_precedence.c
117
if (expr->right->op != SPECIAL_RIGHTSHIFT)
usr/src/tools/smatch/src/check_precedence.c
123
static void match_mask_compare(struct expression *expr)
usr/src/tools/smatch/src/check_precedence.c
125
if (expr->op != '&')
usr/src/tools/smatch/src/check_precedence.c
127
if (expr->right->type != EXPR_COMPARE)
usr/src/tools/smatch/src/check_precedence.c
133
static void match_subtract_shift(struct expression *expr)
usr/src/tools/smatch/src/check_precedence.c
135
if (expr->op != SPECIAL_LEFTSHIFT)
usr/src/tools/smatch/src/check_precedence.c
137
if (expr->right->type != EXPR_BINOP)
usr/src/tools/smatch/src/check_precedence.c
139
if (expr->right->op != '-')
usr/src/tools/smatch/src/check_precedence.c
23
static int is_bool(struct expression *expr)
usr/src/tools/smatch/src/check_precedence.c
27
type = get_type(expr);
usr/src/tools/smatch/src/check_precedence.c
35
static int is_bool_from_context(struct expression *expr)
usr/src/tools/smatch/src/check_precedence.c
39
if (!get_implied_max(expr, &sval) || sval.uvalue > 1)
usr/src/tools/smatch/src/check_precedence.c
41
if (!get_implied_min(expr, &sval) || sval.value < 0)
usr/src/tools/smatch/src/check_precedence.c
46
static int is_bool_op(struct expression *expr)
usr/src/tools/smatch/src/check_precedence.c
48
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_precedence.c
50
if (expr->type == EXPR_PREOP && expr->op == '!')
usr/src/tools/smatch/src/check_precedence.c
52
if (expr->type == EXPR_COMPARE)
usr/src/tools/smatch/src/check_precedence.c
54
if (expr->type == EXPR_LOGICAL)
usr/src/tools/smatch/src/check_precedence.c
56
return is_bool(expr);
usr/src/tools/smatch/src/check_precedence.c
59
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_precedence.c
63
if (expr->type == EXPR_COMPARE) {
usr/src/tools/smatch/src/check_precedence.c
64
if (expr->left->type == EXPR_COMPARE || expr->right->type == EXPR_COMPARE)
usr/src/tools/smatch/src/check_precedence.c
66
if (expr->left->type == EXPR_PREOP && expr->left->op == '!') {
usr/src/tools/smatch/src/check_precedence.c
67
if (expr->left->unop->type == EXPR_PREOP && expr->left->unop->op == '!')
usr/src/tools/smatch/src/check_precedence.c
69
if (expr->right->op == '!')
usr/src/tools/smatch/src/check_precedence.c
71
if (is_bool(expr->right))
usr/src/tools/smatch/src/check_precedence.c
73
if (is_bool(expr->left->unop))
usr/src/tools/smatch/src/check_precedence.c
75
if (is_bool_from_context(expr->left->unop))
usr/src/tools/smatch/src/check_precedence.c
81
if (expr->type == EXPR_BINOP) {
usr/src/tools/smatch/src/check_precedence.c
82
if (expr->left->type == EXPR_COMPARE || expr->right->type == EXPR_COMPARE)
usr/src/tools/smatch/src/check_precedence.c
91
if (expr->type == EXPR_BINOP && expr->op == '&') {
usr/src/tools/smatch/src/check_precedence.c
94
if (is_bool_op(expr->left))
usr/src/tools/smatch/src/check_precedence.c
96
if (is_bool_op(expr->right))
usr/src/tools/smatch/src/check_proc_create.c
32
static void match_create(const char *fn, struct expression *expr, void *_param_type)
usr/src/tools/smatch/src/check_proc_create.c
39
arg_expr = get_argument_from_call_expr(expr->args, param_index[idx].mode_param);
usr/src/tools/smatch/src/check_proc_create.c
44
arg_expr = get_argument_from_call_expr(expr->args, param_index[idx].name_param);
usr/src/tools/smatch/src/check_puts_argument.c
49
static void match_put(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_puts_argument.c
55
tmp = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_readl_infinite_loops.c
33
static int is_readl_call(struct expression *expr)
usr/src/tools/smatch/src/check_readl_infinite_loops.c
37
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_readl_infinite_loops.c
38
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/check_readl_infinite_loops.c
40
if (expr->fn->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/check_readl_infinite_loops.c
42
sym = expr->fn->symbol;
usr/src/tools/smatch/src/check_readl_infinite_loops.c
50
static int is_readl(struct expression *expr)
usr/src/tools/smatch/src/check_readl_infinite_loops.c
52
if (is_readl_call(expr))
usr/src/tools/smatch/src/check_readl_infinite_loops.c
54
if (get_state_expr(my_id, expr) == &readl)
usr/src/tools/smatch/src/check_readl_infinite_loops.c
59
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/check_readl_infinite_loops.c
61
if (is_readl(expr->right))
usr/src/tools/smatch/src/check_readl_infinite_loops.c
62
set_state_expr(my_id, expr->left, &readl);
usr/src/tools/smatch/src/check_readl_infinite_loops.c
63
else if (get_state_expr(my_id, expr->left))
usr/src/tools/smatch/src/check_readl_infinite_loops.c
64
set_state_expr(my_id, expr->left, &undefined);
usr/src/tools/smatch/src/check_readl_infinite_loops.c
67
static int condition_depends_on_readl(struct expression *expr)
usr/src/tools/smatch/src/check_readl_infinite_loops.c
69
if (expr->type == EXPR_BINOP) {
usr/src/tools/smatch/src/check_readl_infinite_loops.c
70
if (condition_depends_on_readl(expr->left))
usr/src/tools/smatch/src/check_readl_infinite_loops.c
72
if (condition_depends_on_readl(expr->right))
usr/src/tools/smatch/src/check_readl_infinite_loops.c
76
if (is_readl(expr))
usr/src/tools/smatch/src/check_readl_infinite_loops.c
81
static void check_condition(struct expression *expr)
usr/src/tools/smatch/src/check_readl_infinite_loops.c
83
if (expr->op != '&')
usr/src/tools/smatch/src/check_readl_infinite_loops.c
85
if (!condition_depends_on_readl(expr))
usr/src/tools/smatch/src/check_readl_infinite_loops.c
91
static void match_return(struct expression *expr)
usr/src/tools/smatch/src/check_release_resource.c
30
static void match_request(const char *fn, struct expression *expr, void *_arg_no)
usr/src/tools/smatch/src/check_release_resource.c
37
arg_expr = get_argument_from_call_expr(expr->args, arg_no);
usr/src/tools/smatch/src/check_release_resource.c
48
static void match_release(const char *fn, struct expression *expr, void *_arg_no)
usr/src/tools/smatch/src/check_release_resource.c
55
arg_expr = get_argument_from_call_expr(expr->args, arg_no);
usr/src/tools/smatch/src/check_resource_size.c
23
static int is_probably_ok(struct expression *expr)
usr/src/tools/smatch/src/check_resource_size.c
25
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_resource_size.c
27
if (expr->type == EXPR_BINOP)
usr/src/tools/smatch/src/check_resource_size.c
29
if (expr->type == EXPR_SIZEOF)
usr/src/tools/smatch/src/check_resource_size.c
35
static void verify_size_expr(struct expression *expr)
usr/src/tools/smatch/src/check_resource_size.c
37
if (expr->type != EXPR_BINOP)
usr/src/tools/smatch/src/check_resource_size.c
39
if (expr->op != '-')
usr/src/tools/smatch/src/check_resource_size.c
41
if (is_probably_ok(expr->left))
usr/src/tools/smatch/src/check_resource_size.c
43
if (is_probably_ok(expr->right))
usr/src/tools/smatch/src/check_resource_size.c
48
static void handle_assigned_expr(struct expression *expr)
usr/src/tools/smatch/src/check_resource_size.c
52
state = get_state_expr(check_assigned_expr_id, expr);
usr/src/tools/smatch/src/check_resource_size.c
55
expr = (struct expression *)state->data;
usr/src/tools/smatch/src/check_resource_size.c
56
verify_size_expr(expr);
usr/src/tools/smatch/src/check_resource_size.c
59
static void match_resource(const char *fn, struct expression *expr, void *_arg_no)
usr/src/tools/smatch/src/check_resource_size.c
64
arg_expr = get_argument_from_call_expr(expr->args, arg_no);
usr/src/tools/smatch/src/check_return.c
23
static void must_check(const char *fn, struct expression *expr, void *data)
usr/src/tools/smatch/src/check_return.c
28
if (stmt->type == STMT_EXPRESSION && stmt->expression == expr)
usr/src/tools/smatch/src/check_return_efault.c
39
static void match_copy(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_return_efault.c
41
if (expr->op == SPECIAL_SUB_ASSIGN)
usr/src/tools/smatch/src/check_return_efault.c
43
set_state_expr(my_id, expr->left, &remaining);
usr/src/tools/smatch/src/check_return_efault.c
46
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_return_efault.c
48
if (!get_state_expr(my_id, expr))
usr/src/tools/smatch/src/check_return_efault.c
51
set_true_false_states_expr(my_id, expr, NULL, &ok);
usr/src/tools/smatch/src/check_return_enomem.c
30
struct expression *expr;
usr/src/tools/smatch/src/check_return_enomem.c
51
expr = get_assigned_expr_name_sym(sm->name, sm->sym);
usr/src/tools/smatch/src/check_return_enomem.c
52
if (!expr)
usr/src/tools/smatch/src/check_return_enomem.c
54
if (expr->type != EXPR_CALL || expr->fn->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/check_return_enomem.c
56
if (!expr->fn->symbol_name)
usr/src/tools/smatch/src/check_return_enomem.c
63
if (strcmp(expr->fn->symbol_name->name, "kmalloc") != 0 &&
usr/src/tools/smatch/src/check_return_enomem.c
64
strcmp(expr->fn->symbol_name->name, "kzalloc") != 0)
usr/src/tools/smatch/src/check_return_negative_var.c
25
struct expression *expr;
usr/src/tools/smatch/src/check_return_negative_var.c
30
expr = ret_value;
usr/src/tools/smatch/src/check_return_negative_var.c
34
macro = get_macro_name(expr->unop->pos);
usr/src/tools/smatch/src/check_return_negative_var.c
43
expr = get_assigned_expr(ret_value->unop);
usr/src/tools/smatch/src/check_return_negative_var.c
44
if (!expr)
usr/src/tools/smatch/src/check_return_negative_var.c
46
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/check_rosenberg.c
106
static int warn_on_holey_struct(struct expression *expr)
usr/src/tools/smatch/src/check_rosenberg.c
109
type = get_type(expr);
usr/src/tools/smatch/src/check_rosenberg.c
113
return check_struct(expr, type);
usr/src/tools/smatch/src/check_rosenberg.c
116
static int has_global_scope(struct expression *expr)
usr/src/tools/smatch/src/check_rosenberg.c
120
if (expr->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/check_rosenberg.c
122
sym = expr->symbol;
usr/src/tools/smatch/src/check_rosenberg.c
128
static void match_clear(const char *fn, struct expression *expr, void *_arg_no)
usr/src/tools/smatch/src/check_rosenberg.c
133
ptr = get_argument_from_call_expr(expr->args, arg_no);
usr/src/tools/smatch/src/check_rosenberg.c
143
static int was_memset(struct expression *expr)
usr/src/tools/smatch/src/check_rosenberg.c
145
if (get_state_expr(my_whole_id, expr) == &cleared)
usr/src/tools/smatch/src/check_rosenberg.c
193
static int check_members_initialized(struct expression *expr)
usr/src/tools/smatch/src/check_rosenberg.c
202
sym = get_type(expr);
usr/src/tools/smatch/src/check_rosenberg.c
212
name = expr_to_var_sym(expr, &outer);
usr/src/tools/smatch/src/check_rosenberg.c
271
static void match_copy_to_user(const char *fn, struct expression *expr, void *_arg)
usr/src/tools/smatch/src/check_rosenberg.c
276
data = get_argument_from_call_expr(expr->args, arg);
usr/src/tools/smatch/src/check_rosenberg.c
285
static void db_param_cleared(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/check_rosenberg.c
287
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/check_rosenberg.c
288
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/check_rosenberg.c
289
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/check_rosenberg.c
292
match_clear(NULL, expr, INT_PTR(param));
usr/src/tools/smatch/src/check_rosenberg.c
295
static struct smatch_state *alloc_expr_state(struct expression *expr)
usr/src/tools/smatch/src/check_rosenberg.c
300
name = expr_to_str(expr);
usr/src/tools/smatch/src/check_rosenberg.c
305
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_rosenberg.c
308
state->data = expr;
usr/src/tools/smatch/src/check_rosenberg.c
312
static void match_skb_put(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_rosenberg.c
317
type = get_type(expr->left);
usr/src/tools/smatch/src/check_rosenberg.c
321
state = alloc_expr_state(expr->left);
usr/src/tools/smatch/src/check_rosenberg.c
322
set_state_expr(skb_put_id, expr->left, state);
usr/src/tools/smatch/src/check_rosenberg.c
325
static void match_return_skb_put(struct expression *expr)
usr/src/tools/smatch/src/check_rosenberg.c
330
if (is_error_return(expr))
usr/src/tools/smatch/src/check_rosenberg.c
35
static void extra_mod_hook(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/check_rosenberg.c
61
static int check_struct(struct expression *expr, struct symbol *type)
usr/src/tools/smatch/src/check_rosenberg.c
74
if (check_struct(expr, base_type))
usr/src/tools/smatch/src/check_rosenberg.c
81
print_holey_warning(expr, prev);
usr/src/tools/smatch/src/check_rosenberg.c
99
print_holey_warning(expr, prev);
usr/src/tools/smatch/src/check_select.c
23
static void match_select(struct expression *expr)
usr/src/tools/smatch/src/check_select.c
25
if (expr->cond_true)
usr/src/tools/smatch/src/check_select.c
27
expr = strip_expr(expr->conditional);
usr/src/tools/smatch/src/check_select.c
28
if (expr->type != EXPR_COMPARE)
usr/src/tools/smatch/src/check_shift_to_zero.c
22
static void match_binop(struct expression *expr)
usr/src/tools/smatch/src/check_shift_to_zero.c
27
if (expr->op != SPECIAL_RIGHTSHIFT)
usr/src/tools/smatch/src/check_shift_to_zero.c
30
if (!get_implied_value(expr->right, &bits))
usr/src/tools/smatch/src/check_shift_to_zero.c
33
type = get_type(expr->left);
usr/src/tools/smatch/src/check_shift_to_zero.c
38
if (is_ignored_expr(my_id, expr))
usr/src/tools/smatch/src/check_shift_to_zero.c
43
static void match_binop2(struct expression *expr)
usr/src/tools/smatch/src/check_shift_to_zero.c
49
if (expr->op != SPECIAL_RIGHTSHIFT)
usr/src/tools/smatch/src/check_shift_to_zero.c
52
left = strip_expr(expr->left);
usr/src/tools/smatch/src/check_shift_to_zero.c
59
if (!get_value(expr->right, &shift))
usr/src/tools/smatch/src/check_shift_to_zero.c
70
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/check_shift_to_zero.c
75
if (expr->op != SPECIAL_SHR_ASSIGN)
usr/src/tools/smatch/src/check_shift_to_zero.c
78
if (!get_implied_value(expr->right, &bits))
usr/src/tools/smatch/src/check_shift_to_zero.c
80
type = get_type(expr->left);
usr/src/tools/smatch/src/check_signed.c
136
static int cap_lt_zero_or_gt(struct expression *expr)
usr/src/tools/smatch/src/check_signed.c
139
struct expression *var = expr->left;
usr/src/tools/smatch/src/check_signed.c
147
if (!get_value(expr->right, &known) || known.value != 0)
usr/src/tools/smatch/src/check_signed.c
184
static int cap_both_sides(struct expression *expr)
usr/src/tools/smatch/src/check_signed.c
186
switch (expr->op) {
usr/src/tools/smatch/src/check_signed.c
191
return cap_lt_zero_or_gt(expr);
usr/src/tools/smatch/src/check_signed.c
196
return cap_gt_zero_and_lt(expr);
usr/src/tools/smatch/src/check_signed.c
201
static int compare_against_macro(struct expression *expr)
usr/src/tools/smatch/src/check_signed.c
205
if (expr->op != SPECIAL_UNSIGNED_LT)
usr/src/tools/smatch/src/check_signed.c
208
if (!get_value(expr->right, &known) || known.value != 0)
usr/src/tools/smatch/src/check_signed.c
210
return !!get_macro_name(expr->right->pos);
usr/src/tools/smatch/src/check_signed.c
213
static int print_unsigned_never_less_than_zero(struct expression *expr)
usr/src/tools/smatch/src/check_signed.c
218
if (expr->op != SPECIAL_UNSIGNED_LT)
usr/src/tools/smatch/src/check_signed.c
221
if (!get_value(expr->right, &known) || known.value != 0)
usr/src/tools/smatch/src/check_signed.c
224
name = expr_to_str(expr->left);
usr/src/tools/smatch/src/check_signed.c
230
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_signed.c
238
if (expr->type != EXPR_COMPARE)
usr/src/tools/smatch/src/check_signed.c
241
type = get_type(expr);
usr/src/tools/smatch/src/check_signed.c
252
if (get_macro_name(expr->pos))
usr/src/tools/smatch/src/check_signed.c
254
if (compare_against_macro(expr))
usr/src/tools/smatch/src/check_signed.c
256
if (cap_both_sides(expr))
usr/src/tools/smatch/src/check_signed.c
260
if (print_unsigned_never_less_than_zero(expr))
usr/src/tools/smatch/src/check_signed.c
264
if (get_value(expr->left, &known)) {
usr/src/tools/smatch/src/check_signed.c
265
if (get_value(expr->right, &known))
usr/src/tools/smatch/src/check_signed.c
270
min = sval_type_min(get_type(expr->right));
usr/src/tools/smatch/src/check_signed.c
271
max = sval_type_max(get_type(expr->right));
usr/src/tools/smatch/src/check_signed.c
274
} else if (get_value(expr->right, &known)) {
usr/src/tools/smatch/src/check_signed.c
278
min = sval_type_min(get_type(expr->left));
usr/src/tools/smatch/src/check_signed.c
279
max = sval_type_max(get_type(expr->left));
usr/src/tools/smatch/src/check_signed.c
286
if (!possibly_true_rl(rl_left, expr->op, rl_right)) {
usr/src/tools/smatch/src/check_signed.c
287
char *name = expr_to_str(expr);
usr/src/tools/smatch/src/check_signed.c
290
show_rl(rl_left), show_special(expr->op),
usr/src/tools/smatch/src/check_signed.c
295
if (!possibly_false_rl(rl_left, expr->op, rl_right)) {
usr/src/tools/smatch/src/check_signed.c
296
char *name = expr_to_str(expr);
usr/src/tools/smatch/src/check_signed.c
299
show_rl(rl_left_orig), show_special(expr->op),
usr/src/tools/smatch/src/check_signed.c
34
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/check_signed.c
44
if (expr->op == SPECIAL_AND_ASSIGN || expr->op == SPECIAL_OR_ASSIGN)
usr/src/tools/smatch/src/check_signed.c
47
sym = get_type(expr->left);
usr/src/tools/smatch/src/check_signed.c
54
if (!get_implied_value(expr->right, &sval))
usr/src/tools/smatch/src/check_signed.c
60
left_name = expr_to_str(expr->left);
usr/src/tools/smatch/src/check_signed.c
61
right_name = expr_to_str(expr->right);
usr/src/tools/smatch/src/check_signed.c
70
if (expr->right->type == EXPR_PREOP && expr->right->op == '~')
usr/src/tools/smatch/src/check_signed.c
72
if (expr->op == SPECIAL_SUB_ASSIGN || expr->op == SPECIAL_ADD_ASSIGN)
usr/src/tools/smatch/src/check_signed.c
76
left_name = expr_to_str(expr->left);
usr/src/tools/smatch/src/check_signed.c
88
static int cap_gt_zero_and_lt(struct expression *expr)
usr/src/tools/smatch/src/check_signed.c
91
struct expression *var = expr->left;
usr/src/tools/smatch/src/check_signed.c
99
if (!get_value(expr->right, &known) || known.value != 0)
usr/src/tools/smatch/src/check_signed_integer_overflow_check.c
29
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_signed_integer_overflow_check.c
36
if (expr->type != EXPR_COMPARE)
usr/src/tools/smatch/src/check_signed_integer_overflow_check.c
38
if (expr->op != '<')
usr/src/tools/smatch/src/check_signed_integer_overflow_check.c
41
type = get_type(expr);
usr/src/tools/smatch/src/check_signed_integer_overflow_check.c
45
left = strip_expr(expr->left);
usr/src/tools/smatch/src/check_signed_integer_overflow_check.c
46
right = strip_expr(expr->right);
usr/src/tools/smatch/src/check_signed_integer_overflow_check.c
61
sm_warning("signed overflow undefined. '%s %s %s'", left_name, show_special(expr->op), right_name);
usr/src/tools/smatch/src/check_signed_integer_overflow_check.c
67
static void match_binop(struct expression *expr)
usr/src/tools/smatch/src/check_signed_integer_overflow_check.c
72
if (expr->op != '-')
usr/src/tools/smatch/src/check_signed_integer_overflow_check.c
75
if (!get_value(expr->left, &left_val))
usr/src/tools/smatch/src/check_signed_integer_overflow_check.c
90
get_absolute_min(expr->right, &right_min);
usr/src/tools/smatch/src/check_signed_integer_overflow_check.c
94
str = expr_to_str(expr);
usr/src/tools/smatch/src/check_sizeof.c
102
if (expr->type != EXPR_VALUE)
usr/src/tools/smatch/src/check_sizeof.c
104
macro = get_macro_name(expr->pos);
usr/src/tools/smatch/src/check_sizeof.c
113
static void match_sizeof(struct expression *expr)
usr/src/tools/smatch/src/check_sizeof.c
115
check_sizeof_number(expr);
usr/src/tools/smatch/src/check_sizeof.c
116
if (expr->type == EXPR_PREOP && expr->op == '&')
usr/src/tools/smatch/src/check_sizeof.c
118
if (expr->type == EXPR_SIZEOF)
usr/src/tools/smatch/src/check_sizeof.c
121
if (expr->type == EXPR_BINOP && !get_macro_name(expr->pos))
usr/src/tools/smatch/src/check_sizeof.c
22
static void check_pointer(struct expression *expr, char *ptr_name)
usr/src/tools/smatch/src/check_sizeof.c
27
if (!expr || expr->type != EXPR_SIZEOF)
usr/src/tools/smatch/src/check_sizeof.c
30
get_value(expr, &sval);
usr/src/tools/smatch/src/check_sizeof.c
32
expr = strip_expr(expr->cast_expression);
usr/src/tools/smatch/src/check_sizeof.c
33
name = expr_to_str(expr);
usr/src/tools/smatch/src/check_sizeof.c
42
static void match_call_assignment(struct expression *expr)
usr/src/tools/smatch/src/check_sizeof.c
44
struct expression *call = strip_expr(expr->right);
usr/src/tools/smatch/src/check_sizeof.c
48
if (!is_pointer(expr->left))
usr/src/tools/smatch/src/check_sizeof.c
51
ptr_name = expr_to_str(expr->left);
usr/src/tools/smatch/src/check_sizeof.c
98
static void check_sizeof_number(struct expression *expr)
usr/src/tools/smatch/src/check_snprintf.c
29
static void match_snprintf(const char *fn, struct expression *expr, void *info)
usr/src/tools/smatch/src/check_snprintf.c
35
call = strip_expr(expr->right);
usr/src/tools/smatch/src/check_snprintf.c
39
set_state_expr(my_id, expr->left, alloc_state_num(buflen.value));
usr/src/tools/smatch/src/check_snprintf.c
54
static void match_call(struct expression *expr)
usr/src/tools/smatch/src/check_snprintf.c
61
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/check_snprintf_overflow.c
20
static void match_snprintf(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_snprintf_overflow.c
32
dest = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_snprintf_overflow.c
33
dest_size_expr = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/check_snprintf_overflow.c
34
format_string = get_argument_from_call_expr(expr->args, 2);
usr/src/tools/smatch/src/check_snprintf_overflow.c
35
data = get_argument_from_call_expr(expr->args, 3);
usr/src/tools/smatch/src/check_spectre.c
103
expr = strip_parens(expr);
usr/src/tools/smatch/src/check_spectre.c
104
type = get_type(expr);
usr/src/tools/smatch/src/check_spectre.c
107
if (expr->type == EXPR_PREOP) {
usr/src/tools/smatch/src/check_spectre.c
108
expr = expr->unop;
usr/src/tools/smatch/src/check_spectre.c
109
} else if (expr->type == EXPR_BINOP) {
usr/src/tools/smatch/src/check_spectre.c
110
if (expr->op == '%' || expr->op == '&')
usr/src/tools/smatch/src/check_spectre.c
111
expr = expr->right;
usr/src/tools/smatch/src/check_spectre.c
115
expr = get_assigned_expr(expr);
usr/src/tools/smatch/src/check_spectre.c
116
if (!expr)
usr/src/tools/smatch/src/check_spectre.c
126
static unsigned long long get_mask(struct expression *expr)
usr/src/tools/smatch/src/check_spectre.c
132
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_spectre.c
134
tmp = get_assigned_expr(expr);
usr/src/tools/smatch/src/check_spectre.c
136
expr = tmp;
usr/src/tools/smatch/src/check_spectre.c
139
tmp = get_assigned_expr(expr);
usr/src/tools/smatch/src/check_spectre.c
142
if (expr->type == EXPR_BINOP && expr->op == '&') {
usr/src/tools/smatch/src/check_spectre.c
143
if (get_value(expr->right, &mask)) /* right is the common case */
usr/src/tools/smatch/src/check_spectre.c
145
if (get_value(expr->left, &mask))
usr/src/tools/smatch/src/check_spectre.c
152
static void array_check(struct expression *expr)
usr/src/tools/smatch/src/check_spectre.c
160
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_spectre.c
161
if (!is_array(expr))
usr/src/tools/smatch/src/check_spectre.c
166
if (is_harmless(expr))
usr/src/tools/smatch/src/check_spectre.c
169
array_expr = get_array_base(expr);
usr/src/tools/smatch/src/check_spectre.c
171
set_spectre_first_half(expr);
usr/src/tools/smatch/src/check_spectre.c
175
offset = get_array_offset(expr);
usr/src/tools/smatch/src/check_spectre.c
197
is_read(expr) ? "r" : "w",
usr/src/tools/smatch/src/check_spectre.c
200
set_spectre_first_half(expr);
usr/src/tools/smatch/src/check_spectre.c
23
extern void set_spectre_first_half(struct expression *expr);
usr/src/tools/smatch/src/check_spectre.c
27
static int is_write(struct expression *expr)
usr/src/tools/smatch/src/check_spectre.c
32
static int is_read(struct expression *expr)
usr/src/tools/smatch/src/check_spectre.c
37
if (is_write(expr))
usr/src/tools/smatch/src/check_spectre.c
40
last_parent = expr;
usr/src/tools/smatch/src/check_spectre.c
41
while ((parent = expr_get_parent_expr(expr))){
usr/src/tools/smatch/src/check_spectre.c
50
if (parent->right == expr)
usr/src/tools/smatch/src/check_spectre.c
52
if (parent->left == expr)
usr/src/tools/smatch/src/check_spectre.c
55
expr = parent;
usr/src/tools/smatch/src/check_spectre.c
65
static int is_harmless(struct expression *expr)
usr/src/tools/smatch/src/check_spectre.c
71
parent = expr;
usr/src/tools/smatch/src/check_spectre.c
93
static unsigned long long get_max_by_type(struct expression *expr)
usr/src/tools/smatch/src/check_spectre_second_half.c
103
set_state_expr(my_id, expr, alloc_state_num(-MAX_SPEC_STMT));
usr/src/tools/smatch/src/check_spectre_second_half.c
31
void set_spectre_first_half(struct expression *expr)
usr/src/tools/smatch/src/check_spectre_second_half.c
36
name = expr_to_str(expr);
usr/src/tools/smatch/src/check_spectre_second_half.c
37
snprintf(buf, sizeof(buf), "%p %s", expr, name);
usr/src/tools/smatch/src/check_spectre_second_half.c
52
static struct smatch_state *get_spectre_first_half(struct expression *expr)
usr/src/tools/smatch/src/check_spectre_second_half.c
57
name = expr_to_str(expr);
usr/src/tools/smatch/src/check_spectre_second_half.c
58
snprintf(buf, sizeof(buf), "%p %s", expr, name);
usr/src/tools/smatch/src/check_spectre_second_half.c
64
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/check_spectre_second_half.c
68
if (expr->op == SPECIAL_AND_ASSIGN)
usr/src/tools/smatch/src/check_spectre_second_half.c
71
state = get_spectre_first_half(expr->right);
usr/src/tools/smatch/src/check_spectre_second_half.c
73
set_state_expr(my_id, expr->left, state);
usr/src/tools/smatch/src/check_spectre_second_half.c
74
recently_set = expr->left;
usr/src/tools/smatch/src/check_spectre_second_half.c
77
state = get_state_expr(my_id, expr->right);
usr/src/tools/smatch/src/check_spectre_second_half.c
80
set_state_expr(my_id, expr->left, state);
usr/src/tools/smatch/src/check_spectre_second_half.c
81
recently_set = expr->left;
usr/src/tools/smatch/src/check_spectre_second_half.c
84
static void match_done(struct expression *expr)
usr/src/tools/smatch/src/check_spectre_second_half.c
89
if (expr == recently_set)
usr/src/tools/smatch/src/check_spectre_second_half.c
92
state = get_state_expr(my_id, expr);
usr/src/tools/smatch/src/check_spectre_second_half.c
99
name = expr_to_str(expr);
usr/src/tools/smatch/src/check_sprintf_overflow.c
20
static void match_sprintf(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_sprintf_overflow.c
30
dest = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_sprintf_overflow.c
31
format_string = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/check_sprintf_overflow.c
32
data = get_argument_from_call_expr(expr->args, 2);
usr/src/tools/smatch/src/check_strcpy_overflow.c
20
static void match_strcpy(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_strcpy_overflow.c
29
dest = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_strcpy_overflow.c
30
data = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/check_string_len.c
180
struct expression *expr;
usr/src/tools/smatch/src/check_string_len.c
184
expr = get_argument_from_call_expr(call->args, arg);
usr/src/tools/smatch/src/check_string_len.c
185
if (!expr || expr->type != EXPR_STRING)
usr/src/tools/smatch/src/check_string_len.c
190
p = expr->string->data;
usr/src/tools/smatch/src/check_struct_type.c
22
static void match_assign(const char *fn, struct expression *expr, void *_size_arg)
usr/src/tools/smatch/src/check_struct_type.c
31
left = strip_expr(expr->left);
usr/src/tools/smatch/src/check_struct_type.c
39
call = strip_expr(expr->right);
usr/src/tools/smatch/src/check_syscall_arg_type.c
134
static void match_fdget(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_syscall_arg_type.c
138
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_template.c
63
static void match_call(struct expression *expr)
usr/src/tools/smatch/src/check_template.c
69
fn_name = expr_to_var(expr->fn);
usr/src/tools/smatch/src/check_template.c
73
sem_expr = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_test_bit.c
23
static void match_test_bit(const char *fn, struct expression *expr, void *data)
usr/src/tools/smatch/src/check_test_bit.c
28
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_testing_index_after_use.c
101
name = expr_to_var(left ? expr->right : expr->left);
usr/src/tools/smatch/src/check_testing_index_after_use.c
38
static void array_check(struct expression *expr)
usr/src/tools/smatch/src/check_testing_index_after_use.c
45
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_testing_index_after_use.c
46
if (!is_array(expr))
usr/src/tools/smatch/src/check_testing_index_after_use.c
49
array_expr = get_array_base(expr);
usr/src/tools/smatch/src/check_testing_index_after_use.c
54
offset = get_array_offset(expr);
usr/src/tools/smatch/src/check_testing_index_after_use.c
58
if (buf_comparison_index_ok(expr))
usr/src/tools/smatch/src/check_testing_index_after_use.c
61
if (getting_address(expr))
usr/src/tools/smatch/src/check_testing_index_after_use.c
68
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_testing_index_after_use.c
76
if (!expr || expr->type != EXPR_COMPARE)
usr/src/tools/smatch/src/check_testing_index_after_use.c
78
if (get_macro_name(expr->pos))
usr/src/tools/smatch/src/check_testing_index_after_use.c
80
if (get_implied_value(expr->left, &sval))
usr/src/tools/smatch/src/check_testing_index_after_use.c
82
else if (get_implied_value(expr->right, &sval))
usr/src/tools/smatch/src/check_testing_index_after_use.c
88
slist = get_possible_states_expr(my_used_id, expr->right);
usr/src/tools/smatch/src/check_testing_index_after_use.c
90
slist = get_possible_states_expr(my_used_id, expr->left);
usr/src/tools/smatch/src/check_type.c
33
static void match_free(const char *fn, struct expression *expr, void *data)
usr/src/tools/smatch/src/check_type.c
39
arg_expr = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_uninitialized.c
114
if (expr->type != EXPR_COMPARE || expr->op != '<')
usr/src/tools/smatch/src/check_uninitialized.c
116
if (!expr_is_zero(expr->right))
usr/src/tools/smatch/src/check_uninitialized.c
118
if (get_implied_max(expr->left, &max) && max.value == 0)
usr/src/tools/smatch/src/check_uninitialized.c
121
success = compare_expression(expr->left, SPECIAL_EQUAL, expr->right);
usr/src/tools/smatch/src/check_uninitialized.c
133
static int is_initialized(struct expression *expr)
usr/src/tools/smatch/src/check_uninitialized.c
137
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_uninitialized.c
138
if (expr->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/check_uninitialized.c
140
sm = get_sm_state_expr(my_id, expr);
usr/src/tools/smatch/src/check_uninitialized.c
148
static void match_dereferences(struct expression *expr)
usr/src/tools/smatch/src/check_uninitialized.c
155
if (expr->type != EXPR_PREOP)
usr/src/tools/smatch/src/check_uninitialized.c
159
if (is_initialized(expr->unop))
usr/src/tools/smatch/src/check_uninitialized.c
162
name = expr_to_str(expr->unop);
usr/src/tools/smatch/src/check_uninitialized.c
166
set_state_expr(my_id, expr->unop, &initialized);
usr/src/tools/smatch/src/check_uninitialized.c
169
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_uninitialized.c
179
if (is_initialized(expr))
usr/src/tools/smatch/src/check_uninitialized.c
182
name = expr_to_str(expr);
usr/src/tools/smatch/src/check_uninitialized.c
186
set_state_expr(my_id, expr, &initialized);
usr/src/tools/smatch/src/check_uninitialized.c
189
static void match_call(struct expression *expr)
usr/src/tools/smatch/src/check_uninitialized.c
200
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/check_uninitialized.c
233
static void match_call_struct_members(struct expression *expr)
usr/src/tools/smatch/src/check_uninitialized.c
248
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/check_uninitialized.c
264
if (!member_is_used(expr, param, buf))
usr/src/tools/smatch/src/check_uninitialized.c
274
static int is_being_modified(struct expression *expr)
usr/src/tools/smatch/src/check_uninitialized.c
279
parent = expr_get_parent_expr(expr);
usr/src/tools/smatch/src/check_uninitialized.c
289
if (parent->type == EXPR_ASSIGNMENT && expr_equiv(parent->left, expr))
usr/src/tools/smatch/src/check_uninitialized.c
299
static void match_symbol(struct expression *expr)
usr/src/tools/smatch/src/check_uninitialized.c
309
if (is_initialized(expr))
usr/src/tools/smatch/src/check_uninitialized.c
312
if (is_being_modified(expr))
usr/src/tools/smatch/src/check_uninitialized.c
315
name = expr_to_str(expr);
usr/src/tools/smatch/src/check_uninitialized.c
319
set_state_expr(my_id, expr, &initialized);
usr/src/tools/smatch/src/check_uninitialized.c
334
static void match_ignore_param(const char *fn, struct expression *expr, void *_arg_nr)
usr/src/tools/smatch/src/check_uninitialized.c
339
arg = get_argument_from_call_expr(expr->args, arg_nr);
usr/src/tools/smatch/src/check_uninitialized.c
80
static void extra_mod_hook(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/check_uninitialized.c
89
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/check_uninitialized.c
93
right = strip_expr(expr->right);
usr/src/tools/smatch/src/check_uninitialized.c
98
static void match_negative_comparison(struct expression *expr)
usr/src/tools/smatch/src/check_unreachable.c
196
struct expression *expr;
usr/src/tools/smatch/src/check_unreachable.c
200
expr = stmt->expression;
usr/src/tools/smatch/src/check_unreachable.c
201
if (!expr || expr->type != EXPR_CALL)
usr/src/tools/smatch/src/check_unreachable.c
203
if (expr->fn->type != EXPR_SYMBOL || !expr->fn->symbol_name)
usr/src/tools/smatch/src/check_unreachable.c
205
return expr->fn->symbol_name->name;
usr/src/tools/smatch/src/check_unused_ret.c
108
if (expr->op != '=')
usr/src/tools/smatch/src/check_unused_ret.c
112
if (ignored_function(expr->right))
usr/src/tools/smatch/src/check_unused_ret.c
114
left = strip_expr(expr->left);
usr/src/tools/smatch/src/check_unused_ret.c
127
assign->function = get_fn_name(expr->right);
usr/src/tools/smatch/src/check_unused_ret.c
132
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/check_unused_ret.c
136
if (expr->op != '=')
usr/src/tools/smatch/src/check_unused_ret.c
138
left = strip_expr(expr->left);
usr/src/tools/smatch/src/check_unused_ret.c
165
static void match_symbol(struct expression *expr)
usr/src/tools/smatch/src/check_unused_ret.c
169
expr = strip_expr(expr);
usr/src/tools/smatch/src/check_unused_ret.c
170
if (expr == skip_this)
usr/src/tools/smatch/src/check_unused_ret.c
172
sm = get_sm_state_expr(my_id, expr);
usr/src/tools/smatch/src/check_unused_ret.c
176
set_state_expr(my_id, expr, &undefined);
usr/src/tools/smatch/src/check_unused_ret.c
76
static char *get_fn_name(struct expression *expr)
usr/src/tools/smatch/src/check_unused_ret.c
78
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/check_unused_ret.c
80
if (expr->fn->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/check_unused_ret.c
82
return expr_to_var(expr->fn);
usr/src/tools/smatch/src/check_unused_ret.c
85
static int ignored_function(struct expression *expr)
usr/src/tools/smatch/src/check_unused_ret.c
90
func = get_fn_name(expr);
usr/src/tools/smatch/src/check_unused_ret.c
99
static void match_assign_call(struct expression *expr)
usr/src/tools/smatch/src/check_unwind.c
104
static void match_release(const char *fn, struct expression *expr, void *_arg_no)
usr/src/tools/smatch/src/check_unwind.c
109
arg_expr = get_argument_from_call_expr(expr->args, arg_no);
usr/src/tools/smatch/src/check_unwind.c
115
static void match_unwind_function(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_unwind.c
39
static int was_passed_as_param(struct expression *expr)
usr/src/tools/smatch/src/check_unwind.c
45
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/check_unwind.c
57
static void print_unwind_functions(const char *fn, struct expression *expr, void *_arg_no)
usr/src/tools/smatch/src/check_unwind.c
63
arg_expr = get_argument_from_call_expr(expr->args, arg_no);
usr/src/tools/smatch/src/check_wait_for_common.c
22
static void match_wait_for_common(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/check_wait_for_common.c
26
if (!expr_unsigned(expr->left))
usr/src/tools/smatch/src/check_wait_for_common.c
28
name = expr_to_str(expr->left);
usr/src/tools/smatch/src/check_wine.c
27
void match_fatal_report(const char *fn, struct expression *expr,
usr/src/tools/smatch/src/check_wine.c
33
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_wine_WtoA.c
63
static void match_call(struct expression *expr)
usr/src/tools/smatch/src/check_wine_WtoA.c
71
fn_name = expr_to_var(expr->fn);
usr/src/tools/smatch/src/check_wine_filehandles.c
53
static void match_returns_handle(const char *fn, struct expression *expr,
usr/src/tools/smatch/src/check_wine_filehandles.c
59
left_name = expr_to_var_sym(expr->left, &left_sym);
usr/src/tools/smatch/src/check_wine_filehandles.c
62
set_state_expr(my_id, expr->left, &filehandle);
usr/src/tools/smatch/src/check_wine_filehandles.c
67
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/check_wine_filehandles.c
69
if (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/check_wine_filehandles.c
70
match_condition(expr->left);
usr/src/tools/smatch/src/check_wine_filehandles.c
72
if (get_state_expr(my_id, expr) == &filehandle) {
usr/src/tools/smatch/src/check_wine_filehandles.c
75
name = expr_to_var(expr);
usr/src/tools/smatch/src/check_wine_filehandles.c
77
set_state_expr(my_id, expr, &oktocheck);
usr/src/tools/smatch/src/check_wrong_size_arg.c
22
static void match_parameter(const char *fn, struct expression *expr, void *_param)
usr/src/tools/smatch/src/check_wrong_size_arg.c
28
arg = get_argument_from_call_expr(expr->args, param);
usr/src/tools/smatch/src/check_zero_to_err_ptr.c
122
static void match_err_ptr(const char *fn, struct expression *expr, void *data)
usr/src/tools/smatch/src/check_zero_to_err_ptr.c
130
arg_expr = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/check_zero_to_err_ptr.c
135
if (is_comparison_call(expr))
usr/src/tools/smatch/src/check_zero_to_err_ptr.c
138
if (next_line_checks_IS_ERR(expr, arg_expr))
usr/src/tools/smatch/src/check_zero_to_err_ptr.c
24
static int is_comparison_call(struct expression *expr)
usr/src/tools/smatch/src/check_zero_to_err_ptr.c
26
expr = expr_get_parent_expr(expr);
usr/src/tools/smatch/src/check_zero_to_err_ptr.c
27
if (!expr || expr->type != EXPR_COMPARE)
usr/src/tools/smatch/src/check_zero_to_err_ptr.c
29
if (expr->op != SPECIAL_EQUAL && expr->op != SPECIAL_NOTEQUAL)
usr/src/tools/smatch/src/check_zero_to_err_ptr.c
34
static int next_line_is_if(struct expression *expr)
usr/src/tools/smatch/src/check_zero_to_err_ptr.c
44
if (expr_equiv(expr, next))
usr/src/tools/smatch/src/compile-i386.c
1000
elem = expression_list_size(expr->expr_list);
usr/src/tools/smatch/src/compile-i386.c
1014
FOR_EACH_PTR(expr->expr_list, entry) {
usr/src/tools/smatch/src/compile-i386.c
1042
FOR_EACH_PTR(expr->expr_list, entry) {
usr/src/tools/smatch/src/compile-i386.c
1053
struct expression *expr = sym->initializer;
usr/src/tools/smatch/src/compile-i386.c
1066
sort_array(expr);
usr/src/tools/smatch/src/compile-i386.c
1068
FOR_EACH_PTR(expr->expr_list, entry) {
usr/src/tools/smatch/src/compile-i386.c
1230
static struct storage *emit_compare(struct expression *expr)
usr/src/tools/smatch/src/compile-i386.c
1232
struct storage *left = x86_expression(expr->left);
usr/src/tools/smatch/src/compile-i386.c
1233
struct storage *right = x86_expression(expr->right);
usr/src/tools/smatch/src/compile-i386.c
1237
unsigned int right_bits = expr->right->ctype->bit_size;
usr/src/tools/smatch/src/compile-i386.c
1239
switch(expr->op) {
usr/src/tools/smatch/src/compile-i386.c
1269
reg2 = get_reg_value(left, get_regclass(expr->left));
usr/src/tools/smatch/src/compile-i386.c
1286
static struct storage *emit_value(struct expression *expr)
usr/src/tools/smatch/src/compile-i386.c
1293
val->value = (long long) expr->value;
usr/src/tools/smatch/src/compile-i386.c
1302
val->value = (long long) expr->value;
usr/src/tools/smatch/src/compile-i386.c
1308
static struct storage *emit_divide(struct expression *expr, struct storage *left, struct storage *right)
usr/src/tools/smatch/src/compile-i386.c
1321
new = stack_alloc(expr->ctype->bit_size / 8);
usr/src/tools/smatch/src/compile-i386.c
1333
if (expr->op == '%')
usr/src/tools/smatch/src/compile-i386.c
1342
static struct storage *emit_binop(struct expression *expr)
usr/src/tools/smatch/src/compile-i386.c
1344
struct storage *left = x86_expression(expr->left);
usr/src/tools/smatch/src/compile-i386.c
1345
struct storage *right = x86_expression(expr->right);
usr/src/tools/smatch/src/compile-i386.c
1354
if ((expr->op == '/') || (expr->op == '%'))
usr/src/tools/smatch/src/compile-i386.c
1355
return emit_divide(expr, left, right);
usr/src/tools/smatch/src/compile-i386.c
1357
is_signed = is_signed_type(expr->ctype);
usr/src/tools/smatch/src/compile-i386.c
1359
switch (expr->op) {
usr/src/tools/smatch/src/compile-i386.c
1391
warning(expr->pos, "bogus bitwise and for logical op (should use '2*setne + and' or something)");
usr/src/tools/smatch/src/compile-i386.c
1395
warning(expr->pos, "bogus bitwise or for logical op (should use 'or + setne' or something)");
usr/src/tools/smatch/src/compile-i386.c
1399
error_die(expr->pos, "unhandled binop '%s'\n", show_special(expr->op));
usr/src/tools/smatch/src/compile-i386.c
1405
switch (expr->ctype->bit_size) {
usr/src/tools/smatch/src/compile-i386.c
1430
new = stack_alloc(expr->ctype->bit_size / 8);
usr/src/tools/smatch/src/compile-i386.c
1507
static struct storage *emit_inc_dec(struct expression *expr, int postop)
usr/src/tools/smatch/src/compile-i386.c
1509
struct storage *addr = x86_address_gen(expr->unop);
usr/src/tools/smatch/src/compile-i386.c
1513
strcpy(opname, opbits(expr->op == SPECIAL_INCREMENT ? "inc" : "dec",
usr/src/tools/smatch/src/compile-i386.c
1514
expr->ctype->bit_size));
usr/src/tools/smatch/src/compile-i386.c
1519
emit_copy(new, addr, expr->unop->ctype);
usr/src/tools/smatch/src/compile-i386.c
1530
static struct storage *emit_postop(struct expression *expr)
usr/src/tools/smatch/src/compile-i386.c
1532
return emit_inc_dec(expr, 1);
usr/src/tools/smatch/src/compile-i386.c
1538
struct expression *expr = stmt->ret_value;
usr/src/tools/smatch/src/compile-i386.c
1541
if (expr && expr->ctype) {
usr/src/tools/smatch/src/compile-i386.c
1542
val = x86_expression(expr);
usr/src/tools/smatch/src/compile-i386.c
1544
emit_move(val, REG_EAX, expr->ctype, "return");
usr/src/tools/smatch/src/compile-i386.c
1555
static struct storage *emit_conditional_expr(struct expression *expr)
usr/src/tools/smatch/src/compile-i386.c
1558
struct storage *new = stack_alloc(expr->ctype->bit_size / 8);
usr/src/tools/smatch/src/compile-i386.c
1562
cond = x86_expression(expr->conditional);
usr/src/tools/smatch/src/compile-i386.c
1566
stot = x86_expression(expr->cond_true);
usr/src/tools/smatch/src/compile-i386.c
1568
emit_copy(new, stot, expr->ctype);
usr/src/tools/smatch/src/compile-i386.c
1573
stof = x86_expression(expr->cond_false);
usr/src/tools/smatch/src/compile-i386.c
1575
emit_copy(new, stof, expr->ctype);
usr/src/tools/smatch/src/compile-i386.c
1583
static struct storage *emit_select_expr(struct expression *expr)
usr/src/tools/smatch/src/compile-i386.c
1585
struct storage *cond = x86_expression(expr->conditional);
usr/src/tools/smatch/src/compile-i386.c
1586
struct storage *stot = x86_expression(expr->cond_true);
usr/src/tools/smatch/src/compile-i386.c
1587
struct storage *stof = x86_expression(expr->cond_false);
usr/src/tools/smatch/src/compile-i386.c
1592
reg_cond = get_reg_value(cond, get_regclass(expr->conditional));
usr/src/tools/smatch/src/compile-i386.c
1593
reg_true = get_reg_value(stot, get_regclass(expr));
usr/src/tools/smatch/src/compile-i386.c
1594
reg_false = get_reg_value(stof, get_regclass(expr));
usr/src/tools/smatch/src/compile-i386.c
1604
emit_move(reg_true, new, expr->ctype, NULL);
usr/src/tools/smatch/src/compile-i386.c
1614
struct expression *expr = sym->initializer;
usr/src/tools/smatch/src/compile-i386.c
1621
if (expr == NULL) {
usr/src/tools/smatch/src/compile-i386.c
1628
priv->addr = x86_expression(expr);
usr/src/tools/smatch/src/compile-i386.c
1635
static struct storage *emit_string_expr(struct expression *expr)
usr/src/tools/smatch/src/compile-i386.c
1641
push_cstring(f, expr->string, label);
usr/src/tools/smatch/src/compile-i386.c
1649
static struct storage *emit_cast_expr(struct expression *expr)
usr/src/tools/smatch/src/compile-i386.c
1652
struct storage *op = x86_expression(expr->cast_expression);
usr/src/tools/smatch/src/compile-i386.c
1656
old_type = expr->cast_expression->ctype;
usr/src/tools/smatch/src/compile-i386.c
1657
new_type = expr->cast_type;
usr/src/tools/smatch/src/compile-i386.c
1672
static struct storage *emit_regular_preop(struct expression *expr)
usr/src/tools/smatch/src/compile-i386.c
1674
struct storage *target = x86_expression(expr->unop);
usr/src/tools/smatch/src/compile-i386.c
1678
switch (expr->op) {
usr/src/tools/smatch/src/compile-i386.c
1683
emit_move(target, REG_EAX, expr->unop->ctype, NULL);
usr/src/tools/smatch/src/compile-i386.c
1686
emit_move(REG_EDX, new, expr->unop->ctype, NULL);
usr/src/tools/smatch/src/compile-i386.c
1694
emit_move(target, REG_EAX, expr->unop->ctype, NULL);
usr/src/tools/smatch/src/compile-i386.c
1696
emit_move(REG_EAX, new, expr->unop->ctype, NULL);
usr/src/tools/smatch/src/compile-i386.c
1728
struct expression *expr = case_stmt->case_expression;
usr/src/tools/smatch/src/compile-i386.c
1732
if (!expr)
usr/src/tools/smatch/src/compile-i386.c
1737
struct storage *case_val = new_val(expr->value);
usr/src/tools/smatch/src/compile-i386.c
1739
assert (expr->type == EXPR_VALUE);
usr/src/tools/smatch/src/compile-i386.c
196
static struct storage *x86_address_gen(struct expression *expr);
usr/src/tools/smatch/src/compile-i386.c
200
static struct storage *x86_expression(struct expression *expr);
usr/src/tools/smatch/src/compile-i386.c
2065
static struct storage *x86_call_expression(struct expression *expr)
usr/src/tools/smatch/src/compile-i386.c
2074
if (!expr->ctype) {
usr/src/tools/smatch/src/compile-i386.c
2075
warning(expr->pos, "\tcall with no type!");
usr/src/tools/smatch/src/compile-i386.c
2080
FOR_EACH_PTR_REVERSE(expr->args, arg) {
usr/src/tools/smatch/src/compile-i386.c
2099
fn = expr->fn;
usr/src/tools/smatch/src/compile-i386.c
2137
static struct storage *x86_address_gen(struct expression *expr)
usr/src/tools/smatch/src/compile-i386.c
2144
addr = x86_expression(expr->unop);
usr/src/tools/smatch/src/compile-i386.c
2145
if (expr->unop->type == EXPR_SYMBOL)
usr/src/tools/smatch/src/compile-i386.c
2160
static struct storage *x86_assignment(struct expression *expr)
usr/src/tools/smatch/src/compile-i386.c
2162
struct expression *target = expr->left;
usr/src/tools/smatch/src/compile-i386.c
2165
if (!expr->ctype)
usr/src/tools/smatch/src/compile-i386.c
2168
val = x86_expression(expr->right);
usr/src/tools/smatch/src/compile-i386.c
2175
emit_copy(addr, val, expr->ctype);
usr/src/tools/smatch/src/compile-i386.c
2183
emit_move(val, addr, expr->left->ctype, NULL);
usr/src/tools/smatch/src/compile-i386.c
2193
static int x86_initialization(struct symbol *sym, struct expression *expr)
usr/src/tools/smatch/src/compile-i386.c
2198
if (!expr->ctype)
usr/src/tools/smatch/src/compile-i386.c
2201
bits = expr->ctype->bit_size;
usr/src/tools/smatch/src/compile-i386.c
2202
val = x86_expression(expr);
usr/src/tools/smatch/src/compile-i386.c
2210
static struct storage *x86_access(struct expression *expr)
usr/src/tools/smatch/src/compile-i386.c
2212
return x86_address_gen(expr);
usr/src/tools/smatch/src/compile-i386.c
2215
static struct storage *x86_preop(struct expression *expr)
usr/src/tools/smatch/src/compile-i386.c
2222
if (expr->op == '*')
usr/src/tools/smatch/src/compile-i386.c
2223
return x86_access(expr);
usr/src/tools/smatch/src/compile-i386.c
2224
if (expr->op == SPECIAL_INCREMENT || expr->op == SPECIAL_DECREMENT)
usr/src/tools/smatch/src/compile-i386.c
2225
return emit_inc_dec(expr, 0);
usr/src/tools/smatch/src/compile-i386.c
2226
return emit_regular_preop(expr);
usr/src/tools/smatch/src/compile-i386.c
2248
struct expression *expr = sym->initializer;
usr/src/tools/smatch/src/compile-i386.c
2251
if (expr)
usr/src/tools/smatch/src/compile-i386.c
2252
new = x86_expression(expr);
usr/src/tools/smatch/src/compile-i386.c
2266
static struct storage *x86_label_expr(struct expression *expr)
usr/src/tools/smatch/src/compile-i386.c
2269
printf("\tmovi.%d\t\tv%d,.L%p\n", bits_in_pointer, new->pseudo, expr->label_symbol);
usr/src/tools/smatch/src/compile-i386.c
2273
static struct storage *x86_statement_expr(struct expression *expr)
usr/src/tools/smatch/src/compile-i386.c
2275
return x86_statement(expr->statement);
usr/src/tools/smatch/src/compile-i386.c
2278
static int x86_position_expr(struct expression *expr, struct symbol *base)
usr/src/tools/smatch/src/compile-i386.c
2280
struct storage *new = x86_expression(expr->init_expr);
usr/src/tools/smatch/src/compile-i386.c
2281
struct symbol *ctype = expr->init_expr->ctype;
usr/src/tools/smatch/src/compile-i386.c
2284
expr->init_offset, ctype->bit_offset,
usr/src/tools/smatch/src/compile-i386.c
2289
static void x86_initializer_expr(struct expression *expr, struct symbol *ctype)
usr/src/tools/smatch/src/compile-i386.c
2293
FOR_EACH_PTR(expr->expr_list, entry) {
usr/src/tools/smatch/src/compile-i386.c
2317
static struct storage *x86_expression(struct expression *expr)
usr/src/tools/smatch/src/compile-i386.c
2319
if (!expr)
usr/src/tools/smatch/src/compile-i386.c
2322
if (!expr->ctype) {
usr/src/tools/smatch/src/compile-i386.c
2323
struct position *pos = &expr->pos;
usr/src/tools/smatch/src/compile-i386.c
2330
switch (expr->type) {
usr/src/tools/smatch/src/compile-i386.c
2334
return x86_call_expression(expr);
usr/src/tools/smatch/src/compile-i386.c
2337
return x86_assignment(expr);
usr/src/tools/smatch/src/compile-i386.c
2340
return emit_compare(expr);
usr/src/tools/smatch/src/compile-i386.c
2344
return emit_binop(expr);
usr/src/tools/smatch/src/compile-i386.c
2346
return x86_preop(expr);
usr/src/tools/smatch/src/compile-i386.c
2348
return emit_postop(expr);
usr/src/tools/smatch/src/compile-i386.c
2350
return emit_symbol_expr_init(expr->symbol);
usr/src/tools/smatch/src/compile-i386.c
2354
warning(expr->pos, "invalid expression after evaluation");
usr/src/tools/smatch/src/compile-i386.c
2359
return emit_cast_expr(expr);
usr/src/tools/smatch/src/compile-i386.c
2361
return emit_value(expr);
usr/src/tools/smatch/src/compile-i386.c
2363
return emit_string_expr(expr);
usr/src/tools/smatch/src/compile-i386.c
2365
x86_initializer_expr(expr, expr->ctype);
usr/src/tools/smatch/src/compile-i386.c
2368
return emit_select_expr(expr);
usr/src/tools/smatch/src/compile-i386.c
2370
return emit_conditional_expr(expr);
usr/src/tools/smatch/src/compile-i386.c
2372
return x86_statement_expr(expr);
usr/src/tools/smatch/src/compile-i386.c
2374
return x86_label_expr(expr);
usr/src/tools/smatch/src/compile-i386.c
2379
warning(expr->pos, "unable to show plain initializer position expression");
usr/src/tools/smatch/src/compile-i386.c
2382
warning(expr->pos, "unable to show identifier expression");
usr/src/tools/smatch/src/compile-i386.c
2385
warning(expr->pos, "unable to show index expression");
usr/src/tools/smatch/src/compile-i386.c
2388
warning(expr->pos, "unable to show type expression");
usr/src/tools/smatch/src/compile-i386.c
2391
warning(expr->pos, "floating point support is not implemented");
usr/src/tools/smatch/src/compile-i386.c
329
static struct regclass *get_regclass(struct expression *expr)
usr/src/tools/smatch/src/compile-i386.c
331
return get_regclass_bits(expr->ctype->bit_size);
usr/src/tools/smatch/src/compile-i386.c
915
static void emit_scalar(struct expression *expr, unsigned int bit_size)
usr/src/tools/smatch/src/compile-i386.c
920
assert(expr->type == EXPR_VALUE);
usr/src/tools/smatch/src/compile-i386.c
922
if (expr->value == 0ULL) {
usr/src/tools/smatch/src/compile-i386.c
927
ll = (long long) expr->value;
usr/src/tools/smatch/src/compile-i386.c
961
struct expression *expr)
usr/src/tools/smatch/src/compile-i386.c
968
if (expr->type == EXPR_VALUE) {
usr/src/tools/smatch/src/compile-i386.c
972
emit_scalar(expr, sym->bit_size / get_expression_value(base_type->array_size));
usr/src/tools/smatch/src/compile-i386.c
975
if (expr->type != EXPR_INITIALIZER)
usr/src/tools/smatch/src/compile-i386.c
995
static void sort_array(struct expression *expr)
usr/src/tools/smatch/src/dissect.c
159
static inline struct symbol *expr_symbol(struct expression *expr)
usr/src/tools/smatch/src/dissect.c
161
struct symbol *sym = expr->symbol;
usr/src/tools/smatch/src/dissect.c
164
sym = lookup_symbol(expr->symbol_name, NS_SYMBOL);
usr/src/tools/smatch/src/dissect.c
167
sym = alloc_symbol(expr->pos, SYM_BAD);
usr/src/tools/smatch/src/dissect.c
168
bind_symbol(sym, expr->symbol_name, NS_SYMBOL);
usr/src/tools/smatch/src/dissect.c
179
static struct symbol *report_symbol(usage_t mode, struct expression *expr)
usr/src/tools/smatch/src/dissect.c
181
struct symbol *sym = expr_symbol(expr);
usr/src/tools/smatch/src/dissect.c
185
return report_member(mode, &expr->pos, ret, expr->symbol);
usr/src/tools/smatch/src/dissect.c
188
reporter->r_symbol(fix_mode(ret, mode), &expr->pos, sym);
usr/src/tools/smatch/src/dissect.c
291
static struct expression *peek_preop(struct expression *expr, int op)
usr/src/tools/smatch/src/dissect.c
294
if (expr->type != EXPR_PREOP)
usr/src/tools/smatch/src/dissect.c
296
if (expr->op == op)
usr/src/tools/smatch/src/dissect.c
297
return expr->unop;
usr/src/tools/smatch/src/dissect.c
298
if (expr->op == '(')
usr/src/tools/smatch/src/dissect.c
299
expr = expr->unop;
usr/src/tools/smatch/src/dissect.c
302
} while (expr);
usr/src/tools/smatch/src/dissect.c
307
static struct symbol *do_expression(usage_t mode, struct expression *expr)
usr/src/tools/smatch/src/dissect.c
312
if (expr) switch (expr->type) {
usr/src/tools/smatch/src/dissect.c
314
warning(expr->pos, "bad expr->type: %d", expr->type);
usr/src/tools/smatch/src/dissect.c
327
ret = do_statement(mode, expr->statement);
usr/src/tools/smatch/src/dissect.c
330
do_expression(U_VOID, expr->cast_expression);
usr/src/tools/smatch/src/dissect.c
333
do_expression(U_VOID, expr->left);
usr/src/tools/smatch/src/dissect.c
334
ret = do_expression(mode, expr->right);
usr/src/tools/smatch/src/dissect.c
337
ret = base_type(expr->cast_type);
usr/src/tools/smatch/src/dissect.c
338
do_initializer(ret, expr->cast_expression);
usr/src/tools/smatch/src/dissect.c
342
do_expression(mode, expr->left);
usr/src/tools/smatch/src/dissect.c
343
do_expression(mode, expr->right);
usr/src/tools/smatch/src/dissect.c
346
do_expression(expr->cond_true
usr/src/tools/smatch/src/dissect.c
348
expr->conditional);
usr/src/tools/smatch/src/dissect.c
349
ret = do_expression(mode, expr->cond_true);
usr/src/tools/smatch/src/dissect.c
350
ret = do_expression(mode, expr->cond_false);
usr/src/tools/smatch/src/dissect.c
353
ret = do_expression(U_R_PTR, expr->fn);
usr/src/tools/smatch/src/dissect.c
356
DO_2_LIST(ret->arguments, expr->args, arg, val,
usr/src/tools/smatch/src/dissect.c
363
if (expr->op == '=')
usr/src/tools/smatch/src/dissect.c
365
ret = do_expression(mode, expr->left);
usr/src/tools/smatch/src/dissect.c
366
report_implicit(mode, &expr->pos, ret);
usr/src/tools/smatch/src/dissect.c
367
mode = expr->op == '='
usr/src/tools/smatch/src/dissect.c
369
do_expression(mode, expr->right);
usr/src/tools/smatch/src/dissect.c
374
l = do_expression(mode, expr->left);
usr/src/tools/smatch/src/dissect.c
375
r = do_expression(mode, expr->right);
usr/src/tools/smatch/src/dissect.c
376
if (expr->op != '+' && expr->op != '-')
usr/src/tools/smatch/src/dissect.c
385
struct expression *unop = expr->unop;
usr/src/tools/smatch/src/dissect.c
387
switch (expr->op) {
usr/src/tools/smatch/src/dissect.c
397
if ((expr = peek_preop(unop, '*')))
usr/src/tools/smatch/src/dissect.c
404
if ((expr = peek_preop(unop, '&')))
usr/src/tools/smatch/src/dissect.c
426
p_type = do_expression(p_mode, expr->deref);
usr/src/tools/smatch/src/dissect.c
428
ret = report_member(mode, &expr->pos, p_type,
usr/src/tools/smatch/src/dissect.c
429
lookup_member(p_type, expr->member, NULL));
usr/src/tools/smatch/src/dissect.c
433
struct symbol *in = base_type(expr->in);
usr/src/tools/smatch/src/dissect.c
436
if (expr->op == '.') {
usr/src/tools/smatch/src/dissect.c
437
in = report_member(U_VOID, &expr->pos, in,
usr/src/tools/smatch/src/dissect.c
438
lookup_member(in, expr->ident, NULL));
usr/src/tools/smatch/src/dissect.c
440
do_expression(U_R_VAL, expr->index);
usr/src/tools/smatch/src/dissect.c
443
} while ((expr = expr->down));
usr/src/tools/smatch/src/dissect.c
447
ret = report_symbol(mode, expr);
usr/src/tools/smatch/src/dissect.c
457
DO_LIST(xputs, expr,
usr/src/tools/smatch/src/dissect.c
459
do_expression(U_W_AOF | mode, expr));
usr/src/tools/smatch/src/dissect.c
529
static struct symbol *do_initializer(struct symbol *type, struct expression *expr)
usr/src/tools/smatch/src/dissect.c
535
if (expr) switch (expr->type) {
usr/src/tools/smatch/src/dissect.c
537
do_expression(u_lval(type), expr);
usr/src/tools/smatch/src/dissect.c
540
do_initializer(base_type(type), expr->idx_expression);
usr/src/tools/smatch/src/dissect.c
544
FOR_EACH_PTR(expr->expr_list, m_expr) {
usr/src/tools/smatch/src/dissect.c
61
*do_initializer(struct symbol *type, struct expression *expr),
usr/src/tools/smatch/src/dissect.c
62
*do_expression(usage_t mode, struct expression *expr),
usr/src/tools/smatch/src/evaluate.c
100
struct symbol *sym = alloc_symbol(expr->pos, SYM_NODE);
usr/src/tools/smatch/src/evaluate.c
1002
if (lclass & rclass & TYPE_PTR && expr->op == '-')
usr/src/tools/smatch/src/evaluate.c
1003
return evaluate_ptr_sub(expr);
usr/src/tools/smatch/src/evaluate.c
1005
return bad_expr_type(expr);
usr/src/tools/smatch/src/evaluate.c
1008
static struct symbol *evaluate_comma(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
101
struct symbol *array = alloc_symbol(expr->pos, SYM_ARRAY);
usr/src/tools/smatch/src/evaluate.c
1010
expr->ctype = degenerate(expr->right);
usr/src/tools/smatch/src/evaluate.c
1011
if (expr->ctype == &null_ctype)
usr/src/tools/smatch/src/evaluate.c
1012
expr->ctype = &ptr_ctype;
usr/src/tools/smatch/src/evaluate.c
1013
expr->flags &= expr->left->flags & expr->right->flags;
usr/src/tools/smatch/src/evaluate.c
1014
return expr->ctype;
usr/src/tools/smatch/src/evaluate.c
102
struct expression *addr = alloc_expression(expr->pos, EXPR_SYMBOL);
usr/src/tools/smatch/src/evaluate.c
103
struct expression *initstr = alloc_expression(expr->pos, EXPR_STRING);
usr/src/tools/smatch/src/evaluate.c
104
unsigned int length = expr->string->length;
usr/src/tools/smatch/src/evaluate.c
1045
static struct symbol *evaluate_compare(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
1047
struct expression *left = expr->left, *right = expr->right;
usr/src/tools/smatch/src/evaluate.c
106
sym->array_size = alloc_const_expression(expr->pos, length);
usr/src/tools/smatch/src/evaluate.c
1060
expr->flags = CEF_SET_ICE;
usr/src/tools/smatch/src/evaluate.c
1065
warning(expr->pos, "testing a 'safe expression'");
usr/src/tools/smatch/src/evaluate.c
1067
expr->flags = left->flags & right->flags & ~CEF_CONST_MASK & ~CEF_ADDR;
usr/src/tools/smatch/src/evaluate.c
1071
ctype = usual_conversions(expr->op, expr->left, expr->right,
usr/src/tools/smatch/src/evaluate.c
1073
expr->left = cast_to(expr->left, ctype);
usr/src/tools/smatch/src/evaluate.c
1074
expr->right = cast_to(expr->right, ctype);
usr/src/tools/smatch/src/evaluate.c
1076
expr->op = modify_for_unsigned(expr->op);
usr/src/tools/smatch/src/evaluate.c
1082
return bad_expr_type(expr);
usr/src/tools/smatch/src/evaluate.c
1085
if (expr->op == SPECIAL_EQUAL || expr->op == SPECIAL_NOTEQUAL) {
usr/src/tools/smatch/src/evaluate.c
1093
int positive = expr->op == SPECIAL_EQUAL;
usr/src/tools/smatch/src/evaluate.c
1094
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/evaluate.c
1095
expr->value = positive;
usr/src/tools/smatch/src/evaluate.c
1109
return bad_expr_type(expr);
usr/src/tools/smatch/src/evaluate.c
1110
expr->op = modify_for_unsigned(expr->op);
usr/src/tools/smatch/src/evaluate.c
1116
if (expr->op == SPECIAL_EQUAL || expr->op == SPECIAL_NOTEQUAL) {
usr/src/tools/smatch/src/evaluate.c
1135
expression_error(expr, "incompatible types in comparison expression (%s):", typediff);
usr/src/tools/smatch/src/evaluate.c
1136
info(expr->pos, " %s", show_typename(ltype));
usr/src/tools/smatch/src/evaluate.c
1137
info(expr->pos, " %s", show_typename(rtype));
usr/src/tools/smatch/src/evaluate.c
1142
expr->ctype = &int_ctype;
usr/src/tools/smatch/src/evaluate.c
115
initstr->string = expr->string;
usr/src/tools/smatch/src/evaluate.c
1153
static struct symbol *evaluate_conditional_expression(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
1161
if (!evaluate_conditional(expr->conditional, 0))
usr/src/tools/smatch/src/evaluate.c
1163
if (!evaluate_expression(expr->cond_false))
usr/src/tools/smatch/src/evaluate.c
1166
ctype = degenerate(expr->conditional);
usr/src/tools/smatch/src/evaluate.c
1167
rtype = degenerate(expr->cond_false);
usr/src/tools/smatch/src/evaluate.c
1169
cond = &expr->conditional;
usr/src/tools/smatch/src/evaluate.c
1171
if (expr->cond_true) {
usr/src/tools/smatch/src/evaluate.c
1172
if (!evaluate_expression(expr->cond_true))
usr/src/tools/smatch/src/evaluate.c
1174
ltype = degenerate(expr->cond_true);
usr/src/tools/smatch/src/evaluate.c
1175
cond = &expr->cond_true;
usr/src/tools/smatch/src/evaluate.c
1178
expr->flags = (expr->conditional->flags & (*cond)->flags &
usr/src/tools/smatch/src/evaluate.c
1179
expr->cond_false->flags & ~CEF_CONST_MASK);
usr/src/tools/smatch/src/evaluate.c
1193
if (expr->conditional->flags & (CEF_ACE | CEF_ADDR))
usr/src/tools/smatch/src/evaluate.c
1194
expr->flags = (*cond)->flags & expr->cond_false->flags & ~CEF_CONST_MASK;
usr/src/tools/smatch/src/evaluate.c
1199
ctype = usual_conversions('?', *cond, expr->cond_false,
usr/src/tools/smatch/src/evaluate.c
1202
expr->cond_false = cast_to(expr->cond_false, ctype);
usr/src/tools/smatch/src/evaluate.c
1208
int is_null2 = is_null_pointer_constant(expr->cond_false);
usr/src/tools/smatch/src/evaluate.c
1212
expr->cond_false = cast_to(expr->cond_false, &ptr_ctype);
usr/src/tools/smatch/src/evaluate.c
1225
bad_null(expr->cond_false);
usr/src/tools/smatch/src/evaluate.c
1226
expr->cond_false = cast_to(expr->cond_false, ltype);
usr/src/tools/smatch/src/evaluate.c
127
expr->type = EXPR_PREOP;
usr/src/tools/smatch/src/evaluate.c
1273
expression_error(expr, "incompatible types in conditional expression (%s):", typediff);
usr/src/tools/smatch/src/evaluate.c
1274
info(expr->pos, " %s", show_typename(ltype));
usr/src/tools/smatch/src/evaluate.c
1275
info(expr->pos, " %s", show_typename(rtype));
usr/src/tools/smatch/src/evaluate.c
128
expr->op = '*';
usr/src/tools/smatch/src/evaluate.c
1280
switch (expr_truth_value(expr->conditional)) {
usr/src/tools/smatch/src/evaluate.c
1281
case 1: expr->ctype = ltype;
usr/src/tools/smatch/src/evaluate.c
1283
case 0: expr->ctype = rtype;
usr/src/tools/smatch/src/evaluate.c
129
expr->unop = addr;
usr/src/tools/smatch/src/evaluate.c
1291
expr->ctype = ctype;
usr/src/tools/smatch/src/evaluate.c
130
expr->ctype = sym;
usr/src/tools/smatch/src/evaluate.c
1302
expr->cond_false = cast_to(expr->cond_false, ctype);
usr/src/tools/smatch/src/evaluate.c
1315
static int evaluate_assign_op(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
1317
struct symbol *target = expr->left->ctype;
usr/src/tools/smatch/src/evaluate.c
1318
struct symbol *source = expr->right->ctype;
usr/src/tools/smatch/src/evaluate.c
1322
int op = expr->op;
usr/src/tools/smatch/src/evaluate.c
1326
expression_error(expr, "invalid assignment");
usr/src/tools/smatch/src/evaluate.c
1331
warning(expr->pos, "bad assignment (%s) to %s",
usr/src/tools/smatch/src/evaluate.c
1333
expr->right = cast_to(expr->right, target);
usr/src/tools/smatch/src/evaluate.c
1339
if (!restricted_value(expr->right, t))
usr/src/tools/smatch/src/evaluate.c
1343
unrestrict(expr->right, sclass, &s);
usr/src/tools/smatch/src/evaluate.c
1351
warning(expr->pos, "invalid assignment: %s", show_special(op));
usr/src/tools/smatch/src/evaluate.c
1352
info(expr->pos, " left side has type %s", show_typename(t));
usr/src/tools/smatch/src/evaluate.c
1353
info(expr->pos, " right side has type %s", show_typename(s));
usr/src/tools/smatch/src/evaluate.c
1354
expr->right = cast_to(expr->right, target);
usr/src/tools/smatch/src/evaluate.c
1359
unrestrict(expr->right, sclass, &s);
usr/src/tools/smatch/src/evaluate.c
1360
evaluate_ptr_add(expr, s);
usr/src/tools/smatch/src/evaluate.c
1363
expression_error(expr, "invalid pointer assignment");
usr/src/tools/smatch/src/evaluate.c
1367
expression_error(expr, "invalid assignment");
usr/src/tools/smatch/src/evaluate.c
1371
target = usual_conversions(op, expr->left, expr->right,
usr/src/tools/smatch/src/evaluate.c
1374
expr->right = cast_to(expr->right, target);
usr/src/tools/smatch/src/evaluate.c
1496
static int compatible_assignment_types(struct expression *expr, struct symbol *target,
usr/src/tools/smatch/src/evaluate.c
1503
warning(expr->pos, "incorrect type in %s (%s)", where, typediff);
usr/src/tools/smatch/src/evaluate.c
1504
info(expr->pos, " expected %s", show_typename(target));
usr/src/tools/smatch/src/evaluate.c
1505
info(expr->pos, " got %s", show_typename(source));
usr/src/tools/smatch/src/evaluate.c
1530
static int compatible_argument_type(struct expression *expr, struct symbol *target,
usr/src/tools/smatch/src/evaluate.c
1536
return compatible_assignment_types(expr, target, rp, where);
usr/src/tools/smatch/src/evaluate.c
1539
static void mark_assigned(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
1543
if (!expr)
usr/src/tools/smatch/src/evaluate.c
1545
switch (expr->type) {
usr/src/tools/smatch/src/evaluate.c
1547
sym = expr->symbol;
usr/src/tools/smatch/src/evaluate.c
1556
mark_assigned(expr->left);
usr/src/tools/smatch/src/evaluate.c
1557
mark_assigned(expr->right);
usr/src/tools/smatch/src/evaluate.c
1561
mark_assigned(expr->cast_expression);
usr/src/tools/smatch/src/evaluate.c
1564
mark_assigned(expr->base);
usr/src/tools/smatch/src/evaluate.c
1581
static struct symbol *evaluate_assignment(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
1583
struct expression *left = expr->left;
usr/src/tools/smatch/src/evaluate.c
1587
expression_error(expr, "not an lvalue");
usr/src/tools/smatch/src/evaluate.c
1593
if (expr->op != '=') {
usr/src/tools/smatch/src/evaluate.c
1594
if (!evaluate_assign_op(expr))
usr/src/tools/smatch/src/evaluate.c
1597
if (!compatible_assignment_types(expr, ltype, &expr->right, "assignment"))
usr/src/tools/smatch/src/evaluate.c
1603
expr->ctype = ltype;
usr/src/tools/smatch/src/evaluate.c
1656
static struct symbol *create_pointer(struct expression *expr, struct symbol *sym, int degenerate)
usr/src/tools/smatch/src/evaluate.c
1658
struct symbol *node = alloc_symbol(expr->pos, SYM_NODE);
usr/src/tools/smatch/src/evaluate.c
1659
struct symbol *ptr = alloc_symbol(expr->pos, SYM_PTR);
usr/src/tools/smatch/src/evaluate.c
1670
warning(expr->pos, "taking address of 'register' variable '%s'", show_ident(sym->ident));
usr/src/tools/smatch/src/evaluate.c
1689
static struct symbol *degenerate(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
1693
if (!expr)
usr/src/tools/smatch/src/evaluate.c
1695
ctype = expr->ctype;
usr/src/tools/smatch/src/evaluate.c
1710
if (expr->type == EXPR_SLICE) {
usr/src/tools/smatch/src/evaluate.c
1711
struct symbol *a = alloc_symbol(expr->pos, SYM_NODE);
usr/src/tools/smatch/src/evaluate.c
1714
a->ctype.base_type = expr->base->ctype;
usr/src/tools/smatch/src/evaluate.c
1715
a->bit_size = expr->base->ctype->bit_size;
usr/src/tools/smatch/src/evaluate.c
1716
a->array_size = expr->base->ctype->array_size;
usr/src/tools/smatch/src/evaluate.c
1718
e0 = alloc_expression(expr->pos, EXPR_SYMBOL);
usr/src/tools/smatch/src/evaluate.c
1722
e1 = alloc_expression(expr->pos, EXPR_PREOP);
usr/src/tools/smatch/src/evaluate.c
1725
e1->ctype = expr->base->ctype; /* XXX */
usr/src/tools/smatch/src/evaluate.c
1727
e2 = alloc_expression(expr->pos, EXPR_ASSIGNMENT);
usr/src/tools/smatch/src/evaluate.c
1729
e2->right = expr->base;
usr/src/tools/smatch/src/evaluate.c
1731
e2->ctype = expr->base->ctype;
usr/src/tools/smatch/src/evaluate.c
1733
if (expr->r_bitpos) {
usr/src/tools/smatch/src/evaluate.c
1734
e3 = alloc_expression(expr->pos, EXPR_BINOP);
usr/src/tools/smatch/src/evaluate.c
1737
e3->right = alloc_const_expression(expr->pos,
usr/src/tools/smatch/src/evaluate.c
1738
bits_to_bytes(expr->r_bitpos));
usr/src/tools/smatch/src/evaluate.c
1744
e4 = alloc_expression(expr->pos, EXPR_COMMA);
usr/src/tools/smatch/src/evaluate.c
1749
expr->unop = e4;
usr/src/tools/smatch/src/evaluate.c
1750
expr->type = EXPR_PREOP;
usr/src/tools/smatch/src/evaluate.c
1751
expr->op = '*';
usr/src/tools/smatch/src/evaluate.c
1754
if (expr->op != '*' || expr->type != EXPR_PREOP) {
usr/src/tools/smatch/src/evaluate.c
1755
expression_error(expr, "strange non-value function or array");
usr/src/tools/smatch/src/evaluate.c
1758
*expr = *expr->unop;
usr/src/tools/smatch/src/evaluate.c
1759
ctype = create_pointer(expr, ctype, 1);
usr/src/tools/smatch/src/evaluate.c
1760
expr->ctype = ctype;
usr/src/tools/smatch/src/evaluate.c
1767
static struct symbol *evaluate_addressof(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
1769
struct expression *op = expr->unop;
usr/src/tools/smatch/src/evaluate.c
1773
expression_error(expr, "not addressable");
usr/src/tools/smatch/src/evaluate.c
1777
*expr = *op->unop;
usr/src/tools/smatch/src/evaluate.c
1779
if (expr->type == EXPR_SYMBOL) {
usr/src/tools/smatch/src/evaluate.c
1780
struct symbol *sym = expr->symbol;
usr/src/tools/smatch/src/evaluate.c
1789
if (expr->ctype == &lazy_ptr_ctype) {
usr/src/tools/smatch/src/evaluate.c
1790
ctype = create_pointer(expr, ctype, 0);
usr/src/tools/smatch/src/evaluate.c
1791
expr->ctype = ctype;
usr/src/tools/smatch/src/evaluate.c
1793
return expr->ctype;
usr/src/tools/smatch/src/evaluate.c
1797
static struct symbol *evaluate_dereference(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
1799
struct expression *op = expr->unop;
usr/src/tools/smatch/src/evaluate.c
1804
*expr = *op->unop;
usr/src/tools/smatch/src/evaluate.c
1805
expr->flags = CEF_NONE;
usr/src/tools/smatch/src/evaluate.c
1806
return expr->ctype;
usr/src/tools/smatch/src/evaluate.c
1820
expression_error(expr, "cannot dereference this type");
usr/src/tools/smatch/src/evaluate.c
1823
*expr = *op;
usr/src/tools/smatch/src/evaluate.c
1824
return expr->ctype;
usr/src/tools/smatch/src/evaluate.c
1826
node = alloc_symbol(expr->pos, SYM_NODE);
usr/src/tools/smatch/src/evaluate.c
1844
node = alloc_symbol(expr->pos, SYM_NODE);
usr/src/tools/smatch/src/evaluate.c
1853
expr->ctype = node;
usr/src/tools/smatch/src/evaluate.c
1860
static struct symbol *evaluate_postop(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
1862
struct expression *op = expr->unop;
usr/src/tools/smatch/src/evaluate.c
1868
expression_error(expr, "need scalar for ++/--");
usr/src/tools/smatch/src/evaluate.c
1871
if (!lvalue_expression(expr->unop)) {
usr/src/tools/smatch/src/evaluate.c
1872
expression_error(expr, "need lvalue expression for ++/--");
usr/src/tools/smatch/src/evaluate.c
1876
if ((class & TYPE_RESTRICT) && restricted_unop(expr->op, &ctype))
usr/src/tools/smatch/src/evaluate.c
1877
unrestrict(expr, class, &ctype);
usr/src/tools/smatch/src/evaluate.c
1889
expr->op_value = multiply;
usr/src/tools/smatch/src/evaluate.c
1890
expr->ctype = ctype;
usr/src/tools/smatch/src/evaluate.c
1894
expression_error(expr, "bad argument type for ++/--");
usr/src/tools/smatch/src/evaluate.c
1898
static struct symbol *evaluate_sign(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
1900
struct symbol *ctype = expr->unop->ctype;
usr/src/tools/smatch/src/evaluate.c
1902
unsigned char flags = expr->unop->flags & ~CEF_CONST_MASK;
usr/src/tools/smatch/src/evaluate.c
1906
return bad_expr_type(expr);
usr/src/tools/smatch/src/evaluate.c
1912
expr->unop = cast_to(expr->unop, ctype);
usr/src/tools/smatch/src/evaluate.c
1913
} else if (expr->op != '~') {
usr/src/tools/smatch/src/evaluate.c
1916
return bad_expr_type(expr);
usr/src/tools/smatch/src/evaluate.c
1918
if (expr->op == '+')
usr/src/tools/smatch/src/evaluate.c
1919
*expr = *expr->unop;
usr/src/tools/smatch/src/evaluate.c
1920
expr->flags = flags;
usr/src/tools/smatch/src/evaluate.c
1921
expr->ctype = ctype;
usr/src/tools/smatch/src/evaluate.c
1924
if (restricted_unop(expr->op, &ctype))
usr/src/tools/smatch/src/evaluate.c
1925
unrestrict(expr, class, &ctype);
usr/src/tools/smatch/src/evaluate.c
1929
static struct symbol *evaluate_preop(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
1931
struct symbol *ctype = expr->unop->ctype;
usr/src/tools/smatch/src/evaluate.c
1933
switch (expr->op) {
usr/src/tools/smatch/src/evaluate.c
1935
*expr = *expr->unop;
usr/src/tools/smatch/src/evaluate.c
1941
return evaluate_sign(expr);
usr/src/tools/smatch/src/evaluate.c
1944
return evaluate_dereference(expr);
usr/src/tools/smatch/src/evaluate.c
1947
return evaluate_addressof(expr);
usr/src/tools/smatch/src/evaluate.c
1955
return evaluate_postop(expr);
usr/src/tools/smatch/src/evaluate.c
1958
ctype = degenerate(expr->unop);
usr/src/tools/smatch/src/evaluate.c
1959
expr->flags = expr->unop->flags & ~CEF_CONST_MASK;
usr/src/tools/smatch/src/evaluate.c
1964
expr->flags &= ~CEF_ADDR;
usr/src/tools/smatch/src/evaluate.c
1967
warning(expr->pos, "testing a 'safe expression'");
usr/src/tools/smatch/src/evaluate.c
1969
struct expression *arg = expr->unop;
usr/src/tools/smatch/src/evaluate.c
1970
expr->type = EXPR_COMPARE;
usr/src/tools/smatch/src/evaluate.c
1971
expr->op = SPECIAL_EQUAL;
usr/src/tools/smatch/src/evaluate.c
1972
expr->left = arg;
usr/src/tools/smatch/src/evaluate.c
1973
expr->right = alloc_expression(expr->pos, EXPR_FVALUE);
usr/src/tools/smatch/src/evaluate.c
1974
expr->right->ctype = ctype;
usr/src/tools/smatch/src/evaluate.c
1975
expr->right->fvalue = 0;
usr/src/tools/smatch/src/evaluate.c
1977
warning(expr->pos, "%s degrades to integer",
usr/src/tools/smatch/src/evaluate.c
1987
expr->ctype = ctype;
usr/src/tools/smatch/src/evaluate.c
2025
static struct expression *evaluate_offset(struct expression *expr, unsigned long offset)
usr/src/tools/smatch/src/evaluate.c
2038
add = alloc_expression(expr->pos, EXPR_BINOP);
usr/src/tools/smatch/src/evaluate.c
2040
add->left = expr;
usr/src/tools/smatch/src/evaluate.c
2041
add->right = alloc_expression(expr->pos, EXPR_VALUE);
usr/src/tools/smatch/src/evaluate.c
2054
add->flags = expr->flags;
usr/src/tools/smatch/src/evaluate.c
2060
static struct symbol *evaluate_member_dereference(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
2064
struct expression *deref = expr->deref, *add;
usr/src/tools/smatch/src/evaluate.c
2065
struct ident *ident = expr->member;
usr/src/tools/smatch/src/evaluate.c
2072
expression_error(expr, "bad member name");
usr/src/tools/smatch/src/evaluate.c
2086
expression_error(expr, "expected structure or union");
usr/src/tools/smatch/src/evaluate.c
2100
expression_error(expr, "no member '%s' in %s %.*s",
usr/src/tools/smatch/src/evaluate.c
2103
expression_error(expr, "using member '%s' in "
usr/src/tools/smatch/src/evaluate.c
2118
expr->base = deref;
usr/src/tools/smatch/src/evaluate.c
2119
expr->r_bitpos = 0;
usr/src/tools/smatch/src/evaluate.c
2121
expr->base = deref->base;
usr/src/tools/smatch/src/evaluate.c
2122
expr->r_bitpos = deref->r_bitpos;
usr/src/tools/smatch/src/evaluate.c
2124
expr->r_bitpos += bytes_to_bits(offset);
usr/src/tools/smatch/src/evaluate.c
2125
expr->type = EXPR_SLICE;
usr/src/tools/smatch/src/evaluate.c
2126
expr->r_nrbits = member->bit_size;
usr/src/tools/smatch/src/evaluate.c
2127
expr->r_bitpos += member->bit_offset;
usr/src/tools/smatch/src/evaluate.c
2128
expr->ctype = member;
usr/src/tools/smatch/src/evaluate.c
2133
expr->deref = deref;
usr/src/tools/smatch/src/evaluate.c
2136
expr->type = EXPR_PREOP;
usr/src/tools/smatch/src/evaluate.c
2137
expr->op = '*';
usr/src/tools/smatch/src/evaluate.c
2138
expr->unop = add;
usr/src/tools/smatch/src/evaluate.c
2140
expr->ctype = member;
usr/src/tools/smatch/src/evaluate.c
2144
static int is_promoted(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
2147
switch (expr->type) {
usr/src/tools/smatch/src/evaluate.c
2153
expr = expr->right;
usr/src/tools/smatch/src/evaluate.c
2156
switch (expr->op) {
usr/src/tools/smatch/src/evaluate.c
2158
expr = expr->unop;
usr/src/tools/smatch/src/evaluate.c
2176
static struct symbol *evaluate_type_information(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
2178
struct symbol *sym = expr->cast_type;
usr/src/tools/smatch/src/evaluate.c
2180
sym = evaluate_expression(expr->cast_expression);
usr/src/tools/smatch/src/evaluate.c
2188
if (sym->bit_size < bits_in_int && is_promoted(expr))
usr/src/tools/smatch/src/evaluate.c
2196
expression_error(expr, "trying to examine bitfield type");
usr/src/tools/smatch/src/evaluate.c
2202
static struct symbol *evaluate_sizeof(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
2207
type = evaluate_type_information(expr);
usr/src/tools/smatch/src/evaluate.c
2215
warning(expr->pos, "expression using sizeof(void)");
usr/src/tools/smatch/src/evaluate.c
2221
warning(expr->pos, "expression using sizeof _Bool");
usr/src/tools/smatch/src/evaluate.c
2227
warning(expr->pos, "expression using sizeof on a function");
usr/src/tools/smatch/src/evaluate.c
2241
base = alloc_expression(expr->pos, EXPR_SIZEOF);
usr/src/tools/smatch/src/evaluate.c
2246
base = alloc_expression(expr->pos, EXPR_VALUE);
usr/src/tools/smatch/src/evaluate.c
2250
size = alloc_expression(expr->pos, EXPR_CAST);
usr/src/tools/smatch/src/evaluate.c
2255
expr->left = size;
usr/src/tools/smatch/src/evaluate.c
2256
expr->right = base;
usr/src/tools/smatch/src/evaluate.c
2257
expr->type = EXPR_BINOP;
usr/src/tools/smatch/src/evaluate.c
2258
expr->op = '*';
usr/src/tools/smatch/src/evaluate.c
2259
return expr->ctype = size_t_ctype;
usr/src/tools/smatch/src/evaluate.c
2264
expression_error(expr, "cannot size expression");
usr/src/tools/smatch/src/evaluate.c
2266
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/evaluate.c
2267
expr->value = bits_to_bytes(size);
usr/src/tools/smatch/src/evaluate.c
2268
expr->taint = 0;
usr/src/tools/smatch/src/evaluate.c
2269
expr->ctype = size_t_ctype;
usr/src/tools/smatch/src/evaluate.c
2273
static struct symbol *evaluate_ptrsizeof(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
2278
type = evaluate_type_information(expr);
usr/src/tools/smatch/src/evaluate.c
2294
expression_error(expr, "expected pointer expression");
usr/src/tools/smatch/src/evaluate.c
2300
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/evaluate.c
2301
expr->value = bits_to_bytes(size);
usr/src/tools/smatch/src/evaluate.c
2302
expr->taint = 0;
usr/src/tools/smatch/src/evaluate.c
2303
expr->ctype = size_t_ctype;
usr/src/tools/smatch/src/evaluate.c
2307
static struct symbol *evaluate_alignof(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
2311
type = evaluate_type_information(expr);
usr/src/tools/smatch/src/evaluate.c
2315
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/evaluate.c
2316
expr->value = type->ctype.alignment;
usr/src/tools/smatch/src/evaluate.c
2317
expr->taint = 0;
usr/src/tools/smatch/src/evaluate.c
2318
expr->ctype = size_t_ctype;
usr/src/tools/smatch/src/evaluate.c
232
static int is_same_type(struct expression *expr, struct symbol *new)
usr/src/tools/smatch/src/evaluate.c
2324
struct expression *expr;
usr/src/tools/smatch/src/evaluate.c
2330
FOR_EACH_PTR (head, expr) {
usr/src/tools/smatch/src/evaluate.c
2331
struct expression **p = THIS_ADDRESS(expr);
usr/src/tools/smatch/src/evaluate.c
2333
ctype = evaluate_expression(expr);
usr/src/tools/smatch/src/evaluate.c
234
struct symbol *old = expr->ctype;
usr/src/tools/smatch/src/evaluate.c
2343
*p = cast_to(expr, integer_promotion(type));
usr/src/tools/smatch/src/evaluate.c
2347
*p = cast_to(expr, &double_ctype);
usr/src/tools/smatch/src/evaluate.c
2349
if (expr->ctype == &null_ctype)
usr/src/tools/smatch/src/evaluate.c
2350
*p = cast_to(expr, &ptr_ctype);
usr/src/tools/smatch/src/evaluate.c
2352
degenerate(expr);
usr/src/tools/smatch/src/evaluate.c
2358
compatible_argument_type(expr, target, p, where);
usr/src/tools/smatch/src/evaluate.c
2363
} END_FOR_EACH_PTR(expr);
usr/src/tools/smatch/src/evaluate.c
2592
static void handle_list_initializer(struct expression *expr,
usr/src/tools/smatch/src/evaluate.c
2598
FOR_EACH_PTR(expr->expr_list, e) {
usr/src/tools/smatch/src/evaluate.c
265
warning(expr->pos, "implicit cast %s nocast type", tofrom);
usr/src/tools/smatch/src/evaluate.c
2674
expr->ctype = ctype;
usr/src/tools/smatch/src/evaluate.c
2847
static struct symbol *cast_to_bool(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
2849
struct expression *old = expr->cast_expression;
usr/src/tools/smatch/src/evaluate.c
2858
zero = alloc_const_expression(expr->pos, 0);
usr/src/tools/smatch/src/evaluate.c
2859
expr->op = SPECIAL_NOTEQUAL;
usr/src/tools/smatch/src/evaluate.c
2860
ctype = usual_conversions(expr->op, old, zero,
usr/src/tools/smatch/src/evaluate.c
2862
expr->type = EXPR_COMPARE;
usr/src/tools/smatch/src/evaluate.c
2863
expr->left = cast_to(old, ctype);
usr/src/tools/smatch/src/evaluate.c
2864
expr->right = cast_to(zero, ctype);
usr/src/tools/smatch/src/evaluate.c
2866
return expr->ctype;
usr/src/tools/smatch/src/evaluate.c
2869
static int cast_flags(struct expression *expr, struct expression *old)
usr/src/tools/smatch/src/evaluate.c
2875
class = classify_type(expr->ctype, &t);
usr/src/tools/smatch/src/evaluate.c
292
static int cast_flags(struct expression *expr, struct expression *target);
usr/src/tools/smatch/src/evaluate.c
2922
static struct symbol *evaluate_cast(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
2924
struct expression *source = expr->cast_expression;
usr/src/tools/smatch/src/evaluate.c
293
static struct symbol *cast_to_bool(struct expression *expr);
usr/src/tools/smatch/src/evaluate.c
2944
struct symbol *sym = expr->cast_type;
usr/src/tools/smatch/src/evaluate.c
2945
struct expression *addr = alloc_expression(expr->pos, EXPR_SYMBOL);
usr/src/tools/smatch/src/evaluate.c
2955
expr->type = EXPR_PREOP;
usr/src/tools/smatch/src/evaluate.c
2956
expr->op = '*';
usr/src/tools/smatch/src/evaluate.c
2957
expr->unop = addr;
usr/src/tools/smatch/src/evaluate.c
2958
expr->ctype = sym;
usr/src/tools/smatch/src/evaluate.c
2963
ctype = examine_symbol_type(expr->cast_type);
usr/src/tools/smatch/src/evaluate.c
2964
expr->ctype = ctype;
usr/src/tools/smatch/src/evaluate.c
2965
expr->cast_type = ctype;
usr/src/tools/smatch/src/evaluate.c
2972
expr->flags = cast_flags(expr, source);
usr/src/tools/smatch/src/evaluate.c
2984
expression_error(expr, "cast from unknown type");
usr/src/tools/smatch/src/evaluate.c
2989
if (expr->type == EXPR_FORCE_CAST)
usr/src/tools/smatch/src/evaluate.c
2993
warning(expr->pos, "cast to non-scalar");
usr/src/tools/smatch/src/evaluate.c
2996
warning(expr->pos, "cast from non-scalar");
usr/src/tools/smatch/src/evaluate.c
3004
warning(expr->pos, "cast to %s",
usr/src/tools/smatch/src/evaluate.c
3009
warning(expr->pos, "%s degrades to integer",
usr/src/tools/smatch/src/evaluate.c
3012
warning(expr->pos, "cast from %s",
usr/src/tools/smatch/src/evaluate.c
3033
warning(expr->pos, "cast removes address space '%s' of expression", show_as(sas));
usr/src/tools/smatch/src/evaluate.c
3035
warning(expr->pos, "cast between address spaces (%s -> %s)", show_as(sas), show_as(tas));
usr/src/tools/smatch/src/evaluate.c
3038
warning(expr->pos,
usr/src/tools/smatch/src/evaluate.c
304
struct expression *expr;
usr/src/tools/smatch/src/evaluate.c
3046
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/evaluate.c
3047
expr->ctype = &null_ctype;
usr/src/tools/smatch/src/evaluate.c
3048
expr->value = 0;
usr/src/tools/smatch/src/evaluate.c
3049
return expr->ctype;
usr/src/tools/smatch/src/evaluate.c
3055
cast_to_bool(expr);
usr/src/tools/smatch/src/evaluate.c
3068
warning(expr->pos, "cast to %s", show_typename(ctype));
usr/src/tools/smatch/src/evaluate.c
3072
warning(expr->pos, "cast from %s", show_typename(source->ctype));
usr/src/tools/smatch/src/evaluate.c
3085
static int evaluate_symbol_call(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
3087
struct expression *fn = expr->fn;
usr/src/tools/smatch/src/evaluate.c
3094
return ctype->op->evaluate(expr);
usr/src/tools/smatch/src/evaluate.c
3105
ret = inline_function(expr, ctype);
usr/src/tools/smatch/src/evaluate.c
3115
static struct symbol *evaluate_call(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
3119
struct expression *fn = expr->fn;
usr/src/tools/smatch/src/evaluate.c
3120
struct expression_list *arglist = expr->args;
usr/src/tools/smatch/src/evaluate.c
3132
expression_error(expr, "not a function %s",
usr/src/tools/smatch/src/evaluate.c
3144
if (!sym->op->args(expr))
usr/src/tools/smatch/src/evaluate.c
3149
args = expression_list_size(expr->args);
usr/src/tools/smatch/src/evaluate.c
3152
expression_error(expr,
usr/src/tools/smatch/src/evaluate.c
3158
expression_error(expr,
usr/src/tools/smatch/src/evaluate.c
3162
expr->ctype = ctype->ctype.base_type;
usr/src/tools/smatch/src/evaluate.c
3164
if (evaluate_symbol_call(expr))
usr/src/tools/smatch/src/evaluate.c
3165
return expr->ctype;
usr/src/tools/smatch/src/evaluate.c
3167
return expr->ctype;
usr/src/tools/smatch/src/evaluate.c
3170
static struct symbol *evaluate_offsetof(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
3172
struct expression *e = expr->down;
usr/src/tools/smatch/src/evaluate.c
3173
struct symbol *ctype = expr->in;
usr/src/tools/smatch/src/evaluate.c
3176
if (expr->op == '.') {
usr/src/tools/smatch/src/evaluate.c
3180
expression_error(expr, "expected structure or union");
usr/src/tools/smatch/src/evaluate.c
3186
expression_error(expr, "expected structure or union");
usr/src/tools/smatch/src/evaluate.c
3190
field = find_identifier(expr->ident, ctype->symbol_list, &offset);
usr/src/tools/smatch/src/evaluate.c
3192
expression_error(expr, "unknown member");
usr/src/tools/smatch/src/evaluate.c
3196
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/evaluate.c
3197
expr->flags = CEF_SET_ICE;
usr/src/tools/smatch/src/evaluate.c
3198
expr->value = offset;
usr/src/tools/smatch/src/evaluate.c
3199
expr->taint = 0;
usr/src/tools/smatch/src/evaluate.c
3200
expr->ctype = size_t_ctype;
usr/src/tools/smatch/src/evaluate.c
3203
expression_error(expr, "expected structure or union");
usr/src/tools/smatch/src/evaluate.c
3209
expression_error(expr, "expected array");
usr/src/tools/smatch/src/evaluate.c
3213
if (!expr->index) {
usr/src/tools/smatch/src/evaluate.c
3214
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/evaluate.c
3215
expr->flags = CEF_SET_ICE;
usr/src/tools/smatch/src/evaluate.c
3216
expr->value = 0;
usr/src/tools/smatch/src/evaluate.c
3217
expr->taint = 0;
usr/src/tools/smatch/src/evaluate.c
3218
expr->ctype = size_t_ctype;
usr/src/tools/smatch/src/evaluate.c
3220
struct expression *idx = expr->index, *m;
usr/src/tools/smatch/src/evaluate.c
3226
expression_error(expr, "non-integer index");
usr/src/tools/smatch/src/evaluate.c
3233
m = alloc_const_expression(expr->pos,
usr/src/tools/smatch/src/evaluate.c
3237
expr->type = EXPR_BINOP;
usr/src/tools/smatch/src/evaluate.c
3238
expr->left = idx;
usr/src/tools/smatch/src/evaluate.c
3239
expr->right = m;
usr/src/tools/smatch/src/evaluate.c
3240
expr->op = '*';
usr/src/tools/smatch/src/evaluate.c
3241
expr->ctype = size_t_ctype;
usr/src/tools/smatch/src/evaluate.c
3242
expr->flags = m->flags & idx->flags & ~CEF_CONST_MASK;
usr/src/tools/smatch/src/evaluate.c
3247
*copy = *expr;
usr/src/tools/smatch/src/evaluate.c
3252
expr->type = EXPR_BINOP;
usr/src/tools/smatch/src/evaluate.c
3253
expr->flags = e->flags & copy->flags & ~CEF_CONST_MASK;
usr/src/tools/smatch/src/evaluate.c
3254
expr->op = '+';
usr/src/tools/smatch/src/evaluate.c
3255
expr->ctype = size_t_ctype;
usr/src/tools/smatch/src/evaluate.c
3256
expr->left = copy;
usr/src/tools/smatch/src/evaluate.c
3257
expr->right = e;
usr/src/tools/smatch/src/evaluate.c
3262
struct symbol *evaluate_expression(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
3264
if (!expr)
usr/src/tools/smatch/src/evaluate.c
3266
if (expr->ctype)
usr/src/tools/smatch/src/evaluate.c
3267
return expr->ctype;
usr/src/tools/smatch/src/evaluate.c
3269
switch (expr->type) {
usr/src/tools/smatch/src/evaluate.c
3272
expression_error(expr, "value expression without a type");
usr/src/tools/smatch/src/evaluate.c
3275
return evaluate_string(expr);
usr/src/tools/smatch/src/evaluate.c
3277
return evaluate_symbol_expression(expr);
usr/src/tools/smatch/src/evaluate.c
3279
evaluate_expression(expr->left);
usr/src/tools/smatch/src/evaluate.c
3280
evaluate_expression(expr->right);
usr/src/tools/smatch/src/evaluate.c
3281
if (!valid_subexpr_type(expr))
usr/src/tools/smatch/src/evaluate.c
3283
return evaluate_binop(expr);
usr/src/tools/smatch/src/evaluate.c
3285
return evaluate_logical(expr);
usr/src/tools/smatch/src/evaluate.c
3287
evaluate_expression(expr->left);
usr/src/tools/smatch/src/evaluate.c
3288
if (!evaluate_expression(expr->right))
usr/src/tools/smatch/src/evaluate.c
3290
return evaluate_comma(expr);
usr/src/tools/smatch/src/evaluate.c
3292
evaluate_expression(expr->left);
usr/src/tools/smatch/src/evaluate.c
3293
evaluate_expression(expr->right);
usr/src/tools/smatch/src/evaluate.c
3294
if (!valid_subexpr_type(expr))
usr/src/tools/smatch/src/evaluate.c
3296
return evaluate_compare(expr);
usr/src/tools/smatch/src/evaluate.c
3298
evaluate_expression(expr->left);
usr/src/tools/smatch/src/evaluate.c
3299
evaluate_expression(expr->right);
usr/src/tools/smatch/src/evaluate.c
3300
if (!valid_subexpr_type(expr))
usr/src/tools/smatch/src/evaluate.c
3302
return evaluate_assignment(expr);
usr/src/tools/smatch/src/evaluate.c
3304
if (!evaluate_expression(expr->unop))
usr/src/tools/smatch/src/evaluate.c
3306
return evaluate_preop(expr);
usr/src/tools/smatch/src/evaluate.c
3308
if (!evaluate_expression(expr->unop))
usr/src/tools/smatch/src/evaluate.c
3310
return evaluate_postop(expr);
usr/src/tools/smatch/src/evaluate.c
3314
return evaluate_cast(expr);
usr/src/tools/smatch/src/evaluate.c
3316
return evaluate_sizeof(expr);
usr/src/tools/smatch/src/evaluate.c
3318
return evaluate_ptrsizeof(expr);
usr/src/tools/smatch/src/evaluate.c
3320
return evaluate_alignof(expr);
usr/src/tools/smatch/src/evaluate.c
3322
return evaluate_member_dereference(expr);
usr/src/tools/smatch/src/evaluate.c
3324
return evaluate_call(expr);
usr/src/tools/smatch/src/evaluate.c
3327
return evaluate_conditional_expression(expr);
usr/src/tools/smatch/src/evaluate.c
3329
expr->ctype = evaluate_statement(expr->statement);
usr/src/tools/smatch/src/evaluate.c
3330
return expr->ctype;
usr/src/tools/smatch/src/evaluate.c
3333
expr->ctype = &ptr_ctype;
usr/src/tools/smatch/src/evaluate.c
3338
evaluate_symbol(expr->symbol);
usr/src/tools/smatch/src/evaluate.c
3340
expr->ctype = &type_ctype;
usr/src/tools/smatch/src/evaluate.c
3344
return evaluate_offsetof(expr);
usr/src/tools/smatch/src/evaluate.c
3351
expression_error(expr, "internal front-end error: initializer in expression");
usr/src/tools/smatch/src/evaluate.c
3354
expression_error(expr, "internal front-end error: SLICE re-evaluated");
usr/src/tools/smatch/src/evaluate.c
3357
expression_error(expr, "internal front-end error: ASM_OPERAND evaluated");
usr/src/tools/smatch/src/evaluate.c
344
expr = alloc_expression(old->pos, EXPR_IMPLIED_CAST);
usr/src/tools/smatch/src/evaluate.c
345
expr->ctype = type;
usr/src/tools/smatch/src/evaluate.c
3455
struct expression *expr = stmt->expression;
usr/src/tools/smatch/src/evaluate.c
3458
evaluate_expression(expr);
usr/src/tools/smatch/src/evaluate.c
346
expr->cast_type = type;
usr/src/tools/smatch/src/evaluate.c
3461
if (expr && expr->ctype != &void_ctype)
usr/src/tools/smatch/src/evaluate.c
3462
expression_error(expr, "return expression in %s function", fntype?"void":"typeless");
usr/src/tools/smatch/src/evaluate.c
3463
if (expr && Wreturn_void)
usr/src/tools/smatch/src/evaluate.c
3468
if (!expr) {
usr/src/tools/smatch/src/evaluate.c
347
expr->cast_expression = old;
usr/src/tools/smatch/src/evaluate.c
3472
if (!expr->ctype)
usr/src/tools/smatch/src/evaluate.c
3474
compatible_assignment_types(expr, fntype, &stmt->expression, "return expression");
usr/src/tools/smatch/src/evaluate.c
348
expr->flags = cast_flags(expr, old);
usr/src/tools/smatch/src/evaluate.c
3498
static void verify_output_constraint(struct expression *expr, const char *constraint)
usr/src/tools/smatch/src/evaluate.c
3505
expression_error(expr, "output constraint is not an assignment constraint (\"%s\")", constraint);
usr/src/tools/smatch/src/evaluate.c
3509
static void verify_input_constraint(struct expression *expr, const char *constraint)
usr/src/tools/smatch/src/evaluate.c
351
cast_to_bool(expr);
usr/src/tools/smatch/src/evaluate.c
3514
expression_error(expr, "input constraint with assignment (\"%s\")", constraint);
usr/src/tools/smatch/src/evaluate.c
3520
struct expression *expr;
usr/src/tools/smatch/src/evaluate.c
3524
expr = stmt->asm_string;
usr/src/tools/smatch/src/evaluate.c
3525
if (!expr || expr->type != EXPR_STRING) {
usr/src/tools/smatch/src/evaluate.c
353
return expr;
usr/src/tools/smatch/src/evaluate.c
3534
expr = op->constraint;
usr/src/tools/smatch/src/evaluate.c
3535
if (!expr || expr->type != EXPR_STRING) {
usr/src/tools/smatch/src/evaluate.c
3536
sparse_error(expr ? expr->pos : stmt->pos, "asm output constraint is not a string");
usr/src/tools/smatch/src/evaluate.c
3539
verify_output_constraint(expr, expr->string->data);
usr/src/tools/smatch/src/evaluate.c
3542
expr = op->expr;
usr/src/tools/smatch/src/evaluate.c
3543
if (!evaluate_expression(expr))
usr/src/tools/smatch/src/evaluate.c
3545
if (!lvalue_expression(expr))
usr/src/tools/smatch/src/evaluate.c
3546
warning(expr->pos, "asm output is not an lvalue");
usr/src/tools/smatch/src/evaluate.c
3547
evaluate_assign_to(expr, expr->ctype);
usr/src/tools/smatch/src/evaluate.c
3554
expr = op->constraint;
usr/src/tools/smatch/src/evaluate.c
3555
if (!expr || expr->type != EXPR_STRING) {
usr/src/tools/smatch/src/evaluate.c
3556
sparse_error(expr ? expr->pos : stmt->pos, "asm input constraint is not a string");
usr/src/tools/smatch/src/evaluate.c
3559
verify_input_constraint(expr, expr->string->data);
usr/src/tools/smatch/src/evaluate.c
3562
if (!evaluate_expression(op->expr))
usr/src/tools/smatch/src/evaluate.c
3566
FOR_EACH_PTR(stmt->asm_clobbers, expr) {
usr/src/tools/smatch/src/evaluate.c
3567
if (!expr) {
usr/src/tools/smatch/src/evaluate.c
3571
if (expr->type == EXPR_STRING)
usr/src/tools/smatch/src/evaluate.c
3573
expression_error(expr, "asm clobber is not a string");
usr/src/tools/smatch/src/evaluate.c
3574
} END_FOR_EACH_PTR(expr);
usr/src/tools/smatch/src/evaluate.c
409
static struct symbol *bad_expr_type(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
411
switch (expr->type) {
usr/src/tools/smatch/src/evaluate.c
414
if (!valid_subexpr_type(expr))
usr/src/tools/smatch/src/evaluate.c
416
sparse_error(expr->pos, "incompatible types for operation (%s)", show_special(expr->op));
usr/src/tools/smatch/src/evaluate.c
417
info(expr->pos, " left side has type %s", show_typename(expr->left->ctype));
usr/src/tools/smatch/src/evaluate.c
418
info(expr->pos, " right side has type %s", show_typename(expr->right->ctype));
usr/src/tools/smatch/src/evaluate.c
422
if (!valid_expr_type(expr->unop))
usr/src/tools/smatch/src/evaluate.c
424
sparse_error(expr->pos, "incompatible types for operation (%s)", show_special(expr->op));
usr/src/tools/smatch/src/evaluate.c
425
info(expr->pos, " argument has type %s", show_typename(expr->unop->ctype));
usr/src/tools/smatch/src/evaluate.c
431
expr->flags = CEF_NONE;
usr/src/tools/smatch/src/evaluate.c
432
return expr->ctype = &bad_ctype;
usr/src/tools/smatch/src/evaluate.c
50
static struct symbol *degenerate(struct expression *expr);
usr/src/tools/smatch/src/evaluate.c
527
static inline void unrestrict(struct expression *expr,
usr/src/tools/smatch/src/evaluate.c
53
static inline int valid_expr_type(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
533
warning(expr->pos, "%s degrades to integer",
usr/src/tools/smatch/src/evaluate.c
55
return expr && valid_type(expr->ctype);
usr/src/tools/smatch/src/evaluate.c
58
static inline int valid_subexpr_type(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
581
static inline int lvalue_expression(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
583
return expr->type == EXPR_PREOP && expr->op == '*';
usr/src/tools/smatch/src/evaluate.c
586
static struct symbol *evaluate_ptr_add(struct expression *expr, struct symbol *itype)
usr/src/tools/smatch/src/evaluate.c
588
struct expression *index = expr->right;
usr/src/tools/smatch/src/evaluate.c
592
classify_type(degenerate(expr->left), &ctype);
usr/src/tools/smatch/src/evaluate.c
599
if ((expr->left->flags & CEF_ADDR) && (expr->right->flags & CEF_ICE))
usr/src/tools/smatch/src/evaluate.c
60
return valid_expr_type(expr->left)
usr/src/tools/smatch/src/evaluate.c
600
expr->flags = CEF_ADDR;
usr/src/tools/smatch/src/evaluate.c
603
expression_error(expr, "missing type information");
usr/src/tools/smatch/src/evaluate.c
607
expression_error(expr, "arithmetics on pointers to functions");
usr/src/tools/smatch/src/evaluate.c
61
&& valid_expr_type(expr->right);
usr/src/tools/smatch/src/evaluate.c
616
expr->ctype = ctype;
usr/src/tools/smatch/src/evaluate.c
622
struct expression *val = alloc_expression(expr->pos, EXPR_VALUE);
usr/src/tools/smatch/src/evaluate.c
634
expr->right = val;
usr/src/tools/smatch/src/evaluate.c
64
static struct symbol *evaluate_symbol_expression(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
642
struct expression *val = alloc_expression(expr->pos, EXPR_VALUE);
usr/src/tools/smatch/src/evaluate.c
643
struct expression *mul = alloc_expression(expr->pos, EXPR_BINOP);
usr/src/tools/smatch/src/evaluate.c
655
expr->right = index;
usr/src/tools/smatch/src/evaluate.c
67
struct symbol *sym = expr->symbol;
usr/src/tools/smatch/src/evaluate.c
71
expression_error(expr, "undefined identifier '%s'", show_ident(expr->symbol_name));
usr/src/tools/smatch/src/evaluate.c
79
expression_error(expr, "identifier '%s' has no type", show_ident(expr->symbol_name));
usr/src/tools/smatch/src/evaluate.c
821
static void bad_null(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
824
warning(expr->pos, "Using plain integer as NULL pointer");
usr/src/tools/smatch/src/evaluate.c
83
addr = alloc_expression(expr->pos, EXPR_SYMBOL);
usr/src/tools/smatch/src/evaluate.c
835
static struct symbol *evaluate_ptr_sub(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
839
struct expression *l = expr->left;
usr/src/tools/smatch/src/evaluate.c
840
struct expression *r = expr->right;
usr/src/tools/smatch/src/evaluate.c
85
addr->symbol_name = expr->symbol_name;
usr/src/tools/smatch/src/evaluate.c
852
expression_error(expr, "subtraction of different types can't work (%s)", typediff);
usr/src/tools/smatch/src/evaluate.c
855
expression_error(expr, "subtraction of functions? Share your drugs");
usr/src/tools/smatch/src/evaluate.c
859
expr->ctype = ssize_t_ctype;
usr/src/tools/smatch/src/evaluate.c
861
struct expression *sub = alloc_expression(expr->pos, EXPR_BINOP);
usr/src/tools/smatch/src/evaluate.c
862
struct expression *div = expr;
usr/src/tools/smatch/src/evaluate.c
863
struct expression *val = alloc_expression(expr->pos, EXPR_VALUE);
usr/src/tools/smatch/src/evaluate.c
87
addr->flags = expr->flags;
usr/src/tools/smatch/src/evaluate.c
871
warning(expr->pos, "potentially expensive pointer subtraction");
usr/src/tools/smatch/src/evaluate.c
872
info(expr->pos, " '%s' has a non-power-of-2 size: %lu", show_typename(lbase), value);
usr/src/tools/smatch/src/evaluate.c
88
expr->type = EXPR_PREOP;
usr/src/tools/smatch/src/evaluate.c
89
expr->op = '*';
usr/src/tools/smatch/src/evaluate.c
891
static struct symbol *evaluate_conditional(struct expression *expr, int iterator)
usr/src/tools/smatch/src/evaluate.c
895
if (!expr)
usr/src/tools/smatch/src/evaluate.c
898
if (!iterator && expr->type == EXPR_ASSIGNMENT && expr->op == '=')
usr/src/tools/smatch/src/evaluate.c
899
warning(expr->pos, "assignment expression in conditional");
usr/src/tools/smatch/src/evaluate.c
90
expr->unop = addr;
usr/src/tools/smatch/src/evaluate.c
901
ctype = evaluate_expression(expr);
usr/src/tools/smatch/src/evaluate.c
905
warning(expr->pos, "testing a 'safe expression'");
usr/src/tools/smatch/src/evaluate.c
908
warning(expr->pos, "the address of %s will always evaluate as true", "a function");
usr/src/tools/smatch/src/evaluate.c
91
expr->flags = CEF_NONE;
usr/src/tools/smatch/src/evaluate.c
911
warning(expr->pos, "the address of %s will always evaluate as true", "an array");
usr/src/tools/smatch/src/evaluate.c
913
sparse_error(expr->pos, "incorrect type in conditional (non-scalar type)");
usr/src/tools/smatch/src/evaluate.c
914
info(expr->pos, " got %s", show_typename(ctype));
usr/src/tools/smatch/src/evaluate.c
918
ctype = degenerate(expr);
usr/src/tools/smatch/src/evaluate.c
922
static struct symbol *evaluate_logical(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
924
if (!evaluate_conditional(expr->left, 0))
usr/src/tools/smatch/src/evaluate.c
926
if (!evaluate_conditional(expr->right, 0))
usr/src/tools/smatch/src/evaluate.c
930
expr->ctype = &int_ctype;
usr/src/tools/smatch/src/evaluate.c
931
expr->flags = expr->left->flags & expr->right->flags;
usr/src/tools/smatch/src/evaluate.c
932
expr->flags &= ~(CEF_CONST_MASK | CEF_ADDR);
usr/src/tools/smatch/src/evaluate.c
936
static struct symbol *evaluate_binop(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
939
int lclass = classify_type(expr->left->ctype, <ype);
usr/src/tools/smatch/src/evaluate.c
94
expr->ctype = sym;
usr/src/tools/smatch/src/evaluate.c
940
int rclass = classify_type(expr->right->ctype, &rtype);
usr/src/tools/smatch/src/evaluate.c
941
int op = expr->op;
usr/src/tools/smatch/src/evaluate.c
945
expr->flags = expr->left->flags & expr->right->flags;
usr/src/tools/smatch/src/evaluate.c
946
expr->flags &= ~CEF_CONST_MASK;
usr/src/tools/smatch/src/evaluate.c
953
return bad_expr_type(expr);
usr/src/tools/smatch/src/evaluate.c
959
unrestrict(expr->left, lclass, <ype);
usr/src/tools/smatch/src/evaluate.c
960
unrestrict(expr->right, rclass, &rtype);
usr/src/tools/smatch/src/evaluate.c
965
const unsigned left_not = expr->left->type == EXPR_PREOP
usr/src/tools/smatch/src/evaluate.c
966
&& expr->left->op == '!';
usr/src/tools/smatch/src/evaluate.c
967
const unsigned right_not = expr->right->type == EXPR_PREOP
usr/src/tools/smatch/src/evaluate.c
968
&& expr->right->op == '!';
usr/src/tools/smatch/src/evaluate.c
970
warning(expr->pos, "dubious: %sx %c %sy",
usr/src/tools/smatch/src/evaluate.c
975
ltype = usual_conversions(op, expr->left, expr->right,
usr/src/tools/smatch/src/evaluate.c
98
static struct symbol *evaluate_string(struct expression *expr)
usr/src/tools/smatch/src/evaluate.c
980
expr->left = cast_to(expr->left, ltype);
usr/src/tools/smatch/src/evaluate.c
981
expr->right = cast_to(expr->right, rtype);
usr/src/tools/smatch/src/evaluate.c
982
expr->ctype = ctype;
usr/src/tools/smatch/src/evaluate.c
988
unrestrict(expr->right, rclass, &rtype);
usr/src/tools/smatch/src/evaluate.c
989
return evaluate_ptr_add(expr, rtype);
usr/src/tools/smatch/src/evaluate.c
994
struct expression *index = expr->left;
usr/src/tools/smatch/src/evaluate.c
996
expr->left = expr->right;
usr/src/tools/smatch/src/evaluate.c
997
expr->right = index;
usr/src/tools/smatch/src/evaluate.c
998
return evaluate_ptr_add(expr, ltype);
usr/src/tools/smatch/src/evaluate.h
14
struct symbol *evaluate_expression(struct expression *expr);
usr/src/tools/smatch/src/expand.c
101
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/expand.c
1011
static int expand_expression(struct expression *expr)
usr/src/tools/smatch/src/expand.c
1013
if (!expr)
usr/src/tools/smatch/src/expand.c
1015
if (!expr->ctype || expr->ctype == &bad_ctype)
usr/src/tools/smatch/src/expand.c
1018
switch (expr->type) {
usr/src/tools/smatch/src/expand.c
102
expr->taint = old->taint;
usr/src/tools/smatch/src/expand.c
1025
return expand_symbol_expression(expr);
usr/src/tools/smatch/src/expand.c
1027
return expand_binop(expr);
usr/src/tools/smatch/src/expand.c
1030
return expand_logical(expr);
usr/src/tools/smatch/src/expand.c
1033
return expand_comma(expr);
usr/src/tools/smatch/src/expand.c
1036
return expand_compare(expr);
usr/src/tools/smatch/src/expand.c
1039
return expand_assignment(expr);
usr/src/tools/smatch/src/expand.c
104
expr->value = old->value;
usr/src/tools/smatch/src/expand.c
1042
return expand_preop(expr);
usr/src/tools/smatch/src/expand.c
1045
return expand_postop(expr);
usr/src/tools/smatch/src/expand.c
1050
return expand_cast(expr);
usr/src/tools/smatch/src/expand.c
1053
return expand_call(expr);
usr/src/tools/smatch/src/expand.c
1056
warning(expr->pos, "we should not have an EXPR_DEREF left at expansion time");
usr/src/tools/smatch/src/expand.c
1061
return expand_conditional(expr);
usr/src/tools/smatch/src/expand.c
1064
struct statement *stmt = expr->statement;
usr/src/tools/smatch/src/expand.c
1068
*expr = *stmt->expression;
usr/src/tools/smatch/src/expand.c
1076
sort_expression_list(&expr->expr_list);
usr/src/tools/smatch/src/expand.c
1077
verify_nonoverlapping(&expr->expr_list, expr);
usr/src/tools/smatch/src/expand.c
1078
return expand_expression_list(expr->expr_list);
usr/src/tools/smatch/src/expand.c
1087
return expand_expression(expr->base) + 1;
usr/src/tools/smatch/src/expand.c
1090
return expand_pos_expression(expr);
usr/src/tools/smatch/src/expand.c
1096
expression_error(expr, "internal front-end error: sizeof in expansion?");
usr/src/tools/smatch/src/expand.c
1099
expression_error(expr, "internal front-end error: ASM_OPERAND in expansion?");
usr/src/tools/smatch/src/expand.c
1105
static void expand_const_expression(struct expression *expr, const char *where)
usr/src/tools/smatch/src/expand.c
1107
if (expr) {
usr/src/tools/smatch/src/expand.c
1108
expand_expression(expr);
usr/src/tools/smatch/src/expand.c
1109
if (expr->type != EXPR_VALUE)
usr/src/tools/smatch/src/expand.c
1110
expression_error(expr, "Expected constant expression in %s", where);
usr/src/tools/smatch/src/expand.c
114
expr->value = !!value;
usr/src/tools/smatch/src/expand.c
1141
struct expression *expr = stmt->if_conditional;
usr/src/tools/smatch/src/expand.c
1143
if (!expr || !expr->ctype || expr->ctype == &bad_ctype)
usr/src/tools/smatch/src/expand.c
1146
expand_expression(expr);
usr/src/tools/smatch/src/expand.c
1151
if (expr->type == EXPR_VALUE) {
usr/src/tools/smatch/src/expand.c
1153
simple = expr->value ? stmt->if_true : stmt->if_false;
usr/src/tools/smatch/src/expand.c
123
expr->value = value & mask;
usr/src/tools/smatch/src/expand.c
1274
static inline int bad_integer_constant_expression(struct expression *expr)
usr/src/tools/smatch/src/expand.c
1276
if (!(expr->flags & CEF_ICE))
usr/src/tools/smatch/src/expand.c
1278
if (expr->taint & Taint_comma)
usr/src/tools/smatch/src/expand.c
1283
static long long __get_expression_value(struct expression *expr, int strict)
usr/src/tools/smatch/src/expand.c
1288
if (!expr)
usr/src/tools/smatch/src/expand.c
1290
ctype = evaluate_expression(expr);
usr/src/tools/smatch/src/expand.c
1292
expression_error(expr, "bad constant expression type");
usr/src/tools/smatch/src/expand.c
1295
expand_expression(expr);
usr/src/tools/smatch/src/expand.c
1296
if (expr->type != EXPR_VALUE) {
usr/src/tools/smatch/src/expand.c
1298
expression_error(expr, "bad constant expression");
usr/src/tools/smatch/src/expand.c
1302
if ((strict == 1) && bad_integer_constant_expression(expr)) {
usr/src/tools/smatch/src/expand.c
1303
expression_error(expr, "bad integer constant expression");
usr/src/tools/smatch/src/expand.c
1308
value = expr->value;
usr/src/tools/smatch/src/expand.c
1320
long long get_expression_value(struct expression *expr)
usr/src/tools/smatch/src/expand.c
1322
return __get_expression_value(expr, 0);
usr/src/tools/smatch/src/expand.c
1325
long long const_expression_value(struct expression *expr)
usr/src/tools/smatch/src/expand.c
1327
return __get_expression_value(expr, 1);
usr/src/tools/smatch/src/expand.c
1330
long long get_expression_value_silent(struct expression *expr)
usr/src/tools/smatch/src/expand.c
1333
return __get_expression_value(expr, 2);
usr/src/tools/smatch/src/expand.c
1336
int expr_truth_value(struct expression *expr)
usr/src/tools/smatch/src/expand.c
1341
if (!expr)
usr/src/tools/smatch/src/expand.c
1344
ctype = evaluate_expression(expr);
usr/src/tools/smatch/src/expand.c
1349
expand_expression(expr);
usr/src/tools/smatch/src/expand.c
1353
switch (expr->type) {
usr/src/tools/smatch/src/expand.c
1355
expr = expr->right;
usr/src/tools/smatch/src/expand.c
1358
return expr->value != 0;
usr/src/tools/smatch/src/expand.c
1360
return expr->fvalue != 0;
usr/src/tools/smatch/src/expand.c
1366
int is_zero_constant(struct expression *expr)
usr/src/tools/smatch/src/expand.c
1370
expand_expression(expr);
usr/src/tools/smatch/src/expand.c
1372
return expr->type == EXPR_VALUE && !expr->value;
usr/src/tools/smatch/src/expand.c
146
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/expand.c
147
expr->taint = 0;
usr/src/tools/smatch/src/expand.c
152
expr->fvalue = (long double)get_longlong(old);
usr/src/tools/smatch/src/expand.c
154
expr->fvalue = old->fvalue;
usr/src/tools/smatch/src/expand.c
159
expr->fvalue = (double)expr->fvalue;
usr/src/tools/smatch/src/expand.c
161
expr->fvalue = (float)expr->fvalue;
usr/src/tools/smatch/src/expand.c
163
expr->type = EXPR_FVALUE;
usr/src/tools/smatch/src/expand.c
166
static void warn_shift_count(struct expression *expr, struct symbol *ctype, long long count)
usr/src/tools/smatch/src/expand.c
171
warning(expr->pos, "shift count is negative (%lld)", count);
usr/src/tools/smatch/src/expand.c
179
warning(expr->pos, "shift too big (%llu) for type %s", count, show_typename(ctype));
usr/src/tools/smatch/src/expand.c
183
static bool check_shift_count(struct expression *expr, struct expression *right)
usr/src/tools/smatch/src/expand.c
185
struct symbol *ctype = expr->ctype;
usr/src/tools/smatch/src/expand.c
191
warn_shift_count(expr, ctype, count);
usr/src/tools/smatch/src/expand.c
202
static int simplify_int_binop(struct expression *expr, struct symbol *ctype)
usr/src/tools/smatch/src/expand.c
204
struct expression *left = expr->left, *right = expr->right;
usr/src/tools/smatch/src/expand.c
212
if (expr->op == SPECIAL_LEFTSHIFT || expr->op == SPECIAL_RIGHTSHIFT) {
usr/src/tools/smatch/src/expand.c
213
if (!check_shift_count(expr, right))
usr/src/tools/smatch/src/expand.c
227
switch (CONVERT(expr->op,is_signed)) {
usr/src/tools/smatch/src/expand.c
304
expr->value = v & mask;
usr/src/tools/smatch/src/expand.c
305
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/expand.c
306
expr->taint = left->taint | right->taint;
usr/src/tools/smatch/src/expand.c
310
warning(expr->pos, "division by zero");
usr/src/tools/smatch/src/expand.c
314
warning(expr->pos, "constant integer operation overflow");
usr/src/tools/smatch/src/expand.c
318
static int simplify_cmp_binop(struct expression *expr, struct symbol *ctype)
usr/src/tools/smatch/src/expand.c
320
struct expression *left = expr->left, *right = expr->right;
usr/src/tools/smatch/src/expand.c
333
switch (expr->op) {
usr/src/tools/smatch/src/expand.c
334
case '<': expr->value = sl < sr; break;
usr/src/tools/smatch/src/expand.c
335
case '>': expr->value = sl > sr; break;
usr/src/tools/smatch/src/expand.c
336
case SPECIAL_LTE: expr->value = sl <= sr; break;
usr/src/tools/smatch/src/expand.c
337
case SPECIAL_GTE: expr->value = sl >= sr; break;
usr/src/tools/smatch/src/expand.c
338
case SPECIAL_EQUAL: expr->value = l == r; break;
usr/src/tools/smatch/src/expand.c
339
case SPECIAL_NOTEQUAL: expr->value = l != r; break;
usr/src/tools/smatch/src/expand.c
340
case SPECIAL_UNSIGNED_LT:expr->value = l < r; break;
usr/src/tools/smatch/src/expand.c
341
case SPECIAL_UNSIGNED_GT:expr->value = l > r; break;
usr/src/tools/smatch/src/expand.c
342
case SPECIAL_UNSIGNED_LTE:expr->value = l <= r; break;
usr/src/tools/smatch/src/expand.c
343
case SPECIAL_UNSIGNED_GTE:expr->value = l >= r; break;
usr/src/tools/smatch/src/expand.c
345
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/expand.c
346
expr->taint = left->taint | right->taint;
usr/src/tools/smatch/src/expand.c
350
static int simplify_float_binop(struct expression *expr)
usr/src/tools/smatch/src/expand.c
352
struct expression *left = expr->left, *right = expr->right;
usr/src/tools/smatch/src/expand.c
353
unsigned long mod = expr->ctype->ctype.modifiers;
usr/src/tools/smatch/src/expand.c
363
switch (expr->op) {
usr/src/tools/smatch/src/expand.c
372
switch (expr->op) {
usr/src/tools/smatch/src/expand.c
381
switch (expr->op) {
usr/src/tools/smatch/src/expand.c
390
expr->type = EXPR_FVALUE;
usr/src/tools/smatch/src/expand.c
391
expr->fvalue = res;
usr/src/tools/smatch/src/expand.c
395
warning(expr->pos, "division by zero");
usr/src/tools/smatch/src/expand.c
399
static int simplify_float_cmp(struct expression *expr, struct symbol *ctype)
usr/src/tools/smatch/src/expand.c
401
struct expression *left = expr->left, *right = expr->right;
usr/src/tools/smatch/src/expand.c
409
switch (expr->op) {
usr/src/tools/smatch/src/expand.c
410
case '<': expr->value = l < r; break;
usr/src/tools/smatch/src/expand.c
411
case '>': expr->value = l > r; break;
usr/src/tools/smatch/src/expand.c
412
case SPECIAL_LTE: expr->value = l <= r; break;
usr/src/tools/smatch/src/expand.c
413
case SPECIAL_GTE: expr->value = l >= r; break;
usr/src/tools/smatch/src/expand.c
414
case SPECIAL_EQUAL: expr->value = l == r; break;
usr/src/tools/smatch/src/expand.c
415
case SPECIAL_NOTEQUAL: expr->value = l != r; break;
usr/src/tools/smatch/src/expand.c
417
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/expand.c
418
expr->taint = 0;
usr/src/tools/smatch/src/expand.c
422
static int expand_binop(struct expression *expr)
usr/src/tools/smatch/src/expand.c
426
cost = expand_expression(expr->left);
usr/src/tools/smatch/src/expand.c
427
cost += expand_expression(expr->right);
usr/src/tools/smatch/src/expand.c
428
if (simplify_int_binop(expr, expr->ctype))
usr/src/tools/smatch/src/expand.c
430
if (simplify_float_binop(expr))
usr/src/tools/smatch/src/expand.c
435
static int expand_logical(struct expression *expr)
usr/src/tools/smatch/src/expand.c
437
struct expression *left = expr->left;
usr/src/tools/smatch/src/expand.c
444
if (expr->op == SPECIAL_LOGICAL_AND) {
usr/src/tools/smatch/src/expand.c
446
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/expand.c
447
expr->value = 0;
usr/src/tools/smatch/src/expand.c
448
expr->taint = left->taint;
usr/src/tools/smatch/src/expand.c
453
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/expand.c
454
expr->value = 1;
usr/src/tools/smatch/src/expand.c
455
expr->taint = left->taint;
usr/src/tools/smatch/src/expand.c
461
right = expr->right;
usr/src/tools/smatch/src/expand.c
468
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/expand.c
469
expr->value = right->value != 0;
usr/src/tools/smatch/src/expand.c
470
expr->taint = left->taint | right->taint;
usr/src/tools/smatch/src/expand.c
480
expr->type = EXPR_BINOP;
usr/src/tools/smatch/src/expand.c
487
static int expand_comma(struct expression *expr)
usr/src/tools/smatch/src/expand.c
491
cost = expand_expression(expr->left);
usr/src/tools/smatch/src/expand.c
492
cost += expand_expression(expr->right);
usr/src/tools/smatch/src/expand.c
493
if (expr->left->type == EXPR_VALUE || expr->left->type == EXPR_FVALUE) {
usr/src/tools/smatch/src/expand.c
494
unsigned flags = expr->flags;
usr/src/tools/smatch/src/expand.c
496
taint = expr->left->type == EXPR_VALUE ? expr->left->taint : 0;
usr/src/tools/smatch/src/expand.c
497
*expr = *expr->right;
usr/src/tools/smatch/src/expand.c
498
expr->flags = flags;
usr/src/tools/smatch/src/expand.c
499
if (expr->type == EXPR_VALUE)
usr/src/tools/smatch/src/expand.c
500
expr->taint |= Taint_comma | taint;
usr/src/tools/smatch/src/expand.c
528
static int expand_compare(struct expression *expr)
usr/src/tools/smatch/src/expand.c
530
struct expression *left = expr->left, *right = expr->right;
usr/src/tools/smatch/src/expand.c
539
int op = expr->op;
usr/src/tools/smatch/src/expand.c
540
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/expand.c
541
expr->value = compare_types(op, left->symbol, right->symbol);
usr/src/tools/smatch/src/expand.c
542
expr->taint = 0;
usr/src/tools/smatch/src/expand.c
545
if (simplify_cmp_binop(expr, left->ctype))
usr/src/tools/smatch/src/expand.c
547
if (simplify_float_cmp(expr, left->ctype))
usr/src/tools/smatch/src/expand.c
553
static int expand_conditional(struct expression *expr)
usr/src/tools/smatch/src/expand.c
555
struct expression *cond = expr->conditional;
usr/src/tools/smatch/src/expand.c
556
struct expression *valt = expr->cond_true;
usr/src/tools/smatch/src/expand.c
557
struct expression *valf = expr->cond_false;
usr/src/tools/smatch/src/expand.c
562
unsigned flags = expr->flags;
usr/src/tools/smatch/src/expand.c
568
*expr = *valt;
usr/src/tools/smatch/src/expand.c
569
expr->flags = flags;
usr/src/tools/smatch/src/expand.c
57
static int expand_symbol_expression(struct expression *expr)
usr/src/tools/smatch/src/expand.c
570
if (expr->type == EXPR_VALUE)
usr/src/tools/smatch/src/expand.c
571
expr->taint |= cond->taint;
usr/src/tools/smatch/src/expand.c
579
expr->type = EXPR_SELECT;
usr/src/tools/smatch/src/expand.c
586
static void check_assignment(struct expression *expr)
usr/src/tools/smatch/src/expand.c
59
struct symbol *sym = expr->symbol;
usr/src/tools/smatch/src/expand.c
590
switch (expr->op) {
usr/src/tools/smatch/src/expand.c
593
right = expr->right;
usr/src/tools/smatch/src/expand.c
596
check_shift_count(expr, right);
usr/src/tools/smatch/src/expand.c
602
static int expand_assignment(struct expression *expr)
usr/src/tools/smatch/src/expand.c
604
expand_expression(expr->left);
usr/src/tools/smatch/src/expand.c
605
expand_expression(expr->right);
usr/src/tools/smatch/src/expand.c
608
check_assignment(expr);
usr/src/tools/smatch/src/expand.c
612
static int expand_addressof(struct expression *expr)
usr/src/tools/smatch/src/expand.c
614
return expand_expression(expr->unop);
usr/src/tools/smatch/src/expand.c
63
warning(expr->pos, "undefined preprocessor identifier '%s'", show_ident(expr->symbol_name));
usr/src/tools/smatch/src/expand.c
64
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/expand.c
65
expr->value = 0;
usr/src/tools/smatch/src/expand.c
652
static int expand_dereference(struct expression *expr)
usr/src/tools/smatch/src/expand.c
654
struct expression *unop = expr->unop;
usr/src/tools/smatch/src/expand.c
66
expr->taint = 0;
usr/src/tools/smatch/src/expand.c
667
if (expr->ctype->ctype.modifiers & MOD_NODEREF)
usr/src/tools/smatch/src/expand.c
692
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/expand.c
693
expr->value = value->value;
usr/src/tools/smatch/src/expand.c
694
expr->taint = 0;
usr/src/tools/smatch/src/expand.c
697
expr->type = EXPR_FVALUE;
usr/src/tools/smatch/src/expand.c
698
expr->fvalue = value->fvalue;
usr/src/tools/smatch/src/expand.c
710
static int simplify_preop(struct expression *expr)
usr/src/tools/smatch/src/expand.c
712
struct expression *op = expr->unop;
usr/src/tools/smatch/src/expand.c
718
mask = 1ULL << (expr->ctype->bit_size-1);
usr/src/tools/smatch/src/expand.c
720
switch (expr->op) {
usr/src/tools/smatch/src/expand.c
723
if (v == mask && !(expr->ctype->ctype.modifiers & MOD_UNSIGNED))
usr/src/tools/smatch/src/expand.c
73
static long long get_longlong(struct expression *expr)
usr/src/tools/smatch/src/expand.c
732
expr->value = v & mask;
usr/src/tools/smatch/src/expand.c
733
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/expand.c
734
expr->taint = op->taint;
usr/src/tools/smatch/src/expand.c
739
warning(expr->pos, "constant integer operation overflow");
usr/src/tools/smatch/src/expand.c
743
static int simplify_float_preop(struct expression *expr)
usr/src/tools/smatch/src/expand.c
745
struct expression *op = expr->unop;
usr/src/tools/smatch/src/expand.c
75
int no_expand = expr->ctype->ctype.modifiers & MOD_UNSIGNED;
usr/src/tools/smatch/src/expand.c
751
switch (expr->op) {
usr/src/tools/smatch/src/expand.c
756
expr->fvalue = v;
usr/src/tools/smatch/src/expand.c
757
expr->type = EXPR_FVALUE;
usr/src/tools/smatch/src/expand.c
76
long long mask = 1ULL << (expr->ctype->bit_size - 1);
usr/src/tools/smatch/src/expand.c
764
static int expand_postop(struct expression *expr)
usr/src/tools/smatch/src/expand.c
766
expand_expression(expr->unop);
usr/src/tools/smatch/src/expand.c
77
long long value = expr->value;
usr/src/tools/smatch/src/expand.c
770
static int expand_preop(struct expression *expr)
usr/src/tools/smatch/src/expand.c
774
switch (expr->op) {
usr/src/tools/smatch/src/expand.c
776
return expand_dereference(expr);
usr/src/tools/smatch/src/expand.c
779
return expand_addressof(expr);
usr/src/tools/smatch/src/expand.c
787
return expand_postop(expr);
usr/src/tools/smatch/src/expand.c
792
cost = expand_expression(expr->unop);
usr/src/tools/smatch/src/expand.c
794
if (simplify_preop(expr))
usr/src/tools/smatch/src/expand.c
796
if (simplify_float_preop(expr))
usr/src/tools/smatch/src/expand.c
804
struct expression *expr;
usr/src/tools/smatch/src/expand.c
806
FOR_EACH_PTR (head, expr) {
usr/src/tools/smatch/src/expand.c
807
cost += expand_expression(expr);
usr/src/tools/smatch/src/expand.c
808
} END_FOR_EACH_PTR(expr);
usr/src/tools/smatch/src/expand.c
812
static int expand_cast(struct expression *expr)
usr/src/tools/smatch/src/expand.c
815
struct expression *target = expr->cast_expression;
usr/src/tools/smatch/src/expand.c
821
cast_value(expr, expr->ctype, target, target->ctype);
usr/src/tools/smatch/src/expand.c
831
static int expand_symbol_call(struct expression *expr, int cost)
usr/src/tools/smatch/src/expand.c
833
struct expression *fn = expr->fn;
usr/src/tools/smatch/src/expand.c
842
return ctype->op->expand(expr, cost);
usr/src/tools/smatch/src/expand.c
850
static int expand_call(struct expression *expr)
usr/src/tools/smatch/src/expand.c
854
struct expression *fn = expr->fn;
usr/src/tools/smatch/src/expand.c
856
cost = expand_arguments(expr->args);
usr/src/tools/smatch/src/expand.c
859
expression_error(expr, "function has no type");
usr/src/tools/smatch/src/expand.c
863
return expand_symbol_call(expr, cost);
usr/src/tools/smatch/src/expand.c
871
struct expression *expr;
usr/src/tools/smatch/src/expand.c
873
FOR_EACH_PTR(list, expr) {
usr/src/tools/smatch/src/expand.c
874
cost += expand_expression(expr);
usr/src/tools/smatch/src/expand.c
875
} END_FOR_EACH_PTR(expr);
usr/src/tools/smatch/src/expand.c
883
static int expand_pos_expression(struct expression *expr)
usr/src/tools/smatch/src/expand.c
885
struct expression *nested = expr->init_expr;
usr/src/tools/smatch/src/expand.c
886
unsigned long offset = expr->init_offset;
usr/src/tools/smatch/src/expand.c
887
int nr = expr->init_nr;
usr/src/tools/smatch/src/expand.c
89
void cast_value(struct expression *expr, struct symbol *newtype,
usr/src/tools/smatch/src/expand.c
893
*expr = *nested;
usr/src/tools/smatch/src/expand.c
894
expr->init_offset = offset;
usr/src/tools/smatch/src/expand.c
895
nested = expr;
usr/src/tools/smatch/src/expand.c
900
*expr = *nested;
usr/src/tools/smatch/src/expand.c
901
FOR_EACH_PTR(expr->expr_list, entry) {
usr/src/tools/smatch/src/expand.c
922
nested = expr;
usr/src/tools/smatch/src/expand.c
933
static unsigned long bit_offset(const struct expression *expr)
usr/src/tools/smatch/src/expand.c
936
while (expr->type == EXPR_POS) {
usr/src/tools/smatch/src/expand.c
937
offset += bytes_to_bits(expr->init_offset);
usr/src/tools/smatch/src/expand.c
938
expr = expr->init_expr;
usr/src/tools/smatch/src/expand.c
940
if (expr && expr->ctype)
usr/src/tools/smatch/src/expand.c
941
offset += expr->ctype->bit_offset;
usr/src/tools/smatch/src/expand.c
945
static unsigned long bit_range(const struct expression *expr)
usr/src/tools/smatch/src/expand.c
949
while (expr->type == EXPR_POS) {
usr/src/tools/smatch/src/expand.c
950
unsigned long nr = expr->init_nr;
usr/src/tools/smatch/src/expand.c
951
size = expr->ctype->bit_size;
usr/src/tools/smatch/src/expand.c
953
expr = expr->init_expr;
usr/src/tools/smatch/src/expand.c
974
static void verify_nonoverlapping(struct expression_list **list, struct expression *expr)
usr/src/tools/smatch/src/expand.c
978
unsigned long whole = expr->ctype->bit_size;
usr/src/tools/smatch/src/expression.c
152
struct expression *expr = alloc_expression(
usr/src/tools/smatch/src/expression.c
154
expr->op = SPECIAL_EQUAL;
usr/src/tools/smatch/src/expression.c
160
token = parse_type(token, &expr->left);
usr/src/tools/smatch/src/expression.c
165
token = parse_type(token, &expr->right);
usr/src/tools/smatch/src/expression.c
171
*tree = expr;
usr/src/tools/smatch/src/expression.c
178
struct expression *expr = NULL;
usr/src/tools/smatch/src/expression.c
179
struct expression **p = &expr;
usr/src/tools/smatch/src/expression.c
201
expr->in = sym;
usr/src/tools/smatch/src/expression.c
202
*tree = expr;
usr/src/tools/smatch/src/expression.c
249
static void get_number_value(struct expression *expr, struct token *token)
usr/src/tools/smatch/src/expression.c
323
warning(expr->pos, "decimal constant %s is too big for long long",
usr/src/tools/smatch/src/expression.c
328
warning(expr->pos, "constant %s is so big it is%s%s%s",
usr/src/tools/smatch/src/expression.c
334
warning(expr->pos,
usr/src/tools/smatch/src/expression.c
339
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/expression.c
340
expr->flags = CEF_SET_INT;
usr/src/tools/smatch/src/expression.c
341
expr->ctype = ctype_integer(size, want_unsigned);
usr/src/tools/smatch/src/expression.c
342
expr->value = value;
usr/src/tools/smatch/src/expression.c
345
error_die(expr->pos, "constant %s is too big even for unsigned long long",
usr/src/tools/smatch/src/expression.c
349
expr->fvalue = string_to_ld(str, &end);
usr/src/tools/smatch/src/expression.c
357
expr->ctype = &float_ctype;
usr/src/tools/smatch/src/expression.c
359
expr->ctype = &ldouble_ctype;
usr/src/tools/smatch/src/expression.c
361
expr->ctype = &double_ctype;
usr/src/tools/smatch/src/expression.c
365
expr->flags = CEF_SET_FLOAT;
usr/src/tools/smatch/src/expression.c
366
expr->type = EXPR_FVALUE;
usr/src/tools/smatch/src/expression.c
370
error_die(expr->pos, "constant %s is not a valid number", show_token(token));
usr/src/tools/smatch/src/expression.c
375
struct expression *expr = NULL;
usr/src/tools/smatch/src/expression.c
379
expr = alloc_expression(token->pos, EXPR_VALUE);
usr/src/tools/smatch/src/expression.c
380
expr->flags = CEF_SET_CHAR;
usr/src/tools/smatch/src/expression.c
381
expr->ctype = token_type(token) < TOKEN_WIDE_CHAR ? &int_ctype : &long_ctype;
usr/src/tools/smatch/src/expression.c
382
get_char_constant(token, &expr->value);
usr/src/tools/smatch/src/expression.c
387
expr = alloc_expression(token->pos, EXPR_VALUE);
usr/src/tools/smatch/src/expression.c
388
get_number_value(expr, token); /* will see if it's an integer */
usr/src/tools/smatch/src/expression.c
393
expr = alloc_expression(token->pos, EXPR_SYMBOL);
usr/src/tools/smatch/src/expression.c
394
expr->flags = CEF_SET_INT;
usr/src/tools/smatch/src/expression.c
395
expr->ctype = &int_ctype;
usr/src/tools/smatch/src/expression.c
396
expr->symbol = &zero_int;
usr/src/tools/smatch/src/expression.c
397
expr->symbol_name = token->ident;
usr/src/tools/smatch/src/expression.c
409
token = builtin_types_compatible_p_expr(token, &expr);
usr/src/tools/smatch/src/expression.c
413
token = builtin_offsetof_expr(token, &expr);
usr/src/tools/smatch/src/expression.c
417
expr = alloc_expression(token->pos, EXPR_VALUE);
usr/src/tools/smatch/src/expression.c
418
*expr = *sym->initializer;
usr/src/tools/smatch/src/expression.c
420
expr->pos = token->pos;
usr/src/tools/smatch/src/expression.c
421
expr->flags = CEF_SET_ENUM;
usr/src/tools/smatch/src/expression.c
426
expr = alloc_expression(token->pos, EXPR_SYMBOL);
usr/src/tools/smatch/src/expression.c
438
expr->symbol_name = token->ident;
usr/src/tools/smatch/src/expression.c
439
expr->symbol = sym;
usr/src/tools/smatch/src/expression.c
446
expr->flags = CEF_ADDR;
usr/src/tools/smatch/src/expression.c
454
expr = alloc_expression(token->pos, EXPR_STRING);
usr/src/tools/smatch/src/expression.c
455
token = get_string_constant(token, expr);
usr/src/tools/smatch/src/expression.c
460
expr = alloc_expression(token->pos, EXPR_PREOP);
usr/src/tools/smatch/src/expression.c
461
expr->op = '(';
usr/src/tools/smatch/src/expression.c
462
token = parens_expression(token, &expr->unop, "in expression");
usr/src/tools/smatch/src/expression.c
466
expr = alloc_expression(token->pos, EXPR_TYPE);
usr/src/tools/smatch/src/expression.c
467
token = typename(token->next, &expr->symbol, NULL);
usr/src/tools/smatch/src/expression.c
475
*tree = expr;
usr/src/tools/smatch/src/expression.c
482
struct expression *expr = NULL;
usr/src/tools/smatch/src/expression.c
483
token = assignment_expression(token, &expr);
usr/src/tools/smatch/src/expression.c
484
if (!expr)
usr/src/tools/smatch/src/expression.c
486
add_expression(list, expr);
usr/src/tools/smatch/src/expression.c
500
struct expression *expr = cast_init_expr;
usr/src/tools/smatch/src/expression.c
502
if (!expr)
usr/src/tools/smatch/src/expression.c
503
token = primary_expression(token, &expr);
usr/src/tools/smatch/src/expression.c
505
while (expr && token_type(token) == TOKEN_SPECIAL) {
usr/src/tools/smatch/src/expression.c
515
add->left = expr;
usr/src/tools/smatch/src/expression.c
518
expr = deref;
usr/src/tools/smatch/src/expression.c
525
post->unop = expr;
usr/src/tools/smatch/src/expression.c
526
expr = post;
usr/src/tools/smatch/src/expression.c
534
inner->unop = expr;
usr/src/tools/smatch/src/expression.c
535
expr = inner;
usr/src/tools/smatch/src/expression.c
541
deref->deref = expr;
usr/src/tools/smatch/src/expression.c
550
expr = deref;
usr/src/tools/smatch/src/expression.c
557
call->fn = expr;
usr/src/tools/smatch/src/expression.c
560
expr = call;
usr/src/tools/smatch/src/expression.c
569
*tree = expr;
usr/src/tools/smatch/src/expression.c
579
struct expression *expr = alloc_expression(token->pos, type);
usr/src/tools/smatch/src/expression.c
582
*tree = expr;
usr/src/tools/smatch/src/expression.c
583
expr->flags = CEF_SET_ICE; /* XXX: VLA support will need that changed */
usr/src/tools/smatch/src/expression.c
586
return unary_expression(token, &expr->cast_expression);
usr/src/tools/smatch/src/expression.c
588
token = typename(token->next, &expr->cast_type, NULL);
usr/src/tools/smatch/src/expression.c
606
cast->cast_type = expr->cast_type;
usr/src/tools/smatch/src/expression.c
607
expr->cast_type = NULL;
usr/src/tools/smatch/src/expression.c
608
expr->cast_expression = cast;
usr/src/tools/smatch/src/expression.c
610
token = postfix_expression(token, &expr->cast_expression, cast);
usr/src/tools/smatch/src/expression.c
63
struct token *parens_expression(struct token *token, struct expression **expr, const char *where)
usr/src/tools/smatch/src/expression.c
72
*expr = e;
usr/src/tools/smatch/src/expression.c
79
token = parse_expression(token, expr);
usr/src/tools/smatch/src/expression.c
864
struct expression *expr = alloc_expression(token->pos, EXPR_CONDITIONAL);
usr/src/tools/smatch/src/expression.c
865
expr->op = token->special;
usr/src/tools/smatch/src/expression.c
866
expr->left = *tree;
usr/src/tools/smatch/src/expression.c
867
*tree = expr;
usr/src/tools/smatch/src/expression.c
868
token = parse_expression(token->next, &expr->cond_true);
usr/src/tools/smatch/src/expression.c
870
token = conditional_expression(token, &expr->cond_false);
usr/src/tools/smatch/src/expression.c
889
struct expression * expr = alloc_expression(token->pos, EXPR_ASSIGNMENT);
usr/src/tools/smatch/src/expression.c
890
expr->left = *tree;
usr/src/tools/smatch/src/expression.c
891
expr->op = op;
usr/src/tools/smatch/src/expression.c
892
*tree = expr;
usr/src/tools/smatch/src/expression.c
893
return assignment_expression(token->next, &expr->right);
usr/src/tools/smatch/src/expression.h
251
struct expression *expr;
usr/src/tools/smatch/src/expression.h
264
int is_zero_constant(struct expression *expr);
usr/src/tools/smatch/src/expression.h
271
int expr_truth_value(struct expression *expr);
usr/src/tools/smatch/src/expression.h
275
long long get_expression_value_silent(struct expression *expr);
usr/src/tools/smatch/src/expression.h
281
struct token *parens_expression(struct token *token, struct expression **expr, const char *where);
usr/src/tools/smatch/src/expression.h
293
struct expression *expr = __alloc_expression(0);
usr/src/tools/smatch/src/expression.h
294
expr->type = type;
usr/src/tools/smatch/src/expression.h
295
expr->pos = pos;
usr/src/tools/smatch/src/expression.h
296
expr->flags = CEF_NONE;
usr/src/tools/smatch/src/expression.h
297
return expr;
usr/src/tools/smatch/src/expression.h
302
struct expression *expr = __alloc_expression(0);
usr/src/tools/smatch/src/expression.h
303
expr->type = EXPR_VALUE;
usr/src/tools/smatch/src/expression.h
304
expr->pos = pos;
usr/src/tools/smatch/src/expression.h
305
expr->value = value;
usr/src/tools/smatch/src/expression.h
306
expr->ctype = &int_ctype;
usr/src/tools/smatch/src/expression.h
307
expr->flags = CEF_SET_INT;
usr/src/tools/smatch/src/expression.h
308
return expr;
usr/src/tools/smatch/src/expression.h
332
void cast_value(struct expression *expr, struct symbol *newtype,
usr/src/tools/smatch/src/inline.c
107
struct expression *unop = copy_expression(expr->unop);
usr/src/tools/smatch/src/inline.c
108
if (expr->unop == unop)
usr/src/tools/smatch/src/inline.c
110
expr = dup_expression(expr);
usr/src/tools/smatch/src/inline.c
111
expr->unop = unop;
usr/src/tools/smatch/src/inline.c
116
struct expression *base = copy_expression(expr->base);
usr/src/tools/smatch/src/inline.c
117
expr = dup_expression(expr);
usr/src/tools/smatch/src/inline.c
118
expr->base = base;
usr/src/tools/smatch/src/inline.c
127
struct expression *left = copy_expression(expr->left);
usr/src/tools/smatch/src/inline.c
128
struct expression *right = copy_expression(expr->right);
usr/src/tools/smatch/src/inline.c
129
if (left == expr->left && right == expr->right)
usr/src/tools/smatch/src/inline.c
131
expr = dup_expression(expr);
usr/src/tools/smatch/src/inline.c
132
expr->left = left;
usr/src/tools/smatch/src/inline.c
133
expr->right = right;
usr/src/tools/smatch/src/inline.c
138
struct expression *left = copy_expression(expr->left);
usr/src/tools/smatch/src/inline.c
139
struct expression *right = copy_expression(expr->right);
usr/src/tools/smatch/src/inline.c
140
if (expr->op == '=' && left == expr->left && right == expr->right)
usr/src/tools/smatch/src/inline.c
142
expr = dup_expression(expr);
usr/src/tools/smatch/src/inline.c
143
expr->left = left;
usr/src/tools/smatch/src/inline.c
144
expr->right = right;
usr/src/tools/smatch/src/inline.c
150
struct expression *deref = copy_expression(expr->deref);
usr/src/tools/smatch/src/inline.c
151
expr = dup_expression(expr);
usr/src/tools/smatch/src/inline.c
152
expr->deref = deref;
usr/src/tools/smatch/src/inline.c
158
if (expr->cast_expression->type == EXPR_INITIALIZER) {
usr/src/tools/smatch/src/inline.c
159
struct expression *cast = expr->cast_expression;
usr/src/tools/smatch/src/inline.c
160
struct symbol *sym = expr->cast_type;
usr/src/tools/smatch/src/inline.c
161
expr = dup_expression(expr);
usr/src/tools/smatch/src/inline.c
162
expr->cast_expression = copy_expression(cast);
usr/src/tools/smatch/src/inline.c
163
expr->cast_type = alloc_symbol(sym->pos, sym->type);
usr/src/tools/smatch/src/inline.c
164
*expr->cast_type = *sym;
usr/src/tools/smatch/src/inline.c
172
struct expression *cast = copy_expression(expr->cast_expression);
usr/src/tools/smatch/src/inline.c
173
if (cast == expr->cast_expression)
usr/src/tools/smatch/src/inline.c
175
expr = dup_expression(expr);
usr/src/tools/smatch/src/inline.c
176
expr->cast_expression = cast;
usr/src/tools/smatch/src/inline.c
183
struct expression *cond = copy_expression(expr->conditional);
usr/src/tools/smatch/src/inline.c
184
struct expression *valt = copy_expression(expr->cond_true);
usr/src/tools/smatch/src/inline.c
185
struct expression *valf = copy_expression(expr->cond_false);
usr/src/tools/smatch/src/inline.c
186
if (cond == expr->conditional && valt == expr->cond_true && valf == expr->cond_false)
usr/src/tools/smatch/src/inline.c
188
expr = dup_expression(expr);
usr/src/tools/smatch/src/inline.c
189
expr->conditional = cond;
usr/src/tools/smatch/src/inline.c
190
expr->cond_true = valt;
usr/src/tools/smatch/src/inline.c
191
expr->cond_false = valf;
usr/src/tools/smatch/src/inline.c
197
struct statement *stmt = alloc_statement(expr->pos, STMT_COMPOUND);
usr/src/tools/smatch/src/inline.c
198
copy_statement(expr->statement, stmt);
usr/src/tools/smatch/src/inline.c
199
expr = dup_expression(expr);
usr/src/tools/smatch/src/inline.c
200
expr->statement = stmt;
usr/src/tools/smatch/src/inline.c
206
struct expression *fn = copy_expression(expr->fn);
usr/src/tools/smatch/src/inline.c
207
struct expression_list *list = expr->args;
usr/src/tools/smatch/src/inline.c
210
expr = dup_expression(expr);
usr/src/tools/smatch/src/inline.c
211
expr->fn = fn;
usr/src/tools/smatch/src/inline.c
212
expr->args = NULL;
usr/src/tools/smatch/src/inline.c
214
add_expression(&expr->args, copy_expression(arg));
usr/src/tools/smatch/src/inline.c
221
struct expression_list *list = expr->expr_list;
usr/src/tools/smatch/src/inline.c
223
expr = dup_expression(expr);
usr/src/tools/smatch/src/inline.c
224
expr->expr_list = NULL;
usr/src/tools/smatch/src/inline.c
226
add_expression(&expr->expr_list, copy_expression(entry));
usr/src/tools/smatch/src/inline.c
233
struct symbol *label_symbol = copy_symbol(expr->pos, expr->label_symbol);
usr/src/tools/smatch/src/inline.c
234
expr = dup_expression(expr);
usr/src/tools/smatch/src/inline.c
235
expr->label_symbol = label_symbol;
usr/src/tools/smatch/src/inline.c
240
struct expression *sub_expr = copy_expression(expr->idx_expression);
usr/src/tools/smatch/src/inline.c
241
expr = dup_expression(expr);
usr/src/tools/smatch/src/inline.c
242
expr->idx_expression = sub_expr;
usr/src/tools/smatch/src/inline.c
247
struct expression *sub_expr = copy_expression(expr->ident_expression);
usr/src/tools/smatch/src/inline.c
248
expr = dup_expression(expr);
usr/src/tools/smatch/src/inline.c
249
expr->ident_expression = sub_expr;
usr/src/tools/smatch/src/inline.c
255
struct expression *val = copy_expression(expr->init_expr);
usr/src/tools/smatch/src/inline.c
256
expr = dup_expression(expr);
usr/src/tools/smatch/src/inline.c
257
expr->init_expr = val;
usr/src/tools/smatch/src/inline.c
261
struct expression *val = copy_expression(expr->down);
usr/src/tools/smatch/src/inline.c
262
if (expr->op == '.') {
usr/src/tools/smatch/src/inline.c
263
if (expr->down != val) {
usr/src/tools/smatch/src/inline.c
264
expr = dup_expression(expr);
usr/src/tools/smatch/src/inline.c
265
expr->down = val;
usr/src/tools/smatch/src/inline.c
268
struct expression *idx = copy_expression(expr->index);
usr/src/tools/smatch/src/inline.c
269
if (expr->down != val || expr->index != idx) {
usr/src/tools/smatch/src/inline.c
270
expr = dup_expression(expr);
usr/src/tools/smatch/src/inline.c
271
expr->down = val;
usr/src/tools/smatch/src/inline.c
272
expr->index = idx;
usr/src/tools/smatch/src/inline.c
278
expr = dup_expression(expr);
usr/src/tools/smatch/src/inline.c
279
expr->constraint = copy_expression(expr->constraint);
usr/src/tools/smatch/src/inline.c
280
expr->expr = copy_expression(expr->expr);
usr/src/tools/smatch/src/inline.c
284
warning(expr->pos, "trying to copy expression type %d", expr->type);
usr/src/tools/smatch/src/inline.c
286
return expr;
usr/src/tools/smatch/src/inline.c
292
struct expression *expr;
usr/src/tools/smatch/src/inline.c
294
FOR_EACH_PTR(in, expr) {
usr/src/tools/smatch/src/inline.c
295
add_expression(&out, copy_expression(expr));
usr/src/tools/smatch/src/inline.c
296
} END_FOR_EACH_PTR(expr);
usr/src/tools/smatch/src/inline.c
347
struct expression *expr = copy_expression(stmt->expression);
usr/src/tools/smatch/src/inline.c
348
if (expr == stmt->expression)
usr/src/tools/smatch/src/inline.c
351
stmt->expression = expr;
usr/src/tools/smatch/src/inline.c
355
struct expression *expr = copy_expression(stmt->range_expression);
usr/src/tools/smatch/src/inline.c
356
if (expr == stmt->expression)
usr/src/tools/smatch/src/inline.c
359
stmt->range_expression = expr;
usr/src/tools/smatch/src/inline.c
39
static struct expression * dup_expression(struct expression *expr)
usr/src/tools/smatch/src/inline.c
407
struct expression *expr = copy_expression(stmt->switch_expression);
usr/src/tools/smatch/src/inline.c
41
struct expression *dup = alloc_expression(expr->pos, expr->type);
usr/src/tools/smatch/src/inline.c
414
stmt->switch_expression = expr;
usr/src/tools/smatch/src/inline.c
42
*dup = *expr;
usr/src/tools/smatch/src/inline.c
507
int inline_function(struct expression *expr, struct symbol *sym)
usr/src/tools/smatch/src/inline.c
511
struct expression_list *arg_list = expr->args;
usr/src/tools/smatch/src/inline.c
512
struct statement *stmt = alloc_statement(expr->pos, STMT_COMPOUND);
usr/src/tools/smatch/src/inline.c
528
expr->type = EXPR_STATEMENT;
usr/src/tools/smatch/src/inline.c
529
expr->statement = stmt;
usr/src/tools/smatch/src/inline.c
530
expr->ctype = fn->ctype.base_type;
usr/src/tools/smatch/src/inline.c
555
struct statement *decl = alloc_statement(expr->pos, STMT_DECLARATION);
usr/src/tools/smatch/src/inline.c
78
static struct expression * copy_expression(struct expression *expr)
usr/src/tools/smatch/src/inline.c
80
if (!expr)
usr/src/tools/smatch/src/inline.c
83
switch (expr->type) {
usr/src/tools/smatch/src/inline.c
89
struct symbol *sym = copy_symbol(expr->pos, expr->symbol);
usr/src/tools/smatch/src/inline.c
90
if (sym == expr->symbol)
usr/src/tools/smatch/src/inline.c
92
expr = dup_expression(expr);
usr/src/tools/smatch/src/inline.c
93
expr->symbol = sym;
usr/src/tools/smatch/src/lib.c
220
void expression_error(struct expression *expr, const char *fmt, ...)
usr/src/tools/smatch/src/lib.c
224
do_error(expr->pos, fmt, args);
usr/src/tools/smatch/src/lib.c
226
expr->ctype = &bad_ctype;
usr/src/tools/smatch/src/lib.h
320
static inline void add_expression(struct expression_list **list, struct expression *expr)
usr/src/tools/smatch/src/lib.h
322
add_ptr_list(list, expr);
usr/src/tools/smatch/src/linearize.c
1131
static pseudo_t linearize_access(struct entrypoint *ep, struct expression *expr)
usr/src/tools/smatch/src/linearize.c
1136
if (!linearize_address_gen(ep, expr, &ad))
usr/src/tools/smatch/src/linearize.c
1142
static pseudo_t linearize_inc_dec(struct entrypoint *ep, struct expression *expr, int postop)
usr/src/tools/smatch/src/linearize.c
1146
int op = expr->op == SPECIAL_INCREMENT ? OP_ADD : OP_SUB;
usr/src/tools/smatch/src/linearize.c
1148
if (!linearize_address_gen(ep, expr->unop, &ad))
usr/src/tools/smatch/src/linearize.c
1152
op = opcode_float(op, expr->ctype);
usr/src/tools/smatch/src/linearize.c
1153
if (is_float_type(expr->ctype))
usr/src/tools/smatch/src/linearize.c
1154
one = add_setfval(ep, expr->ctype, expr->op_value);
usr/src/tools/smatch/src/linearize.c
1156
one = value_pseudo(expr->op_value);
usr/src/tools/smatch/src/linearize.c
117
struct expression *expr;
usr/src/tools/smatch/src/linearize.c
1185
static pseudo_t linearize_slice(struct entrypoint *ep, struct expression *expr)
usr/src/tools/smatch/src/linearize.c
1187
pseudo_t pre = linearize_expression(ep, expr->base);
usr/src/tools/smatch/src/linearize.c
1188
struct instruction *insn = alloc_typed_instruction(OP_SLICE, expr->ctype);
usr/src/tools/smatch/src/linearize.c
1192
insn->from = expr->r_bitpos;
usr/src/tools/smatch/src/linearize.c
1193
insn->len = expr->r_nrbits;
usr/src/tools/smatch/src/linearize.c
1199
static pseudo_t linearize_regular_preop(struct entrypoint *ep, struct expression *expr)
usr/src/tools/smatch/src/linearize.c
1201
pseudo_t pre = linearize_expression(ep, expr->unop);
usr/src/tools/smatch/src/linearize.c
1202
struct symbol *ctype = expr->ctype;
usr/src/tools/smatch/src/linearize.c
1203
switch (expr->op) {
usr/src/tools/smatch/src/linearize.c
1218
static pseudo_t linearize_preop(struct entrypoint *ep, struct expression *expr)
usr/src/tools/smatch/src/linearize.c
1225
if (expr->op == '*')
usr/src/tools/smatch/src/linearize.c
1226
return linearize_access(ep, expr);
usr/src/tools/smatch/src/linearize.c
1227
if (expr->op == SPECIAL_INCREMENT || expr->op == SPECIAL_DECREMENT)
usr/src/tools/smatch/src/linearize.c
1228
return linearize_inc_dec(ep, expr, 0);
usr/src/tools/smatch/src/linearize.c
1229
return linearize_regular_preop(ep, expr);
usr/src/tools/smatch/src/linearize.c
1232
static pseudo_t linearize_postop(struct entrypoint *ep, struct expression *expr)
usr/src/tools/smatch/src/linearize.c
1234
return linearize_inc_dec(ep, expr, 1);
usr/src/tools/smatch/src/linearize.c
131
expr = sym->initializer;
usr/src/tools/smatch/src/linearize.c
133
if (expr) {
usr/src/tools/smatch/src/linearize.c
134
switch (expr->type) {
usr/src/tools/smatch/src/linearize.c
136
snprintf(buf, 64, "<symbol value: %lld>", expr->value);
usr/src/tools/smatch/src/linearize.c
139
return show_string(expr->string);
usr/src/tools/smatch/src/linearize.c
1438
static pseudo_t linearize_expression_to_bool(struct entrypoint *ep, struct expression *expr)
usr/src/tools/smatch/src/linearize.c
1441
dst = linearize_expression(ep, expr);
usr/src/tools/smatch/src/linearize.c
1442
dst = add_convert_to_bool(ep, dst, expr->ctype);
usr/src/tools/smatch/src/linearize.c
1446
static pseudo_t linearize_assignment(struct entrypoint *ep, struct expression *expr)
usr/src/tools/smatch/src/linearize.c
1449
struct expression *target = expr->left;
usr/src/tools/smatch/src/linearize.c
1450
struct expression *src = expr->right;
usr/src/tools/smatch/src/linearize.c
1457
if (expr->op != '=') {
usr/src/tools/smatch/src/linearize.c
1479
opcode = map_opcode(op_trans[expr->op - SPECIAL_BASE], ctype);
usr/src/tools/smatch/src/linearize.c
1482
value = cast_pseudo(ep, dst, ctype, expr->ctype);
usr/src/tools/smatch/src/linearize.c
1488
static pseudo_t linearize_call_expression(struct entrypoint *ep, struct expression *expr)
usr/src/tools/smatch/src/linearize.c
1491
struct instruction *insn = alloc_typed_instruction(OP_CALL, expr->ctype);
usr/src/tools/smatch/src/linearize.c
1497
if (!expr->ctype)
usr/src/tools/smatch/src/linearize.c
1500
fn = expr->fn;
usr/src/tools/smatch/src/linearize.c
1507
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/linearize.c
1523
if (expr->ctype != &void_ctype)
usr/src/tools/smatch/src/linearize.c
1556
static pseudo_t linearize_binop_bool(struct entrypoint *ep, struct expression *expr)
usr/src/tools/smatch/src/linearize.c
1559
int op = (expr->op == SPECIAL_LOGICAL_OR) ? OP_OR : OP_AND;
usr/src/tools/smatch/src/linearize.c
1561
src1 = linearize_expression_to_bool(ep, expr->left);
usr/src/tools/smatch/src/linearize.c
1562
src2 = linearize_expression_to_bool(ep, expr->right);
usr/src/tools/smatch/src/linearize.c
1564
if (expr->ctype != &bool_ctype)
usr/src/tools/smatch/src/linearize.c
1565
dst = cast_pseudo(ep, dst, &bool_ctype, expr->ctype);
usr/src/tools/smatch/src/linearize.c
1569
static pseudo_t linearize_binop(struct entrypoint *ep, struct expression *expr)
usr/src/tools/smatch/src/linearize.c
1582
src1 = linearize_expression(ep, expr->left);
usr/src/tools/smatch/src/linearize.c
1583
src2 = linearize_expression(ep, expr->right);
usr/src/tools/smatch/src/linearize.c
1584
op = map_opcode(opcode[expr->op], expr->ctype);
usr/src/tools/smatch/src/linearize.c
1585
dst = add_binary_op(ep, expr->ctype, op, src1, src2);
usr/src/tools/smatch/src/linearize.c
1590
static pseudo_t linearize_logical_branch(struct entrypoint *ep, struct expression *expr, struct basic_block *bb_true, struct basic_block *bb_false);
usr/src/tools/smatch/src/linearize.c
1592
static pseudo_t linearize_cond_branch(struct entrypoint *ep, struct expression *expr, struct basic_block *bb_true, struct basic_block *bb_false);
usr/src/tools/smatch/src/linearize.c
1594
static pseudo_t linearize_select(struct entrypoint *ep, struct expression *expr)
usr/src/tools/smatch/src/linearize.c
1599
valt = linearize_expression(ep, expr->cond_true);
usr/src/tools/smatch/src/linearize.c
1600
valf = linearize_expression(ep, expr->cond_false);
usr/src/tools/smatch/src/linearize.c
1601
cond = linearize_expression(ep, expr->conditional);
usr/src/tools/smatch/src/linearize.c
1603
insn = alloc_typed_instruction(OP_SEL, expr->ctype);
usr/src/tools/smatch/src/linearize.c
1604
if (!expr->cond_true)
usr/src/tools/smatch/src/linearize.c
1616
static pseudo_t add_join_conditional(struct entrypoint *ep, struct expression *expr,
usr/src/tools/smatch/src/linearize.c
1627
phi_node = alloc_typed_instruction(OP_PHI, expr->ctype);
usr/src/tools/smatch/src/linearize.c
1635
static pseudo_t linearize_short_conditional(struct entrypoint *ep, struct expression *expr,
usr/src/tools/smatch/src/linearize.c
1648
merge = alloc_basic_block(ep, expr->pos);
usr/src/tools/smatch/src/linearize.c
1651
phi1 = alloc_phi(ep->active, src1, expr->ctype);
usr/src/tools/smatch/src/linearize.c
1656
phi2 = alloc_phi(ep->active, src2, expr->ctype);
usr/src/tools/smatch/src/linearize.c
1659
return add_join_conditional(ep, expr, phi1, phi2);
usr/src/tools/smatch/src/linearize.c
1662
static pseudo_t linearize_conditional(struct entrypoint *ep, struct expression *expr,
usr/src/tools/smatch/src/linearize.c
1675
merge = alloc_basic_block(ep, expr->pos);
usr/src/tools/smatch/src/linearize.c
1681
phi1 = alloc_phi(ep->active, src1, expr->ctype);
usr/src/tools/smatch/src/linearize.c
1686
phi2 = alloc_phi(ep->active, src2, expr->ctype);
usr/src/tools/smatch/src/linearize.c
1689
return add_join_conditional(ep, expr, phi1, phi2);
usr/src/tools/smatch/src/linearize.c
1705
static pseudo_t linearize_logical(struct entrypoint *ep, struct expression *expr)
usr/src/tools/smatch/src/linearize.c
1707
struct symbol *ctype = expr->ctype;
usr/src/tools/smatch/src/linearize.c
1712
if (!ep->active || !expr->left || !expr->right)
usr/src/tools/smatch/src/linearize.c
1715
other = alloc_basic_block(ep, expr->right->pos);
usr/src/tools/smatch/src/linearize.c
1716
merge = alloc_basic_block(ep, expr->pos);
usr/src/tools/smatch/src/linearize.c
1720
if (expr->op == SPECIAL_LOGICAL_OR) {
usr/src/tools/smatch/src/linearize.c
1721
linearize_cond_branch(ep, expr->left, merge, other);
usr/src/tools/smatch/src/linearize.c
1724
linearize_cond_branch(ep, expr->left, other, merge);
usr/src/tools/smatch/src/linearize.c
1731
src2 = linearize_expression_to_bool(ep, expr->right);
usr/src/tools/smatch/src/linearize.c
1742
static pseudo_t linearize_compare(struct entrypoint *ep, struct expression *expr)
usr/src/tools/smatch/src/linearize.c
1755
int op = opcode_float(cmpop[expr->op], expr->right->ctype);
usr/src/tools/smatch/src/linearize.c
1756
pseudo_t src1 = linearize_expression(ep, expr->left);
usr/src/tools/smatch/src/linearize.c
1757
pseudo_t src2 = linearize_expression(ep, expr->right);
usr/src/tools/smatch/src/linearize.c
1758
pseudo_t dst = add_binary_op(ep, expr->ctype, op, src1, src2);
usr/src/tools/smatch/src/linearize.c
1763
static pseudo_t linearize_cond_branch(struct entrypoint *ep, struct expression *expr, struct basic_block *bb_true, struct basic_block *bb_false)
usr/src/tools/smatch/src/linearize.c
1767
if (!expr || !bb_reachable(ep->active))
usr/src/tools/smatch/src/linearize.c
1770
switch (expr->type) {
usr/src/tools/smatch/src/linearize.c
1774
add_goto(ep, expr->value ? bb_true : bb_false);
usr/src/tools/smatch/src/linearize.c
1778
add_goto(ep, expr->fvalue ? bb_true : bb_false);
usr/src/tools/smatch/src/linearize.c
1782
linearize_logical_branch(ep, expr, bb_true, bb_false);
usr/src/tools/smatch/src/linearize.c
1786
cond = linearize_compare(ep, expr);
usr/src/tools/smatch/src/linearize.c
1791
if (expr->op == '!')
usr/src/tools/smatch/src/linearize.c
1792
return linearize_cond_branch(ep, expr->unop, bb_false, bb_true);
usr/src/tools/smatch/src/linearize.c
1795
cond = linearize_expression_to_bool(ep, expr);
usr/src/tools/smatch/src/linearize.c
1806
static pseudo_t linearize_logical_branch(struct entrypoint *ep, struct expression *expr, struct basic_block *bb_true, struct basic_block *bb_false)
usr/src/tools/smatch/src/linearize.c
1808
struct basic_block *next = alloc_basic_block(ep, expr->pos);
usr/src/tools/smatch/src/linearize.c
1810
if (expr->op == SPECIAL_LOGICAL_OR)
usr/src/tools/smatch/src/linearize.c
1811
linearize_cond_branch(ep, expr->left, bb_true, next);
usr/src/tools/smatch/src/linearize.c
1813
linearize_cond_branch(ep, expr->left, next, bb_false);
usr/src/tools/smatch/src/linearize.c
1815
linearize_cond_branch(ep, expr->right, bb_true, bb_false);
usr/src/tools/smatch/src/linearize.c
1819
static pseudo_t linearize_cast(struct entrypoint *ep, struct expression *expr)
usr/src/tools/smatch/src/linearize.c
1822
struct expression *orig = expr->cast_expression;
usr/src/tools/smatch/src/linearize.c
1828
return cast_pseudo(ep, src, orig->ctype, expr->ctype);
usr/src/tools/smatch/src/linearize.c
1835
struct expression *expr;
usr/src/tools/smatch/src/linearize.c
1836
FOR_EACH_PTR(initializer->expr_list, expr) {
usr/src/tools/smatch/src/linearize.c
1837
linearize_initializer(ep, expr, ad);
usr/src/tools/smatch/src/linearize.c
1838
} END_FOR_EACH_PTR(expr);
usr/src/tools/smatch/src/linearize.c
1865
static pseudo_t linearize_expression(struct entrypoint *ep, struct expression *expr)
usr/src/tools/smatch/src/linearize.c
1867
if (!expr)
usr/src/tools/smatch/src/linearize.c
1870
current_pos = expr->pos;
usr/src/tools/smatch/src/linearize.c
1871
switch (expr->type) {
usr/src/tools/smatch/src/linearize.c
1873
linearize_one_symbol(ep, expr->symbol);
usr/src/tools/smatch/src/linearize.c
1874
return add_symbol_address(ep, expr->symbol);
usr/src/tools/smatch/src/linearize.c
1877
return value_pseudo(expr->value);
usr/src/tools/smatch/src/linearize.c
1881
return add_setval(ep, expr->ctype, expr);
usr/src/tools/smatch/src/linearize.c
1884
return add_setfval(ep, expr->ctype, expr->fvalue);
usr/src/tools/smatch/src/linearize.c
1887
return linearize_statement(ep, expr->statement);
usr/src/tools/smatch/src/linearize.c
1890
return linearize_call_expression(ep, expr);
usr/src/tools/smatch/src/linearize.c
1893
if (expr->op == SPECIAL_LOGICAL_AND || expr->op == SPECIAL_LOGICAL_OR)
usr/src/tools/smatch/src/linearize.c
1894
return linearize_binop_bool(ep, expr);
usr/src/tools/smatch/src/linearize.c
1895
return linearize_binop(ep, expr);
usr/src/tools/smatch/src/linearize.c
1898
return linearize_logical(ep, expr);
usr/src/tools/smatch/src/linearize.c
1901
return linearize_compare(ep, expr);
usr/src/tools/smatch/src/linearize.c
1904
return linearize_select(ep, expr);
usr/src/tools/smatch/src/linearize.c
1907
if (!expr->cond_true)
usr/src/tools/smatch/src/linearize.c
1908
return linearize_short_conditional(ep, expr, expr->conditional, expr->cond_false);
usr/src/tools/smatch/src/linearize.c
1910
return linearize_conditional(ep, expr, expr->conditional,
usr/src/tools/smatch/src/linearize.c
1911
expr->cond_true, expr->cond_false);
usr/src/tools/smatch/src/linearize.c
1914
linearize_expression(ep, expr->left);
usr/src/tools/smatch/src/linearize.c
1915
return linearize_expression(ep, expr->right);
usr/src/tools/smatch/src/linearize.c
1918
return linearize_assignment(ep, expr);
usr/src/tools/smatch/src/linearize.c
1921
return linearize_preop(ep, expr);
usr/src/tools/smatch/src/linearize.c
1924
return linearize_postop(ep, expr);
usr/src/tools/smatch/src/linearize.c
1929
return linearize_cast(ep, expr);
usr/src/tools/smatch/src/linearize.c
1932
return linearize_slice(ep, expr);
usr/src/tools/smatch/src/linearize.c
1936
warning(expr->pos, "unexpected initializer expression (%d %d)", expr->type, expr->op);
usr/src/tools/smatch/src/linearize.c
1939
warning(expr->pos, "unknown expression (%d %d)", expr->type, expr->op);
usr/src/tools/smatch/src/linearize.c
2056
struct expression *expr = stmt->expression;
usr/src/tools/smatch/src/linearize.c
2058
insn->increment = get_expression_value(expr);
usr/src/tools/smatch/src/linearize.c
2078
static void add_asm_input(struct entrypoint *ep, struct instruction *insn, struct expression *expr,
usr/src/tools/smatch/src/linearize.c
2081
pseudo_t pseudo = linearize_expression(ep, expr);
usr/src/tools/smatch/src/linearize.c
2090
static void add_asm_output(struct entrypoint *ep, struct instruction *insn, struct expression *expr,
usr/src/tools/smatch/src/linearize.c
2097
if (!expr || !linearize_address_gen(ep, expr, &ad))
usr/src/tools/smatch/src/linearize.c
2109
struct expression *expr;
usr/src/tools/smatch/src/linearize.c
2115
expr = stmt->asm_string;
usr/src/tools/smatch/src/linearize.c
2116
if (!expr || expr->type != EXPR_STRING) {
usr/src/tools/smatch/src/linearize.c
2120
insn->string = expr->string->data;
usr/src/tools/smatch/src/linearize.c
2126
FOR_EACH_PTR(stmt->asm_inputs, expr) {
usr/src/tools/smatch/src/linearize.c
2127
constraint = expr->constraint ? expr->constraint->string->data : "";
usr/src/tools/smatch/src/linearize.c
2128
add_asm_input(ep, insn, expr->expr, constraint, expr->name);
usr/src/tools/smatch/src/linearize.c
2129
} END_FOR_EACH_PTR(expr);
usr/src/tools/smatch/src/linearize.c
2134
FOR_EACH_PTR(stmt->asm_outputs, expr) {
usr/src/tools/smatch/src/linearize.c
2135
constraint = expr->constraint ? expr->constraint->string->data : "";
usr/src/tools/smatch/src/linearize.c
2136
add_asm_output(ep, insn, expr->expr, constraint, expr->name);
usr/src/tools/smatch/src/linearize.c
2137
} END_FOR_EACH_PTR(expr);
usr/src/tools/smatch/src/linearize.c
2182
struct expression *expr = stmt->expression;
usr/src/tools/smatch/src/linearize.c
2186
pseudo_t src = linearize_expression(ep, expr);
usr/src/tools/smatch/src/linearize.c
2201
struct expression *expr = stmt->switch_expression;
usr/src/tools/smatch/src/linearize.c
2205
if (!expr || !expr->ctype)
usr/src/tools/smatch/src/linearize.c
2207
pseudo = linearize_expression(ep, expr);
usr/src/tools/smatch/src/linearize.c
2214
switch_ins = alloc_typed_instruction(OP_SWITCH, expr->ctype);
usr/src/tools/smatch/src/linearize.c
2363
struct expression *expr;
usr/src/tools/smatch/src/linearize.c
2377
expr = stmt->goto_expression;
usr/src/tools/smatch/src/linearize.c
2378
if (!expr)
usr/src/tools/smatch/src/linearize.c
2382
if (expr->type == EXPR_LABEL) {
usr/src/tools/smatch/src/linearize.c
2383
add_goto(ep, get_bound_block(ep, expr->label_symbol));
usr/src/tools/smatch/src/linearize.c
2387
pseudo = linearize_expression(ep, expr);
usr/src/tools/smatch/src/linearize.c
27
static pseudo_t linearize_expression(struct entrypoint *ep, struct expression *expr);
usr/src/tools/smatch/src/linearize.c
347
struct expression *expr = insn->val;
usr/src/tools/smatch/src/linearize.c
350
if (!expr) {
usr/src/tools/smatch/src/linearize.c
355
switch (expr->type) {
usr/src/tools/smatch/src/linearize.c
357
buf += sprintf(buf, "%lld", expr->value);
usr/src/tools/smatch/src/linearize.c
360
buf += sprintf(buf, "%Le", expr->fvalue);
usr/src/tools/smatch/src/linearize.c
363
buf += sprintf(buf, "%.40s", show_string(expr->string));
usr/src/tools/smatch/src/linearize.c
366
buf += sprintf(buf, "%s", show_ident(expr->symbol->ident));
usr/src/tools/smatch/src/linearize.c
369
buf += sprintf(buf, "%s", show_label(expr->symbol->bb_target));
usr/src/tools/smatch/src/linearize.c
372
buf += sprintf(buf, "SETVAL EXPR TYPE %d", expr->type);
usr/src/tools/smatch/src/linearize.c
954
struct expression *expr,
usr/src/tools/smatch/src/linearize.c
957
struct symbol *ctype = expr->ctype;
usr/src/tools/smatch/src/linearize.c
962
if (expr->type == EXPR_PREOP && expr->op == '*')
usr/src/tools/smatch/src/linearize.c
963
return linearize_simple_address(ep, expr->unop, ad);
usr/src/tools/smatch/src/linearize.c
965
warning(expr->pos, "generating address of non-lvalue (%d)", expr->type);
usr/src/tools/smatch/src/parse.c
1079
struct expression *expr = NULL;
usr/src/tools/smatch/src/parse.c
1081
token = parens_expression(token, &expr, "in attribute");
usr/src/tools/smatch/src/parse.c
1095
struct expression *expr = NULL;
usr/src/tools/smatch/src/parse.c
1098
token = parens_expression(token, &expr, "in attribute");
usr/src/tools/smatch/src/parse.c
1099
if (expr)
usr/src/tools/smatch/src/parse.c
1100
alignment = const_expression_value(expr);
usr/src/tools/smatch/src/parse.c
1148
struct expression *expr = NULL;
usr/src/tools/smatch/src/parse.c
1155
next = primary_expression(token, &expr);
usr/src/tools/smatch/src/parse.c
1156
if (expr->type != EXPR_VALUE)
usr/src/tools/smatch/src/parse.c
1158
as = numerical_address_space(expr->value);
usr/src/tools/smatch/src/parse.c
1304
struct expression *expr = NULL;
usr/src/tools/smatch/src/parse.c
1310
token = parens_expression(token, &expr, "in attribute");
usr/src/tools/smatch/src/parse.c
1466
struct expression *expr = NULL;
usr/src/tools/smatch/src/parse.c
1467
token = parens_expression(token, &expr, "after _Alignas");
usr/src/tools/smatch/src/parse.c
1468
if (!expr)
usr/src/tools/smatch/src/parse.c
1470
alignment = const_expression_value(expr);
usr/src/tools/smatch/src/parse.c
1690
struct expression *expr = NULL;
usr/src/tools/smatch/src/parse.c
1697
token = parse_expression(token, &expr);
usr/src/tools/smatch/src/parse.c
1698
sym->array_size = expr;
usr/src/tools/smatch/src/parse.c
1918
struct expression *expr;
usr/src/tools/smatch/src/parse.c
1926
return conditional_expression(token->next, &expr);
usr/src/tools/smatch/src/parse.c
1930
token = conditional_expression(token->next, &expr);
usr/src/tools/smatch/src/parse.c
1931
width = const_expression_value(expr);
usr/src/tools/smatch/src/parse.c
2094
token = parens_expression(token, &op->expr, "in asm parameter");
usr/src/tools/smatch/src/parse.c
2103
struct expression *expr;
usr/src/tools/smatch/src/parse.c
2106
token = primary_expression(token->next, &expr);
usr/src/tools/smatch/src/parse.c
2107
if (expr)
usr/src/tools/smatch/src/parse.c
2108
add_expression(clobbers, expr);
usr/src/tools/smatch/src/parse.c
2159
struct expression *expr;
usr/src/tools/smatch/src/parse.c
2161
token = parse_expression(token->next, &expr);
usr/src/tools/smatch/src/parse.c
2194
static struct statement *make_statement(struct expression *expr)
usr/src/tools/smatch/src/parse.c
2198
if (!expr)
usr/src/tools/smatch/src/parse.c
2200
stmt = alloc_statement(expr->pos, STMT_EXPRESSION);
usr/src/tools/smatch/src/parse.c
2201
stmt->expression = expr;
usr/src/tools/smatch/src/parse.c
2377
struct expression *expr;
usr/src/tools/smatch/src/parse.c
2381
token = parens_expression(token->next, &expr, "after 'while'");
usr/src/tools/smatch/src/parse.c
2384
stmt->iterator_pre_condition = expr;
usr/src/tools/smatch/src/parse.c
2394
struct expression *expr;
usr/src/tools/smatch/src/parse.c
2403
token = parens_expression(token, &expr, "after 'do-while'");
usr/src/tools/smatch/src/parse.c
2405
stmt->iterator_post_condition = expr;
usr/src/tools/smatch/src/parse.c
2660
struct expression *expr = alloc_expression(token->pos, EXPR_IDENTIFIER);
usr/src/tools/smatch/src/parse.c
2661
expr->expr_ident = token->ident;
usr/src/tools/smatch/src/parse.c
2662
return expr;
usr/src/tools/smatch/src/parse.c
2668
struct expression *expr = alloc_expression(from->pos, EXPR_INDEX);
usr/src/tools/smatch/src/parse.c
2677
expr->idx_from = idx_from;
usr/src/tools/smatch/src/parse.c
2678
expr->idx_to = idx_to;
usr/src/tools/smatch/src/parse.c
2679
return expr;
usr/src/tools/smatch/src/parse.c
2692
struct expression *expr = identifier_expression(token);
usr/src/tools/smatch/src/parse.c
2695
token = initializer(&expr->ident_expression, next->next);
usr/src/tools/smatch/src/parse.c
2696
if (expr->ident_expression)
usr/src/tools/smatch/src/parse.c
2697
*ep = expr;
usr/src/tools/smatch/src/parse.c
2703
struct expression *expr = identifier_expression(next);
usr/src/tools/smatch/src/parse.c
2704
*tail = expr;
usr/src/tools/smatch/src/parse.c
2705
tail = &expr->ident_expression;
usr/src/tools/smatch/src/parse.c
2709
struct expression *from = NULL, *to = NULL, *expr;
usr/src/tools/smatch/src/parse.c
2717
expr = index_expression(from, to);
usr/src/tools/smatch/src/parse.c
2718
*tail = expr;
usr/src/tools/smatch/src/parse.c
2719
tail = &expr->idx_expression;
usr/src/tools/smatch/src/parse.c
2744
struct expression *expr;
usr/src/tools/smatch/src/parse.c
2747
token = single_initializer(&expr, token);
usr/src/tools/smatch/src/parse.c
2748
if (!expr)
usr/src/tools/smatch/src/parse.c
2750
add_expression(list, expr);
usr/src/tools/smatch/src/parse.c
2761
struct expression *expr = alloc_expression(token->pos, EXPR_INITIALIZER);
usr/src/tools/smatch/src/parse.c
2762
*tree = expr;
usr/src/tools/smatch/src/parse.c
2763
token = initializer_list(&expr->expr_list, token->next);
usr/src/tools/smatch/src/parse.c
896
struct expression *expr = sym->initializer;
usr/src/tools/smatch/src/parse.c
899
if (expr->type != EXPR_VALUE)
usr/src/tools/smatch/src/parse.c
901
ctype = expr->ctype;
usr/src/tools/smatch/src/parse.c
902
val = get_expression_value(expr);
usr/src/tools/smatch/src/parse.c
904
expr->ctype = &int_ctype;
usr/src/tools/smatch/src/parse.c
908
expr->ctype = base_type;
usr/src/tools/smatch/src/parse.c
911
cast_value(expr, base_type, expr, ctype);
usr/src/tools/smatch/src/parse.c
912
expr->ctype = base_type;
usr/src/tools/smatch/src/parse.c
926
struct expression *expr = NULL;
usr/src/tools/smatch/src/parse.c
931
next = constant_expression(next->next, &expr);
usr/src/tools/smatch/src/parse.c
932
lastval = get_expression_value(expr);
usr/src/tools/smatch/src/parse.c
934
if (expr && expr->ctype)
usr/src/tools/smatch/src/parse.c
935
ctype = expr->ctype;
usr/src/tools/smatch/src/parse.c
944
if (!expr) {
usr/src/tools/smatch/src/parse.c
945
expr = alloc_expression(token->pos, EXPR_VALUE);
usr/src/tools/smatch/src/parse.c
946
expr->value = lastval;
usr/src/tools/smatch/src/parse.c
947
expr->ctype = ctype;
usr/src/tools/smatch/src/parse.c
953
sym->initializer = expr;
usr/src/tools/smatch/src/parse.c
985
warning(expr->pos, "mixed bitwiseness");
usr/src/tools/smatch/src/parse.c
988
sparse_error(expr->pos, "incompatible restricted type");
usr/src/tools/smatch/src/parse.c
989
info(expr->pos, " expected: %s", show_typename(base_type));
usr/src/tools/smatch/src/parse.c
990
info(expr->pos, " got: %s", show_typename(ctype));
usr/src/tools/smatch/src/parse.h
138
extern int inline_function(struct expression *expr, struct symbol *sym);
usr/src/tools/smatch/src/pre-process.c
1724
struct expression *expr;
usr/src/tools/smatch/src/pre-process.c
1813
p = constant_expression(*where, &expr);
usr/src/tools/smatch/src/pre-process.c
1816
value = get_expression_value(expr);
usr/src/tools/smatch/src/show-parse.c
1001
static int show_value(struct expression *expr)
usr/src/tools/smatch/src/show-parse.c
1004
unsigned long long value = expr->value;
usr/src/tools/smatch/src/show-parse.c
1006
printf("\tmovi.%d\t\tv%d,$%llu\n", expr->ctype->bit_size, new, value);
usr/src/tools/smatch/src/show-parse.c
1010
static int show_fvalue(struct expression *expr)
usr/src/tools/smatch/src/show-parse.c
1013
long double value = expr->fvalue;
usr/src/tools/smatch/src/show-parse.c
1015
printf("\tmovf.%d\t\tv%d,$%Le\n", expr->ctype->bit_size, new, value);
usr/src/tools/smatch/src/show-parse.c
1019
static int show_string_expr(struct expression *expr)
usr/src/tools/smatch/src/show-parse.c
1023
printf("\tmovi.%d\t\tv%d,&%s\n", bits_in_pointer, new, show_string(expr->string));
usr/src/tools/smatch/src/show-parse.c
1027
static int show_label_expr(struct expression *expr)
usr/src/tools/smatch/src/show-parse.c
1030
printf("\tmovi.%d\t\tv%d,.L%p\n",bits_in_pointer, new, expr->label_symbol);
usr/src/tools/smatch/src/show-parse.c
1034
static int show_conditional_expr(struct expression *expr)
usr/src/tools/smatch/src/show-parse.c
1036
int cond = show_expression(expr->conditional);
usr/src/tools/smatch/src/show-parse.c
1037
int valt = show_expression(expr->cond_true);
usr/src/tools/smatch/src/show-parse.c
1038
int valf = show_expression(expr->cond_false);
usr/src/tools/smatch/src/show-parse.c
1041
printf("[v%d]\tcmov.%d\t\tv%d,v%d,v%d\n", cond, expr->ctype->bit_size, new, valt, valf);
usr/src/tools/smatch/src/show-parse.c
1045
static int show_statement_expr(struct expression *expr)
usr/src/tools/smatch/src/show-parse.c
1047
return show_statement(expr->statement);
usr/src/tools/smatch/src/show-parse.c
1050
static int show_position_expr(struct expression *expr, struct symbol *base)
usr/src/tools/smatch/src/show-parse.c
1052
int new = show_expression(expr->init_expr);
usr/src/tools/smatch/src/show-parse.c
1053
struct symbol *ctype = expr->init_expr->ctype;
usr/src/tools/smatch/src/show-parse.c
1059
expr->init_offset, bit_offset,
usr/src/tools/smatch/src/show-parse.c
1064
static int show_initializer_expr(struct expression *expr, struct symbol *ctype)
usr/src/tools/smatch/src/show-parse.c
1068
FOR_EACH_PTR(expr->expr_list, entry) {
usr/src/tools/smatch/src/show-parse.c
1102
struct expression *expr = sym->initializer;
usr/src/tools/smatch/src/show-parse.c
1104
if (expr)
usr/src/tools/smatch/src/show-parse.c
1105
show_expression(expr);
usr/src/tools/smatch/src/show-parse.c
1113
int show_expression(struct expression *expr)
usr/src/tools/smatch/src/show-parse.c
1115
if (!expr)
usr/src/tools/smatch/src/show-parse.c
1118
if (!expr->ctype) {
usr/src/tools/smatch/src/show-parse.c
1119
struct position *pos = &expr->pos;
usr/src/tools/smatch/src/show-parse.c
1126
switch (expr->type) {
usr/src/tools/smatch/src/show-parse.c
1128
return show_call_expression(expr);
usr/src/tools/smatch/src/show-parse.c
1131
return show_assignment(expr);
usr/src/tools/smatch/src/show-parse.c
1134
return show_comma(expr);
usr/src/tools/smatch/src/show-parse.c
1138
return show_binop(expr);
usr/src/tools/smatch/src/show-parse.c
1140
return show_preop(expr);
usr/src/tools/smatch/src/show-parse.c
1142
return show_postop(expr);
usr/src/tools/smatch/src/show-parse.c
1144
return show_symbol_expr(expr->symbol);
usr/src/tools/smatch/src/show-parse.c
1150
warning(expr->pos, "invalid expression after evaluation");
usr/src/tools/smatch/src/show-parse.c
1155
return show_cast_expr(expr);
usr/src/tools/smatch/src/show-parse.c
1157
return show_value(expr);
usr/src/tools/smatch/src/show-parse.c
1159
return show_fvalue(expr);
usr/src/tools/smatch/src/show-parse.c
1161
return show_string_expr(expr);
usr/src/tools/smatch/src/show-parse.c
1163
return show_initializer_expr(expr, expr->ctype);
usr/src/tools/smatch/src/show-parse.c
1166
return show_conditional_expr(expr);
usr/src/tools/smatch/src/show-parse.c
1168
return show_statement_expr(expr);
usr/src/tools/smatch/src/show-parse.c
1170
return show_label_expr(expr);
usr/src/tools/smatch/src/show-parse.c
1172
return show_slice(expr);
usr/src/tools/smatch/src/show-parse.c
1177
warning(expr->pos, "unable to show plain initializer position expression");
usr/src/tools/smatch/src/show-parse.c
1180
warning(expr->pos, "unable to show identifier expression");
usr/src/tools/smatch/src/show-parse.c
1183
warning(expr->pos, "unable to show index expression");
usr/src/tools/smatch/src/show-parse.c
1186
warning(expr->pos, "unable to show type expression");
usr/src/tools/smatch/src/show-parse.c
1189
warning(expr->pos, "unable to show asm operand expression");
usr/src/tools/smatch/src/show-parse.c
45
static int show_string_expr(struct expression *expr);
usr/src/tools/smatch/src/show-parse.c
539
struct expression *expr = case_stmt->case_expression;
usr/src/tools/smatch/src/show-parse.c
542
if (!expr) {
usr/src/tools/smatch/src/show-parse.c
545
if (expr->type == EXPR_VALUE) {
usr/src/tools/smatch/src/show-parse.c
546
printf(" case %lld", expr->value);
usr/src/tools/smatch/src/show-parse.c
733
static int show_call_expression(struct expression *expr)
usr/src/tools/smatch/src/show-parse.c
740
if (!expr->ctype) {
usr/src/tools/smatch/src/show-parse.c
741
warning(expr->pos, "\tcall with no type!");
usr/src/tools/smatch/src/show-parse.c
746
FOR_EACH_PTR_REVERSE(expr->args, arg) {
usr/src/tools/smatch/src/show-parse.c
753
fn = expr->fn;
usr/src/tools/smatch/src/show-parse.c
774
printf("\tmov.%d\t\tv%d,retval\n", expr->ctype->bit_size, retval);
usr/src/tools/smatch/src/show-parse.c
778
static int show_comma(struct expression *expr)
usr/src/tools/smatch/src/show-parse.c
780
show_expression(expr->left);
usr/src/tools/smatch/src/show-parse.c
781
return show_expression(expr->right);
usr/src/tools/smatch/src/show-parse.c
784
static int show_binop(struct expression *expr)
usr/src/tools/smatch/src/show-parse.c
786
int left = show_expression(expr->left);
usr/src/tools/smatch/src/show-parse.c
787
int right = show_expression(expr->right);
usr/src/tools/smatch/src/show-parse.c
796
unsigned int op = expr->op;
usr/src/tools/smatch/src/show-parse.c
802
expr->ctype->bit_size,
usr/src/tools/smatch/src/show-parse.c
807
static int show_slice(struct expression *expr)
usr/src/tools/smatch/src/show-parse.c
809
int target = show_expression(expr->base);
usr/src/tools/smatch/src/show-parse.c
811
printf("\tslice.%d\t\tv%d,v%d,%d\n", expr->r_nrbits, target, new, expr->r_bitpos);
usr/src/tools/smatch/src/show-parse.c
815
static int show_regular_preop(struct expression *expr)
usr/src/tools/smatch/src/show-parse.c
817
int target = show_expression(expr->unop);
usr/src/tools/smatch/src/show-parse.c
823
unsigned int op = expr->op;
usr/src/tools/smatch/src/show-parse.c
829
printf("\t%s.%d\t\tv%d,v%d\n", opname, expr->ctype->bit_size, new, target);
usr/src/tools/smatch/src/show-parse.c
837
static int show_address_gen(struct expression *expr)
usr/src/tools/smatch/src/show-parse.c
839
return show_expression(expr->unop);
usr/src/tools/smatch/src/show-parse.c
842
static int show_load_gen(int bits, struct expression *expr, int addr)
usr/src/tools/smatch/src/show-parse.c
850
static void show_store_gen(int bits, int value, struct expression *expr, int addr)
usr/src/tools/smatch/src/show-parse.c
856
static int show_assignment(struct expression *expr)
usr/src/tools/smatch/src/show-parse.c
858
struct expression *target = expr->left;
usr/src/tools/smatch/src/show-parse.c
861
if (!expr->ctype)
usr/src/tools/smatch/src/show-parse.c
864
bits = expr->ctype->bit_size;
usr/src/tools/smatch/src/show-parse.c
865
val = show_expression(expr->right);
usr/src/tools/smatch/src/show-parse.c
873
struct expression *expr = stmt->ret_value;
usr/src/tools/smatch/src/show-parse.c
876
if (expr && expr->ctype) {
usr/src/tools/smatch/src/show-parse.c
877
int val = show_expression(expr);
usr/src/tools/smatch/src/show-parse.c
878
int bits = expr->ctype->bit_size;
usr/src/tools/smatch/src/show-parse.c
886
static int show_initialization(struct symbol *sym, struct expression *expr)
usr/src/tools/smatch/src/show-parse.c
890
if (!expr->ctype)
usr/src/tools/smatch/src/show-parse.c
893
bits = expr->ctype->bit_size;
usr/src/tools/smatch/src/show-parse.c
894
val = show_expression(expr);
usr/src/tools/smatch/src/show-parse.c
902
static int show_access(struct expression *expr)
usr/src/tools/smatch/src/show-parse.c
904
int addr = show_address_gen(expr);
usr/src/tools/smatch/src/show-parse.c
905
return show_load_gen(expr->ctype->bit_size, expr, addr);
usr/src/tools/smatch/src/show-parse.c
908
static int show_inc_dec(struct expression *expr, int postop)
usr/src/tools/smatch/src/show-parse.c
910
int addr = show_address_gen(expr->unop);
usr/src/tools/smatch/src/show-parse.c
912
const char *opname = expr->op == SPECIAL_INCREMENT ? "add" : "sub";
usr/src/tools/smatch/src/show-parse.c
913
int bits = expr->ctype->bit_size;
usr/src/tools/smatch/src/show-parse.c
915
retval = show_load_gen(bits, expr->unop, addr);
usr/src/tools/smatch/src/show-parse.c
920
show_store_gen(bits, new, expr->unop, addr);
usr/src/tools/smatch/src/show-parse.c
924
static int show_preop(struct expression *expr)
usr/src/tools/smatch/src/show-parse.c
931
if (expr->op == '*')
usr/src/tools/smatch/src/show-parse.c
932
return show_access(expr);
usr/src/tools/smatch/src/show-parse.c
933
if (expr->op == SPECIAL_INCREMENT || expr->op == SPECIAL_DECREMENT)
usr/src/tools/smatch/src/show-parse.c
934
return show_inc_dec(expr, 0);
usr/src/tools/smatch/src/show-parse.c
935
return show_regular_preop(expr);
usr/src/tools/smatch/src/show-parse.c
938
static int show_postop(struct expression *expr)
usr/src/tools/smatch/src/show-parse.c
940
return show_inc_dec(expr, 1);
usr/src/tools/smatch/src/show-parse.c
964
struct expression *expr = sym->initializer;
usr/src/tools/smatch/src/show-parse.c
966
if (expr) {
usr/src/tools/smatch/src/show-parse.c
969
bits = expr->ctype->bit_size;
usr/src/tools/smatch/src/show-parse.c
970
val = show_expression(expr);
usr/src/tools/smatch/src/show-parse.c
977
static int show_cast_expr(struct expression *expr)
usr/src/tools/smatch/src/show-parse.c
980
int op = show_expression(expr->cast_expression);
usr/src/tools/smatch/src/show-parse.c
984
old_type = expr->cast_expression->ctype;
usr/src/tools/smatch/src/show-parse.c
985
new_type = expr->cast_type;
usr/src/tools/smatch/src/smatch.h
1021
struct smatch_state *get_mtag_return(struct expression *expr, struct smatch_state *state);
usr/src/tools/smatch/src/smatch.h
1022
struct range_list *swap_mtag_seed(struct expression *expr, struct range_list *rl);
usr/src/tools/smatch/src/smatch.h
1060
int get_array_size(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1061
int get_array_size_bytes(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1062
int get_array_size_bytes_min(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1063
int get_array_size_bytes_max(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1064
struct range_list *get_array_size_bytes_rl(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1065
int get_real_array_size(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1068
int get_implied_strlen(struct expression *expr, struct range_list **rl);
usr/src/tools/smatch/src/smatch.h
1069
int get_size_from_strlen(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1072
int is_capped(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1076
int is_user_macro(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1077
int is_capped_user_data(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1078
int implied_user_data(struct expression *expr, struct range_list **rl);
usr/src/tools/smatch/src/smatch.h
1080
int get_user_rl(struct expression *expr, struct range_list **rl);
usr/src/tools/smatch/src/smatch.h
1081
int is_user_rl(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1083
bool user_rl_capped(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1084
struct range_list *var_user_rl(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1091
struct expression *get_assigned_expr(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1095
char *map_call_to_param_name_sym(struct expression *expr, struct symbol **sym);
usr/src/tools/smatch/src/smatch.h
1127
struct state_list *get_all_comparisons(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1128
struct state_list *get_all_possible_equal_comparisons(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1130
void __add_comparison_info(struct expression *expr, struct expression *call, const char *range);
usr/src/tools/smatch/src/smatch.h
1133
char *expr_equal_to_param(struct expression *expr, int ignore);
usr/src/tools/smatch/src/smatch.h
1134
char *expr_lte_to_param(struct expression *expr, int ignore);
usr/src/tools/smatch/src/smatch.h
1135
char *expr_param_comparison(struct expression *expr, int ignore);
usr/src/tools/smatch/src/smatch.h
1139
int param_compare_limit_is_impossible(struct expression *expr, int left_param, char *left_key, char *value);
usr/src/tools/smatch/src/smatch.h
1144
int impossibly_high_comparison(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1149
sval_t sval_blank(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1152
sval_t sval_from_val(struct expression *expr, long long val);
usr/src/tools/smatch/src/smatch.h
1153
sval_t sval_from_fval(struct expression *expr, long double fval);
usr/src/tools/smatch/src/smatch.h
1198
int has_symbol(struct expression *expr, struct symbol *sym);
usr/src/tools/smatch/src/smatch.h
1199
int has_variable(struct expression *expr, struct expression *var);
usr/src/tools/smatch/src/smatch.h
1200
int has_inc_dec(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1203
struct smatch_state *get_stored_condition(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1204
struct expression_list *get_conditions(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1205
struct sm_state *stored_condition_implication_hook(struct expression *expr,
usr/src/tools/smatch/src/smatch.h
1209
struct sm_state *parsed_condition_implication_hook(struct expression *expr,
usr/src/tools/smatch/src/smatch.h
1213
struct sm_state *comparison_implication_hook(struct expression *expr,
usr/src/tools/smatch/src/smatch.h
1222
int param_was_set(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1224
void print_limited_param_set(int return_id, char *return_ranges, struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1237
int buf_comparison_index_ok(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1240
void mark_untracked(struct expression *expr, int param, char *key, char *value);
usr/src/tools/smatch/src/smatch.h
1243
void mark_all_params_untracked(int return_id, char *return_ranges, struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1246
struct state_list *get_strings(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1253
int get_address_rl(struct expression *expr, struct range_list **rl);
usr/src/tools/smatch/src/smatch.h
1255
int get_member_offset_from_deref(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1273
char *get_constraint_str(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1274
struct constraint_list *get_constraints(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1279
int get_param_from_container_of(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1280
int get_offset_from_container_of(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1281
char *get_container_name(struct expression *container, struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1285
int get_string_mtag(struct expression *expr, mtag_t *tag);
usr/src/tools/smatch/src/smatch.h
1287
int create_mtag_alias(mtag_t tag, struct expression *expr, mtag_t *new);
usr/src/tools/smatch/src/smatch.h
1288
int expr_to_mtag_offset(struct expression *expr, mtag_t *tag, int *offset);
usr/src/tools/smatch/src/smatch.h
1289
void update_mtag_data(struct expression *expr, struct smatch_state *state);
usr/src/tools/smatch/src/smatch.h
1290
int get_mtag_sval(struct expression *expr, sval_t *sval);
usr/src/tools/smatch/src/smatch.h
1297
struct bit_info *get_bit_info(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1305
bool is_nospec(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1310
bool is_nul_terminated(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
1315
bool is_fresh_alloc(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
173
typedef void (func_hook)(const char *fn, struct expression *expr, void *data);
usr/src/tools/smatch/src/smatch.h
197
int get_implied_return(struct expression *expr, struct range_list **rl);
usr/src/tools/smatch/src/smatch.h
209
struct smatch_state *get_modification_state(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
355
struct smatch_state *get_state_expr(int owner, struct expression *expr);
usr/src/tools/smatch/src/smatch.h
358
struct state_list *get_possible_states_expr(int owner, struct expression *expr);
usr/src/tools/smatch/src/smatch.h
361
struct sm_state *set_state_expr(int owner, struct expression *expr,
usr/src/tools/smatch/src/smatch.h
364
void delete_state_expr(int owner, struct expression *expr);
usr/src/tools/smatch/src/smatch.h
369
void set_true_false_states_expr(int owner, struct expression *expr,
usr/src/tools/smatch/src/smatch.h
389
struct smatch_state *alloc_state_expr(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
392
struct expression *get_array_expr(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
394
char *expr_to_var(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
395
struct symbol *expr_to_sym(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
396
char *expr_to_str(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
397
char *expr_to_str_sym(struct expression *expr,
usr/src/tools/smatch/src/smatch.h
399
char *expr_to_var_sym(struct expression *expr,
usr/src/tools/smatch/src/smatch.h
401
char *expr_to_known_chunk_sym(struct expression *expr, struct symbol **sym);
usr/src/tools/smatch/src/smatch.h
402
char *expr_to_chunk_sym_vsl(struct expression *expr, struct symbol **sym, struct var_sym_list **vsl);
usr/src/tools/smatch/src/smatch.h
403
int get_complication_score(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
405
int sym_name_is(const char *name, struct expression *expr);
usr/src/tools/smatch/src/smatch.h
406
int get_const_value(struct expression *expr, sval_t *sval);
usr/src/tools/smatch/src/smatch.h
407
int get_value(struct expression *expr, sval_t *val);
usr/src/tools/smatch/src/smatch.h
408
int get_implied_value(struct expression *expr, sval_t *val);
usr/src/tools/smatch/src/smatch.h
409
int get_implied_value_fast(struct expression *expr, sval_t *sval);
usr/src/tools/smatch/src/smatch.h
410
int get_implied_min(struct expression *expr, sval_t *sval);
usr/src/tools/smatch/src/smatch.h
411
int get_implied_max(struct expression *expr, sval_t *val);
usr/src/tools/smatch/src/smatch.h
412
int get_hard_max(struct expression *expr, sval_t *sval);
usr/src/tools/smatch/src/smatch.h
413
int get_fuzzy_min(struct expression *expr, sval_t *min);
usr/src/tools/smatch/src/smatch.h
414
int get_fuzzy_max(struct expression *expr, sval_t *max);
usr/src/tools/smatch/src/smatch.h
415
int get_absolute_min(struct expression *expr, sval_t *sval);
usr/src/tools/smatch/src/smatch.h
416
int get_absolute_max(struct expression *expr, sval_t *sval);
usr/src/tools/smatch/src/smatch.h
417
int parse_call_math(struct expression *expr, char *math, sval_t *val);
usr/src/tools/smatch/src/smatch.h
419
const char *get_allocation_math(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
420
char *get_value_in_terms_of_parameter_math(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
422
int expr_is_zero(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
423
int known_condition_true(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
424
int known_condition_false(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
425
int implied_condition_true(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
426
int implied_condition_false(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
427
int can_integer_overflow(struct symbol *type, struct expression *expr);
usr/src/tools/smatch/src/smatch.h
432
int is_array(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
433
struct expression *get_array_base(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
434
struct expression *get_array_offset(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
436
struct statement *get_expression_statement(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
437
struct expression *strip_parens(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
438
struct expression *strip_expr(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
439
struct expression *strip_expr_set_parent(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
441
int is_error_return(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
442
int getting_address(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
443
int get_struct_and_member(struct expression *expr, const char **type, const char **member);
usr/src/tools/smatch/src/smatch.h
444
char *get_member_name(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
445
char *get_fnptr_name(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
450
struct expression *get_last_expr_from_expression_stmt(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
458
int get_param_num(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
463
int parent_is_gone(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
474
struct symbol *get_pointer_type(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
475
struct symbol *get_type(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
476
struct symbol *get_final_type(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
479
int expr_unsigned(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
480
int expr_signed(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
482
int is_pointer(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
486
int nr_bits(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
487
int is_void_pointer(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
488
int is_char_pointer(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
489
int is_string(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
491
int is_static(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
492
bool is_local_variable(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
499
struct symbol *get_member_type_from_key(struct expression *expr, const char *key);
usr/src/tools/smatch/src/smatch.h
501
int is_struct(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
507
void add_ignore_expr(int owner, struct expression *expr);
usr/src/tools/smatch/src/smatch.h
508
int is_ignored_expr(int owner, struct expression *expr);
usr/src/tools/smatch/src/smatch.h
512
struct var_sym_list *expr_to_vsl(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
514
void add_var_sym_expr(struct var_sym_list **list, struct expression *expr);
usr/src/tools/smatch/src/smatch.h
528
void add_tracker_expr(struct tracker_list **list, int owner, struct expression *expr);
usr/src/tools/smatch/src/smatch.h
551
void __split_expr(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
564
int is_assigned_call(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
565
int inlinable(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
580
void __fake_struct_member_assignments(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
586
void __split_whole_condition(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
587
void __handle_logic(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
588
int is_condition(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
589
int __handle_condition_assigns(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
590
int __handle_select_assigns(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
591
int __handle_expr_statement_assigns(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
595
void param_limit_implications(struct expression *expr, int param, char *key, char *value, struct stree **implied);
usr/src/tools/smatch/src/smatch.h
601
int assume(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
702
int get_absolute_min_helper(struct expression *expr, sval_t *sval);
usr/src/tools/smatch/src/smatch.h
703
int get_absolute_max_helper(struct expression *expr, sval_t *sval);
usr/src/tools/smatch/src/smatch.h
706
int get_db_type_rl(struct expression *expr, struct range_list **rl);
usr/src/tools/smatch/src/smatch.h
708
int get_mtag_rl(struct expression *expr, struct range_list **rl);
usr/src/tools/smatch/src/smatch.h
710
int get_array_rl(struct expression *expr, struct range_list **rl);
usr/src/tools/smatch/src/smatch.h
730
void __match_nullify_path_hook(const char *fn, struct expression *expr,
usr/src/tools/smatch/src/smatch.h
741
struct sm_state *get_sm_state_expr(int owner, struct expression *expr);
usr/src/tools/smatch/src/smatch.h
906
void add_returned_member_callback(int owner, void (*callback)(int return_id, char *return_ranges, struct expression *expr, char *printed_name, struct smatch_state *state));
usr/src/tools/smatch/src/smatch.h
909
struct range_list *db_return_vals(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
911
struct range_list *db_return_vals_no_args(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
912
char *return_state_to_var_sym(struct expression *expr, int param, const char *key, struct symbol **sym);
usr/src/tools/smatch/src/smatch.h
919
const char *get_mtag_name_expr(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
920
char *get_data_info_name(struct expression *expr);
usr/src/tools/smatch/src/smatch.h
921
char *sm_to_arg_name(struct expression *expr, struct sm_state *sm);
usr/src/tools/smatch/src/smatch_about_fn_ptr_arg.c
109
static char *get_data_member(char *fn_member, struct expression *expr, struct symbol **sym)
usr/src/tools/smatch/src/smatch_about_fn_ptr_arg.c
127
fn_str = expr_to_var_sym(expr, &tmp_sym);
usr/src/tools/smatch/src/smatch_about_fn_ptr_arg.c
147
static void match_assign_function(struct expression *expr)
usr/src/tools/smatch/src/smatch_about_fn_ptr_arg.c
155
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_about_fn_ptr_arg.c
165
member_name = get_member_name(expr->left);
usr/src/tools/smatch/src/smatch_about_fn_ptr_arg.c
169
data_member = get_data_member(member_name, expr->left, &sym);
usr/src/tools/smatch/src/smatch_about_fn_ptr_arg.c
73
static void match_assign_param(struct expression *expr)
usr/src/tools/smatch/src/smatch_about_fn_ptr_arg.c
81
name = expr_to_var_sym(expr->left, &sym);
usr/src/tools/smatch/src/smatch_about_fn_ptr_arg.c
91
link_function_arg(next_fn, 0, strip_expr(expr->right));
usr/src/tools/smatch/src/smatch_address.c
116
int get_member_offset_from_deref(struct expression *expr)
usr/src/tools/smatch/src/smatch_address.c
127
if (expr->type != EXPR_DEREF) /* hopefully, this doesn't happen */
usr/src/tools/smatch/src/smatch_address.c
130
if (expr->member_offset >= 0)
usr/src/tools/smatch/src/smatch_address.c
131
return expr->member_offset;
usr/src/tools/smatch/src/smatch_address.c
133
member = expr->member;
usr/src/tools/smatch/src/smatch_address.c
137
type = get_type(expr->deref);
usr/src/tools/smatch/src/smatch_address.c
145
expr->member_offset = offset;
usr/src/tools/smatch/src/smatch_address.c
214
static bool handle_fn_address(struct expression *expr, struct range_list **rl)
usr/src/tools/smatch/src/smatch_address.c
218
if (expr->type == EXPR_PREOP && expr->op == '&')
usr/src/tools/smatch/src/smatch_address.c
219
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_address.c
22
static bool is_non_null_array(struct expression *expr)
usr/src/tools/smatch/src/smatch_address.c
221
if (expr->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_address.c
224
type = get_type(expr);
usr/src/tools/smatch/src/smatch_address.c
232
int get_address_rl(struct expression *expr, struct range_list **rl)
usr/src/tools/smatch/src/smatch_address.c
250
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_address.c
251
if (!expr)
usr/src/tools/smatch/src/smatch_address.c
260
if (handle_fn_address(expr, rl))
usr/src/tools/smatch/src/smatch_address.c
267
if (expr->type == EXPR_PREOP && expr->op == '&') {
usr/src/tools/smatch/src/smatch_address.c
268
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_address.c
272
type = get_type(expr);
usr/src/tools/smatch/src/smatch_address.c
277
if (expr->type == EXPR_SYMBOL) {
usr/src/tools/smatch/src/smatch_address.c
278
*rl = where_allocated_rl(expr->symbol);
usr/src/tools/smatch/src/smatch_address.c
282
if (is_array(expr)) {
usr/src/tools/smatch/src/smatch_address.c
289
array = get_array_base(expr);
usr/src/tools/smatch/src/smatch_address.c
29
type = get_type(expr);
usr/src/tools/smatch/src/smatch_address.c
290
offset_expr = get_array_offset(expr);
usr/src/tools/smatch/src/smatch_address.c
317
if (expr->type == EXPR_DEREF && expr->member) {
usr/src/tools/smatch/src/smatch_address.c
32
if (expr->type == EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_address.c
321
offset = get_member_offset_from_deref(expr);
usr/src/tools/smatch/src/smatch_address.c
322
unop = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_address.c
34
if (implied_not_equal(expr, 0))
usr/src/tools/smatch/src/smatch_address.c
342
if (is_non_null_array(expr)) {
usr/src/tools/smatch/src/smatch_address.c
38
if (expr->type != EXPR_DEREF || !expr->member)
usr/src/tools/smatch/src/smatch_address.c
40
sym = expr_to_sym(expr);
usr/src/tools/smatch/src/smatch_address.c
55
if (strcmp(expr->member->name, tmp->ident->name) == 0) {
usr/src/tools/smatch/src/smatch_annotate.c
29
struct expression *expr;
usr/src/tools/smatch/src/smatch_annotate.c
32
expr = get_argument_from_call_expr(call->args, arg);
usr/src/tools/smatch/src/smatch_annotate.c
33
if (get_implied_rl(expr, &rl) && rl_max(rl).value != 0)
usr/src/tools/smatch/src/smatch_array_values.c
109
int get_array_rl(struct expression *expr, struct range_list **rl)
usr/src/tools/smatch/src/smatch_array_values.c
116
type = get_type(expr);
usr/src/tools/smatch/src/smatch_array_values.c
121
array = get_array_base(expr);
usr/src/tools/smatch/src/smatch_array_values.c
159
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_array_values.c
166
type = get_type(expr->left);
usr/src/tools/smatch/src/smatch_array_values.c
170
left = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_array_values.c
178
if (expr->op != '=') {
usr/src/tools/smatch/src/smatch_array_values.c
179
rl = alloc_whole_rl(get_type(expr->right));
usr/src/tools/smatch/src/smatch_array_values.c
182
get_absolute_rl(expr->right, &rl);
usr/src/tools/smatch/src/smatch_array_values.c
191
static void mark_strings_unknown(const char *fn, struct expression *expr, void *_arg)
usr/src/tools/smatch/src/smatch_array_values.c
198
dest = get_argument_from_call_expr(expr->args, arg);
usr/src/tools/smatch/src/smatch_assigned_expr.c
102
static void record_param_assignment(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_assigned_expr.c
110
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_assigned_expr.c
111
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_assigned_expr.c
112
if (!expr || expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_assigned_expr.c
124
arg = get_argument_from_call_expr(expr->args, param);
usr/src/tools/smatch/src/smatch_assigned_expr.c
125
right = get_argument_from_call_expr(expr->args, right_param);
usr/src/tools/smatch/src/smatch_assigned_expr.c
132
skip_mod = expr;
usr/src/tools/smatch/src/smatch_assigned_expr.c
40
struct expression *get_assigned_expr(struct expression *expr)
usr/src/tools/smatch/src/smatch_assigned_expr.c
44
state = get_state_expr(my_id, expr);
usr/src/tools/smatch/src/smatch_assigned_expr.c
60
static void match_assignment(struct expression *expr)
usr/src/tools/smatch/src/smatch_assigned_expr.c
67
if (expr->op != '=')
usr/src/tools/smatch/src/smatch_assigned_expr.c
69
if (is_fake_call(expr->right))
usr/src/tools/smatch/src/smatch_assigned_expr.c
74
if (!get_implied_rl(expr->right, &rl))
usr/src/tools/smatch/src/smatch_assigned_expr.c
80
if (expr->left == ignored_expr)
usr/src/tools/smatch/src/smatch_assigned_expr.c
84
ignored_expr = expr->left;
usr/src/tools/smatch/src/smatch_assigned_expr.c
86
left_name = expr_to_var_sym(expr->left, &left_sym);
usr/src/tools/smatch/src/smatch_assigned_expr.c
89
set_state(my_id, left_name, left_sym, alloc_state_expr(strip_expr(expr->right)));
usr/src/tools/smatch/src/smatch_assigned_expr.c
91
right_name = expr_to_var_sym(expr->right, &right_sym);
usr/src/tools/smatch/src/smatch_bits.c
114
static bool is_loop_iterator(struct expression *expr)
usr/src/tools/smatch/src/smatch_bits.c
118
pre_stmt = expr_get_parent_stmt(expr);
usr/src/tools/smatch/src/smatch_bits.c
131
static bool handled_by_assign_hook(struct expression *expr)
usr/src/tools/smatch/src/smatch_bits.c
133
if (!expr || expr->type != EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_bits.c
137
if (is_loop_iterator(expr))
usr/src/tools/smatch/src/smatch_bits.c
140
if (expr->op == '=' ||
usr/src/tools/smatch/src/smatch_bits.c
141
expr->op == SPECIAL_OR_ASSIGN ||
usr/src/tools/smatch/src/smatch_bits.c
142
expr->op == SPECIAL_AND_ASSIGN)
usr/src/tools/smatch/src/smatch_bits.c
240
struct bit_info *get_bit_info(struct expression *expr)
usr/src/tools/smatch/src/smatch_bits.c
249
expr = strip_parens(expr);
usr/src/tools/smatch/src/smatch_bits.c
251
if (get_implied_value(expr, &known))
usr/src/tools/smatch/src/smatch_bits.c
254
if (expr->type == EXPR_BINOP) {
usr/src/tools/smatch/src/smatch_bits.c
255
if (expr->op == '&')
usr/src/tools/smatch/src/smatch_bits.c
256
return binfo_AND(get_bit_info(expr->left),
usr/src/tools/smatch/src/smatch_bits.c
257
get_bit_info(expr->right));
usr/src/tools/smatch/src/smatch_bits.c
258
if (expr->op == '|')
usr/src/tools/smatch/src/smatch_bits.c
259
return binfo_OR(get_bit_info(expr->left),
usr/src/tools/smatch/src/smatch_bits.c
260
get_bit_info(expr->right));
usr/src/tools/smatch/src/smatch_bits.c
263
if (get_implied_rl(expr, &rl))
usr/src/tools/smatch/src/smatch_bits.c
271
type = get_type(expr);
usr/src/tools/smatch/src/smatch_bits.c
280
bstate = get_state_expr(my_id, expr);
usr/src/tools/smatch/src/smatch_bits.c
304
static void match_compare(struct expression *expr)
usr/src/tools/smatch/src/smatch_bits.c
308
if (expr->type != EXPR_COMPARE)
usr/src/tools/smatch/src/smatch_bits.c
310
if (expr->op != SPECIAL_EQUAL &&
usr/src/tools/smatch/src/smatch_bits.c
311
expr->op != SPECIAL_NOTEQUAL)
usr/src/tools/smatch/src/smatch_bits.c
314
if (!get_implied_value(expr->right, &val))
usr/src/tools/smatch/src/smatch_bits.c
317
set_true_false_states_expr(my_id, expr->left,
usr/src/tools/smatch/src/smatch_bits.c
318
(expr->op == SPECIAL_EQUAL) ? alloc_bstate(val.uvalue, val.uvalue) : NULL,
usr/src/tools/smatch/src/smatch_bits.c
319
(expr->op == SPECIAL_EQUAL) ? NULL : alloc_bstate(val.uvalue, val.uvalue));
usr/src/tools/smatch/src/smatch_bits.c
322
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_bits.c
327
if (!handled_by_assign_hook(expr))
usr/src/tools/smatch/src/smatch_bits.c
330
binfo = get_bit_info(expr->right);
usr/src/tools/smatch/src/smatch_bits.c
333
if (expr->op == '=') {
usr/src/tools/smatch/src/smatch_bits.c
334
if (is_unknown_binfo(get_type(expr->left), binfo))
usr/src/tools/smatch/src/smatch_bits.c
337
set_state_expr(my_id, expr->left, alloc_bstate(binfo->set, binfo->possible));
usr/src/tools/smatch/src/smatch_bits.c
338
} else if (expr->op == SPECIAL_OR_ASSIGN) {
usr/src/tools/smatch/src/smatch_bits.c
339
start = get_bit_info(expr->left);
usr/src/tools/smatch/src/smatch_bits.c
341
set_state_expr(my_id, expr->left, new);
usr/src/tools/smatch/src/smatch_bits.c
342
} else if (expr->op == SPECIAL_AND_ASSIGN) {
usr/src/tools/smatch/src/smatch_bits.c
343
start = get_bit_info(expr->left);
usr/src/tools/smatch/src/smatch_bits.c
345
set_state_expr(my_id, expr->left, new);
usr/src/tools/smatch/src/smatch_bits.c
349
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/smatch_bits.c
356
if (expr->type != EXPR_BINOP ||
usr/src/tools/smatch/src/smatch_bits.c
357
expr->op != '&')
usr/src/tools/smatch/src/smatch_bits.c
360
if (!get_value(expr->right, &right))
usr/src/tools/smatch/src/smatch_bits.c
363
orig = get_bit_info(expr->left);
usr/src/tools/smatch/src/smatch_bits.c
373
set_true_false_states_expr(my_id, expr->left,
usr/src/tools/smatch/src/smatch_bits.c
378
static void match_call_info(struct expression *expr)
usr/src/tools/smatch/src/smatch_bits.c
387
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/smatch_bits.c
402
sql_insert_caller_info(expr, BIT_INFO, i, "$", buf);
usr/src/tools/smatch/src/smatch_buf_comparison.c
112
static struct smatch_state *alloc_compare_size(int limit_type, struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_comparison.c
119
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_buf_comparison.c
120
name = expr_to_str(expr);
usr/src/tools/smatch/src/smatch_buf_comparison.c
124
state->data = expr;
usr/src/tools/smatch/src/smatch_buf_comparison.c
128
static int bytes_per_element(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_comparison.c
132
type = get_type(expr);
usr/src/tools/smatch/src/smatch_buf_comparison.c
205
static void match_alloc(const char *fn, struct expression *expr, void *_size_arg)
usr/src/tools/smatch/src/smatch_buf_comparison.c
210
pointer = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_buf_comparison.c
211
call = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_buf_comparison.c
216
static void match_calloc(const char *fn, struct expression *expr, void *_start_arg)
usr/src/tools/smatch/src/smatch_buf_comparison.c
224
pointer = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_buf_comparison.c
225
call = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_buf_comparison.c
265
static void array_check(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_comparison.c
273
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_buf_comparison.c
274
if (!is_array(expr))
usr/src/tools/smatch/src/smatch_buf_comparison.c
277
array = get_array_base(expr);
usr/src/tools/smatch/src/smatch_buf_comparison.c
283
offset = get_array_offset(expr);
usr/src/tools/smatch/src/smatch_buf_comparison.c
367
int buf_comparison_index_ok(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_comparison.c
375
array = get_array_base(expr);
usr/src/tools/smatch/src/smatch_buf_comparison.c
379
offset = get_array_offset(expr);
usr/src/tools/smatch/src/smatch_buf_comparison.c
396
static int known_access_ok_numbers(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_comparison.c
403
array = get_array_base(expr);
usr/src/tools/smatch/src/smatch_buf_comparison.c
404
offset = get_array_offset(expr);
usr/src/tools/smatch/src/smatch_buf_comparison.c
416
static void array_check_data_info(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_comparison.c
426
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_buf_comparison.c
427
if (!is_array(expr))
usr/src/tools/smatch/src/smatch_buf_comparison.c
430
if (known_access_ok_numbers(expr))
usr/src/tools/smatch/src/smatch_buf_comparison.c
432
if (buf_comparison_index_ok(expr))
usr/src/tools/smatch/src/smatch_buf_comparison.c
435
array = get_array_base(expr);
usr/src/tools/smatch/src/smatch_buf_comparison.c
436
offset = get_array_offset(expr);
usr/src/tools/smatch/src/smatch_buf_comparison.c
476
static int is_sizeof(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_comparison.c
480
if (expr->type == EXPR_SIZEOF)
usr/src/tools/smatch/src/smatch_buf_comparison.c
482
name = pos_ident(expr->pos);
usr/src/tools/smatch/src/smatch_buf_comparison.c
488
static int match_size_binop(struct expression *size, struct expression *expr, int *limit_type)
usr/src/tools/smatch/src/smatch_buf_comparison.c
494
left = expr->left;
usr/src/tools/smatch/src/smatch_buf_comparison.c
498
if (expr->op == '-' &&
usr/src/tools/smatch/src/smatch_buf_comparison.c
499
get_value(expr->right, &sval) &&
usr/src/tools/smatch/src/smatch_buf_comparison.c
506
if (expr->op == '+' &&
usr/src/tools/smatch/src/smatch_buf_comparison.c
507
get_value(expr->right, &sval) &&
usr/src/tools/smatch/src/smatch_buf_comparison.c
514
if (expr->op == '*' &&
usr/src/tools/smatch/src/smatch_buf_comparison.c
515
is_sizeof(expr->right) &&
usr/src/tools/smatch/src/smatch_buf_comparison.c
521
if (expr->op == '/' &&
usr/src/tools/smatch/src/smatch_buf_comparison.c
522
is_sizeof(expr->right) &&
usr/src/tools/smatch/src/smatch_buf_comparison.c
61
struct expression *expr;
usr/src/tools/smatch/src/smatch_buf_comparison.c
64
expr = sm->state->data;
usr/src/tools/smatch/src/smatch_buf_comparison.c
65
if (expr) {
usr/src/tools/smatch/src/smatch_buf_comparison.c
66
set_state_expr(size_id, expr, &undefined);
usr/src/tools/smatch/src/smatch_buf_comparison.c
690
static void set_used(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_comparison.c
698
if (expr->op != SPECIAL_INCREMENT)
usr/src/tools/smatch/src/smatch_buf_comparison.c
702
if (expr->type == EXPR_POSTOP)
usr/src/tools/smatch/src/smatch_buf_comparison.c
705
parent = expr_get_parent_expr(expr);
usr/src/tools/smatch/src/smatch_buf_comparison.c
714
if (offset != expr)
usr/src/tools/smatch/src/smatch_buf_comparison.c
72
expr = tmp->state->data;
usr/src/tools/smatch/src/smatch_buf_comparison.c
723
static int match_assign_array(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_comparison.c
729
static int match_assign_size(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_comparison.c
73
if (expr)
usr/src/tools/smatch/src/smatch_buf_comparison.c
736
right = expr->right;
usr/src/tools/smatch/src/smatch_buf_comparison.c
74
set_state_expr(size_id, expr, &undefined);
usr/src/tools/smatch/src/smatch_buf_comparison.c
755
tmp = set_state_expr(size_id, array, alloc_compare_size(limit_type, expr->left));
usr/src/tools/smatch/src/smatch_buf_comparison.c
758
set_state_expr(link_id, expr->left, alloc_state_expr(array));
usr/src/tools/smatch/src/smatch_buf_comparison.c
762
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_comparison.c
764
if (expr->op != '=')
usr/src/tools/smatch/src/smatch_buf_comparison.c
767
if (match_assign_array(expr))
usr/src/tools/smatch/src/smatch_buf_comparison.c
769
match_assign_size(expr);
usr/src/tools/smatch/src/smatch_buf_comparison.c
772
static void match_copy(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/smatch_buf_comparison.c
777
src = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/smatch_buf_comparison.c
778
size = get_argument_from_call_expr(expr->args, 2);
usr/src/tools/smatch/src/smatch_buf_size.c
126
static int bytes_per_element(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
130
if (!expr)
usr/src/tools/smatch/src/smatch_buf_size.c
132
if (expr->type == EXPR_STRING)
usr/src/tools/smatch/src/smatch_buf_size.c
134
if (expr->type == EXPR_PREOP && expr->op == '&') {
usr/src/tools/smatch/src/smatch_buf_size.c
135
type = get_type(expr->unop);
usr/src/tools/smatch/src/smatch_buf_size.c
137
expr = expr->unop;
usr/src/tools/smatch/src/smatch_buf_size.c
139
type = get_type(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
150
static int bytes_to_elements(struct expression *expr, int bytes)
usr/src/tools/smatch/src/smatch_buf_size.c
154
bpe = bytes_per_element(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
160
static int elements_to_bytes(struct expression *expr, int elements)
usr/src/tools/smatch/src/smatch_buf_size.c
164
bpe = bytes_per_element(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
168
static int get_initializer_size(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
170
switch (expr->type) {
usr/src/tools/smatch/src/smatch_buf_size.c
172
return expr->string->length;
usr/src/tools/smatch/src/smatch_buf_size.c
177
FOR_EACH_PTR(expr->expr_list, tmp) {
usr/src/tools/smatch/src/smatch_buf_size.c
190
return get_array_size(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
209
static struct range_list *size_from_db_type(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
214
name = get_member_name(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
215
if (!name && is_static(expr)) {
usr/src/tools/smatch/src/smatch_buf_size.c
216
name = expr_to_var(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
239
static struct range_list *size_from_db_symbol(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
243
if (expr->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_buf_size.c
245
sym = expr->symbol;
usr/src/tools/smatch/src/smatch_buf_size.c
258
static struct range_list *size_from_db(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
262
rl = size_from_db_symbol(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
265
return size_from_db_type(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
268
static void db_returns_buf_size(struct expression *expr, int param, char *unused, char *math)
usr/src/tools/smatch/src/smatch_buf_size.c
274
if (expr->type != EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_buf_size.c
276
call = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_buf_size.c
282
set_state_expr(my_size_id, expr->left, alloc_estate_rl(rl));
usr/src/tools/smatch/src/smatch_buf_size.c
300
int get_real_array_size(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
302
if (!expr)
usr/src/tools/smatch/src/smatch_buf_size.c
304
if (expr->type == EXPR_PREOP && expr->op == '&')
usr/src/tools/smatch/src/smatch_buf_size.c
305
expr = expr->unop;
usr/src/tools/smatch/src/smatch_buf_size.c
306
if (expr->type == EXPR_BINOP) /* array elements foo[5] */
usr/src/tools/smatch/src/smatch_buf_size.c
308
return get_real_array_size_from_type(get_type(expr));
usr/src/tools/smatch/src/smatch_buf_size.c
311
static int get_size_from_initializer(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
313
if (expr->type != EXPR_SYMBOL || !expr->symbol || !expr->symbol->initializer)
usr/src/tools/smatch/src/smatch_buf_size.c
315
if (expr->symbol->initializer == expr) /* int a = a; */
usr/src/tools/smatch/src/smatch_buf_size.c
317
return get_initializer_size(expr->symbol->initializer);
usr/src/tools/smatch/src/smatch_buf_size.c
320
static struct range_list *get_stored_size_bytes(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
324
state = get_state_expr(my_size_id, expr);
usr/src/tools/smatch/src/smatch_buf_size.c
330
static int get_bytes_from_address(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
335
if (expr->type != EXPR_PREOP || expr->op != '&')
usr/src/tools/smatch/src/smatch_buf_size.c
337
type = get_type(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
34
static char *get_fn_name(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
351
static struct expression *remove_addr_fluff(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
356
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
359
while (expr && expr->type == EXPR_PREOP && expr->op == '&') {
usr/src/tools/smatch/src/smatch_buf_size.c
36
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_buf_size.c
360
tmp = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_buf_size.c
365
expr = strip_expr(tmp->unop);
usr/src/tools/smatch/src/smatch_buf_size.c
368
if (!expr)
usr/src/tools/smatch/src/smatch_buf_size.c
372
if (expr->type == EXPR_BINOP && expr->op == '+' &&
usr/src/tools/smatch/src/smatch_buf_size.c
373
get_value(expr->right, &sval) && sval.value == 0)
usr/src/tools/smatch/src/smatch_buf_size.c
374
return expr->left;
usr/src/tools/smatch/src/smatch_buf_size.c
376
return expr;
usr/src/tools/smatch/src/smatch_buf_size.c
38
if (expr->fn->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_buf_size.c
40
return expr_to_var(expr->fn);
usr/src/tools/smatch/src/smatch_buf_size.c
424
static int get_stored_size_end_struct_bytes(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
43
static int is_allocation_function(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
430
if (expr->type == EXPR_BINOP) /* array elements foo[5] */
usr/src/tools/smatch/src/smatch_buf_size.c
433
if (expr->type == EXPR_PREOP && expr->op == '&')
usr/src/tools/smatch/src/smatch_buf_size.c
434
expr = strip_parens(expr->unop);
usr/src/tools/smatch/src/smatch_buf_size.c
436
sym = expr_to_sym(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
451
if (!is_last_member_of_struct(base_sym, expr->member))
usr/src/tools/smatch/src/smatch_buf_size.c
460
return estate_to_size(state) - type_bytes(base_sym) + type_bytes(get_type(expr));
usr/src/tools/smatch/src/smatch_buf_size.c
473
struct range_list *get_array_size_bytes_rl(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
479
expr = remove_addr_fluff(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
48
func = get_fn_name(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
480
if (!expr)
usr/src/tools/smatch/src/smatch_buf_size.c
484
if (expr->type == EXPR_STRING)
usr/src/tools/smatch/src/smatch_buf_size.c
485
return alloc_int_rl(expr->string->length);
usr/src/tools/smatch/src/smatch_buf_size.c
487
if (expr->type == EXPR_BINOP && expr->op == '+') {
usr/src/tools/smatch/src/smatch_buf_size.c
492
if (!get_implied_value(expr->right, &offset))
usr/src/tools/smatch/src/smatch_buf_size.c
494
type = get_type(expr->left);
usr/src/tools/smatch/src/smatch_buf_size.c
504
size = get_array_size_bytes(expr->left);
usr/src/tools/smatch/src/smatch_buf_size.c
511
ret = get_stored_size_bytes(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
515
size = get_stored_size_end_struct_bytes(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
520
size = get_real_array_size(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
522
return alloc_int_rl(elements_to_bytes(expr, size));
usr/src/tools/smatch/src/smatch_buf_size.c
525
size = get_size_from_initializer(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
527
return alloc_int_rl(elements_to_bytes(expr, size));
usr/src/tools/smatch/src/smatch_buf_size.c
529
size = get_bytes_from_address(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
533
ret = size_from_db(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
542
int get_array_size_bytes(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
547
rl = get_array_size_bytes_rl(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
555
int get_array_size_bytes_max(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
560
rl = get_array_size_bytes_rl(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
572
int get_array_size_bytes_min(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
577
rl = get_array_size_bytes_rl(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
594
int get_array_size(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
596
if (!expr)
usr/src/tools/smatch/src/smatch_buf_size.c
598
return bytes_to_elements(expr, get_array_size_bytes_max(expr));
usr/src/tools/smatch/src/smatch_buf_size.c
601
static struct expression *strip_ampersands(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
605
if (expr->type != EXPR_PREOP)
usr/src/tools/smatch/src/smatch_buf_size.c
606
return expr;
usr/src/tools/smatch/src/smatch_buf_size.c
607
if (expr->op != '&')
usr/src/tools/smatch/src/smatch_buf_size.c
608
return expr;
usr/src/tools/smatch/src/smatch_buf_size.c
609
type = get_type(expr->unop);
usr/src/tools/smatch/src/smatch_buf_size.c
611
return expr;
usr/src/tools/smatch/src/smatch_buf_size.c
612
return expr->unop;
usr/src/tools/smatch/src/smatch_buf_size.c
635
static void store_alloc(struct expression *expr, struct range_list *rl)
usr/src/tools/smatch/src/smatch_buf_size.c
645
get_state_expr(my_size_id, expr))
usr/src/tools/smatch/src/smatch_buf_size.c
646
set_state_expr(my_size_id, expr, alloc_estate_rl(rl));
usr/src/tools/smatch/src/smatch_buf_size.c
648
type = get_type(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
661
info_record_alloction(expr, rl);
usr/src/tools/smatch/src/smatch_buf_size.c
664
static bool is_array_base(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
668
type = get_type(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
674
static void match_array_assignment(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
682
if (expr->op != '=')
usr/src/tools/smatch/src/smatch_buf_size.c
685
left = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_buf_size.c
686
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_buf_size.c
720
static void match_alloc(const char *fn, struct expression *expr, void *_size_arg)
usr/src/tools/smatch/src/smatch_buf_size.c
727
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_buf_size.c
731
store_alloc(expr->left, rl);
usr/src/tools/smatch/src/smatch_buf_size.c
734
static void match_calloc(const char *fn, struct expression *expr, void *_param)
usr/src/tools/smatch/src/smatch_buf_size.c
741
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_buf_size.c
746
store_alloc(expr->left, rl);
usr/src/tools/smatch/src/smatch_buf_size.c
748
store_alloc(expr->left, size_to_rl(UNKNOWN_SIZE));
usr/src/tools/smatch/src/smatch_buf_size.c
751
static void match_page(const char *fn, struct expression *expr, void *_unused)
usr/src/tools/smatch/src/smatch_buf_size.c
758
store_alloc(expr->left, alloc_rl(page_size, page_size));
usr/src/tools/smatch/src/smatch_buf_size.c
761
static void match_strndup(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/smatch_buf_size.c
767
fn_expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_buf_size.c
771
store_alloc(expr->left, size_to_rl(size.value));
usr/src/tools/smatch/src/smatch_buf_size.c
773
store_alloc(expr->left, size_to_rl(UNKNOWN_SIZE));
usr/src/tools/smatch/src/smatch_buf_size.c
778
static void match_alloc_pages(const char *fn, struct expression *expr, void *_order_arg)
usr/src/tools/smatch/src/smatch_buf_size.c
785
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_buf_size.c
796
store_alloc(expr->left, alloc_rl(sval, sval));
usr/src/tools/smatch/src/smatch_buf_size.c
821
static void match_call(struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
829
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/smatch_buf_size.c
844
sql_insert_caller_info(expr, BUF_SIZE, i, "$", show_rl(rl));
usr/src/tools/smatch/src/smatch_buf_size.c
866
static void print_returned_allocations(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_buf_size.c
873
rl = get_array_size_bytes_rl(expr);
usr/src/tools/smatch/src/smatch_buf_size.c
874
param_math = get_allocation_math(expr);
usr/src/tools/smatch/src/smatch_capped.c
101
if (expr->op == SPECIAL_RIGHTSHIFT)
usr/src/tools/smatch/src/smatch_capped.c
103
if (expr->op == '%' &&
usr/src/tools/smatch/src/smatch_capped.c
104
!get_value(expr->right, &sval) && is_capped(expr->right))
usr/src/tools/smatch/src/smatch_capped.c
106
if (!is_capped(expr->left))
usr/src/tools/smatch/src/smatch_capped.c
108
if (expr->op == '/')
usr/src/tools/smatch/src/smatch_capped.c
110
if (!is_capped(expr->right))
usr/src/tools/smatch/src/smatch_capped.c
112
if (expr->op == '*') {
usr/src/tools/smatch/src/smatch_capped.c
113
get_absolute_rl(expr->left, &left_rl);
usr/src/tools/smatch/src/smatch_capped.c
114
get_absolute_rl(expr->right, &right_rl);
usr/src/tools/smatch/src/smatch_capped.c
121
if (get_state_expr(my_id, expr) == &capped)
usr/src/tools/smatch/src/smatch_capped.c
143
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/smatch_capped.c
153
if (expr->type != EXPR_COMPARE)
usr/src/tools/smatch/src/smatch_capped.c
156
left = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_capped.c
157
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_capped.c
167
switch (expr->op) {
usr/src/tools/smatch/src/smatch_capped.c
199
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_capped.c
203
type = get_type(expr);
usr/src/tools/smatch/src/smatch_capped.c
211
if (is_capped(expr->right)) {
usr/src/tools/smatch/src/smatch_capped.c
212
set_state_expr(my_id, expr->left, &capped);
usr/src/tools/smatch/src/smatch_capped.c
214
if (get_state_expr(my_id, expr->left))
usr/src/tools/smatch/src/smatch_capped.c
215
set_state_expr(my_id, expr->left, &uncapped);
usr/src/tools/smatch/src/smatch_capped.c
219
static void match_caller_info(struct expression *expr)
usr/src/tools/smatch/src/smatch_capped.c
226
FOR_EACH_PTR(expr->args, tmp) {
usr/src/tools/smatch/src/smatch_capped.c
232
sql_insert_caller_info(expr, CAPPED_DATA, i, "$", "1");
usr/src/tools/smatch/src/smatch_capped.c
249
static void print_return_implies_capped(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_capped.c
260
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_capped.c
261
return_str = expr_to_str(expr);
usr/src/tools/smatch/src/smatch_capped.c
262
ret_sym = expr_to_sym(expr);
usr/src/tools/smatch/src/smatch_capped.c
321
static void db_return_states_capped(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_capped.c
326
name = return_state_to_var_sym(expr, param, key, &sym);
usr/src/tools/smatch/src/smatch_capped.c
51
static int is_capped_macro(struct expression *expr)
usr/src/tools/smatch/src/smatch_capped.c
55
name = get_macro_name(expr->pos);
usr/src/tools/smatch/src/smatch_capped.c
69
int is_capped(struct expression *expr)
usr/src/tools/smatch/src/smatch_capped.c
74
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_capped.c
75
while (expr && expr->type == EXPR_POSTOP) {
usr/src/tools/smatch/src/smatch_capped.c
76
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_capped.c
78
if (!expr)
usr/src/tools/smatch/src/smatch_capped.c
81
type = get_type(expr);
usr/src/tools/smatch/src/smatch_capped.c
89
if (get_hard_max(expr, &dummy))
usr/src/tools/smatch/src/smatch_capped.c
92
if (is_capped_macro(expr))
usr/src/tools/smatch/src/smatch_capped.c
95
if (expr->type == EXPR_BINOP) {
usr/src/tools/smatch/src/smatch_capped.c
99
if (expr->op == '&' && !get_value(expr->right, &sval))
usr/src/tools/smatch/src/smatch_comparison.c
1148
static void handle_for_loops(struct expression *expr, char *state_name, struct smatch_state *false_state)
usr/src/tools/smatch/src/smatch_comparison.c
1155
if (expr->op != '<' && expr->op != SPECIAL_UNSIGNED_LT)
usr/src/tools/smatch/src/smatch_comparison.c
1162
if (__cur_stmt->iterator_pre_condition != expr)
usr/src/tools/smatch/src/smatch_comparison.c
1166
if (get_value(expr->right, &sval))
usr/src/tools/smatch/src/smatch_comparison.c
1171
if (!get_implied_value(expr->left, &sval) ||
usr/src/tools/smatch/src/smatch_comparison.c
1175
iter_name = expr_to_var_sym(expr->left, &iter_sym);
usr/src/tools/smatch/src/smatch_comparison.c
1176
cap_name = expr_to_var_sym(expr->right, &cap_sym);
usr/src/tools/smatch/src/smatch_comparison.c
1195
if (get_state_chunk(inc_dec_id, expr->left) != &incremented)
usr/src/tools/smatch/src/smatch_comparison.c
1208
static int is_plus_one(struct expression *expr)
usr/src/tools/smatch/src/smatch_comparison.c
1212
if (expr->type != EXPR_BINOP || expr->op != '+')
usr/src/tools/smatch/src/smatch_comparison.c
1214
if (!get_implied_value(expr->right, &sval) || sval.value != 1)
usr/src/tools/smatch/src/smatch_comparison.c
1219
static int is_minus_one(struct expression *expr)
usr/src/tools/smatch/src/smatch_comparison.c
1223
if (expr->type != EXPR_BINOP || expr->op != '-')
usr/src/tools/smatch/src/smatch_comparison.c
1225
if (!get_implied_value(expr->right, &sval) || sval.value != 1)
usr/src/tools/smatch/src/smatch_comparison.c
1360
void __comparison_match_condition(struct expression *expr)
usr/src/tools/smatch/src/smatch_comparison.c
1367
if (expr->type != EXPR_COMPARE)
usr/src/tools/smatch/src/smatch_comparison.c
1370
handle_comparison(expr->left, expr->op, expr->right, &state_name, &false_state);
usr/src/tools/smatch/src/smatch_comparison.c
1372
handle_for_loops(expr, state_name, false_state);
usr/src/tools/smatch/src/smatch_comparison.c
1374
left = strip_parens(expr->left);
usr/src/tools/smatch/src/smatch_comparison.c
1375
right = strip_parens(expr->right);
usr/src/tools/smatch/src/smatch_comparison.c
1380
handle_comparison(new_left, expr->op, new_right, NULL, NULL);
usr/src/tools/smatch/src/smatch_comparison.c
1384
handle_comparison(new_left, expr->op, new_right, NULL, NULL);
usr/src/tools/smatch/src/smatch_comparison.c
1388
left = strip_parens(expr->left);
usr/src/tools/smatch/src/smatch_comparison.c
1389
right = strip_parens(expr->right);
usr/src/tools/smatch/src/smatch_comparison.c
1390
if (get_last_expr_from_expression_stmt(expr->left)) {
usr/src/tools/smatch/src/smatch_comparison.c
1391
left = get_last_expr_from_expression_stmt(expr->left);
usr/src/tools/smatch/src/smatch_comparison.c
1394
if (get_last_expr_from_expression_stmt(expr->right)) {
usr/src/tools/smatch/src/smatch_comparison.c
1395
right = get_last_expr_from_expression_stmt(expr->right);
usr/src/tools/smatch/src/smatch_comparison.c
1415
handle_comparison(left, expr->op, right, NULL, NULL);
usr/src/tools/smatch/src/smatch_comparison.c
1507
static void match_assign_add(struct expression *expr)
usr/src/tools/smatch/src/smatch_comparison.c
1513
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_comparison.c
1521
add_comparison(expr->left, '>', r_right);
usr/src/tools/smatch/src/smatch_comparison.c
1523
add_comparison(expr->left, SPECIAL_GTE, r_right);
usr/src/tools/smatch/src/smatch_comparison.c
1526
add_comparison(expr->left, '>', r_left);
usr/src/tools/smatch/src/smatch_comparison.c
1528
add_comparison(expr->left, SPECIAL_GTE, r_left);
usr/src/tools/smatch/src/smatch_comparison.c
1531
static void match_assign_sub(struct expression *expr)
usr/src/tools/smatch/src/smatch_comparison.c
1538
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_comparison.c
1551
add_comparison(expr->left, '>', r_left);
usr/src/tools/smatch/src/smatch_comparison.c
1553
add_comparison(expr->left, SPECIAL_GTE, r_left);
usr/src/tools/smatch/src/smatch_comparison.c
1558
static void match_assign_divide(struct expression *expr)
usr/src/tools/smatch/src/smatch_comparison.c
1564
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_comparison.c
1570
add_comparison(expr->left, '<', r_left);
usr/src/tools/smatch/src/smatch_comparison.c
1573
static void match_binop_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_comparison.c
1577
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_comparison.c
1579
match_assign_add(expr);
usr/src/tools/smatch/src/smatch_comparison.c
1581
match_assign_sub(expr);
usr/src/tools/smatch/src/smatch_comparison.c
1583
match_assign_divide(expr);
usr/src/tools/smatch/src/smatch_comparison.c
1595
struct expression *expr;
usr/src/tools/smatch/src/smatch_comparison.c
1620
expr = data->right;
usr/src/tools/smatch/src/smatch_comparison.c
1624
expr = data->left;
usr/src/tools/smatch/src/smatch_comparison.c
1632
add_comparison_var_sym(left, left_var, left_vsl, comparison, expr, var, vsl);
usr/src/tools/smatch/src/smatch_comparison.c
1639
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_comparison.c
1643
if (expr->op != '=')
usr/src/tools/smatch/src/smatch_comparison.c
1648
if (is_struct(expr->left))
usr/src/tools/smatch/src/smatch_comparison.c
1651
if (is_self_assign(expr))
usr/src/tools/smatch/src/smatch_comparison.c
1654
copy_comparisons(expr->left, expr->right);
usr/src/tools/smatch/src/smatch_comparison.c
1655
add_comparison(expr->left, SPECIAL_EQUAL, expr->right);
usr/src/tools/smatch/src/smatch_comparison.c
1657
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_comparison.c
1659
match_binop_assign(expr);
usr/src/tools/smatch/src/smatch_comparison.c
1817
struct state_list *get_all_comparisons(struct expression *expr)
usr/src/tools/smatch/src/smatch_comparison.c
1825
state = get_state_chunk(link_id, expr);
usr/src/tools/smatch/src/smatch_comparison.c
1841
struct state_list *get_all_possible_equal_comparisons(struct expression *expr)
usr/src/tools/smatch/src/smatch_comparison.c
1849
state = get_state_chunk(link_id, expr);
usr/src/tools/smatch/src/smatch_comparison.c
1868
struct state_list *get_all_possible_not_equal_comparisons(struct expression *expr)
usr/src/tools/smatch/src/smatch_comparison.c
1879
state = get_state_chunk(link_id, expr);
usr/src/tools/smatch/src/smatch_comparison.c
1910
struct expression *expr;
usr/src/tools/smatch/src/smatch_comparison.c
1935
expr = data->right;
usr/src/tools/smatch/src/smatch_comparison.c
1939
expr = data->left;
usr/src/tools/smatch/src/smatch_comparison.c
1947
add_comparison_var_sym(left, left_var, left_vsl, comparison, expr, var, vsl);
usr/src/tools/smatch/src/smatch_comparison.c
1967
void __add_comparison_info(struct expression *expr, struct expression *call, const char *range)
usr/src/tools/smatch/src/smatch_comparison.c
1969
copy_comparisons(expr, call);
usr/src/tools/smatch/src/smatch_comparison.c
1972
static char *get_mask_comparison(struct expression *expr, int ignore)
usr/src/tools/smatch/src/smatch_comparison.c
1981
while ((tmp = get_assigned_expr(expr))) {
usr/src/tools/smatch/src/smatch_comparison.c
1982
expr = strip_expr(tmp);
usr/src/tools/smatch/src/smatch_comparison.c
1987
if (expr->type != EXPR_BINOP || expr->op != '&')
usr/src/tools/smatch/src/smatch_comparison.c
1990
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_comparison.c
1999
static char *range_comparison_to_param_helper(struct expression *expr, char starts_with, int ignore)
usr/src/tools/smatch/src/smatch_comparison.c
2008
if (!expr)
usr/src/tools/smatch/src/smatch_comparison.c
2011
var = chunk_to_var(expr);
usr/src/tools/smatch/src/smatch_comparison.c
2042
ret_str = get_mask_comparison(expr, ignore);
usr/src/tools/smatch/src/smatch_comparison.c
2070
char *expr_equal_to_param(struct expression *expr, int ignore)
usr/src/tools/smatch/src/smatch_comparison.c
2072
return range_comparison_to_param_helper(expr, '=', ignore);
usr/src/tools/smatch/src/smatch_comparison.c
2075
char *expr_lte_to_param(struct expression *expr, int ignore)
usr/src/tools/smatch/src/smatch_comparison.c
2077
return range_comparison_to_param_helper(expr, '<', ignore);
usr/src/tools/smatch/src/smatch_comparison.c
2080
char *expr_param_comparison(struct expression *expr, int ignore)
usr/src/tools/smatch/src/smatch_comparison.c
2089
var = chunk_to_var(expr);
usr/src/tools/smatch/src/smatch_comparison.c
2149
static void match_call_info(struct expression *expr)
usr/src/tools/smatch/src/smatch_comparison.c
2164
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/smatch_comparison.c
2207
right_name = get_printed_param_name(expr, right_vs->var, right_vs->sym);
usr/src/tools/smatch/src/smatch_comparison.c
2211
sql_insert_caller_info(expr, PARAM_COMPARE, i, "$", info_buf);
usr/src/tools/smatch/src/smatch_comparison.c
2265
static void print_return_value_comparison(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_comparison.c
2283
if (!expr)
usr/src/tools/smatch/src/smatch_comparison.c
2285
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_comparison.c
2306
static void print_return_comparison(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_comparison.c
2320
print_return_value_comparison(return_id, return_ranges, expr);
usr/src/tools/smatch/src/smatch_comparison.c
2453
static void db_return_comparison(struct expression *expr, int left_param, char *key, char *value)
usr/src/tools/smatch/src/smatch_comparison.c
2466
if (expr->type != EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_comparison.c
2468
left_arg = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_comparison.c
2470
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_comparison.c
2471
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_comparison.c
2472
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_comparison.c
2475
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_comparison.c
2476
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_comparison.c
2477
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_comparison.c
2480
left_arg = get_argument_from_call_expr(expr->args, left_param);
usr/src/tools/smatch/src/smatch_comparison.c
2488
right_arg = get_argument_from_call_expr(expr->args, right_param);
usr/src/tools/smatch/src/smatch_comparison.c
2510
int param_compare_limit_is_impossible(struct expression *expr, int left_param, char *left_key, char *value)
usr/src/tools/smatch/src/smatch_comparison.c
2523
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_comparison.c
2524
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_comparison.c
2525
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_comparison.c
2531
left_arg = get_argument_from_call_expr(expr->args, left_param);
usr/src/tools/smatch/src/smatch_comparison.c
2535
right_arg = get_argument_from_call_expr(expr->args, right_param);
usr/src/tools/smatch/src/smatch_comparison.c
2560
int impossibly_high_comparison(struct expression *expr)
usr/src/tools/smatch/src/smatch_comparison.c
2568
link_state = get_state_expr(link_id, expr);
usr/src/tools/smatch/src/smatch_comparison.c
2570
if (expr->type == EXPR_BINOP &&
usr/src/tools/smatch/src/smatch_comparison.c
2571
(impossibly_high_comparison(expr->left) ||
usr/src/tools/smatch/src/smatch_comparison.c
2572
impossibly_high_comparison(expr->right)))
usr/src/tools/smatch/src/smatch_comparison.c
2750
struct sm_state *comparison_implication_hook(struct expression *expr,
usr/src/tools/smatch/src/smatch_comparison.c
2760
if (expr->type != EXPR_COMPARE)
usr/src/tools/smatch/src/smatch_comparison.c
2763
op = expr->op;
usr/src/tools/smatch/src/smatch_comparison.c
2765
left = expr_to_var(expr->left);
usr/src/tools/smatch/src/smatch_comparison.c
2766
right = expr_to_var(expr->right);
usr/src/tools/smatch/src/smatch_comparison.c
796
static bool match_add_sub_assign(struct sm_state *sm, struct expression *expr)
usr/src/tools/smatch/src/smatch_comparison.c
801
if (!expr || expr->type != EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_comparison.c
803
if (expr->op != SPECIAL_ADD_ASSIGN && expr->op != SPECIAL_SUB_ASSIGN)
usr/src/tools/smatch/src/smatch_comparison.c
806
get_absolute_rl(expr->right, &rl);
usr/src/tools/smatch/src/smatch_comparison.c
812
if (expr->op == SPECIAL_ADD_ASSIGN)
usr/src/tools/smatch/src/smatch_comparison.c
837
static int is_self_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_comparison.c
839
if (!expr || expr->type != EXPR_ASSIGNMENT || expr->op != '=')
usr/src/tools/smatch/src/smatch_comparison.c
841
return expr_equiv(expr->left, expr->right);
usr/src/tools/smatch/src/smatch_comparison.c
861
static void match_preop(struct expression *expr)
usr/src/tools/smatch/src/smatch_comparison.c
884
if (expr->type != EXPR_PREOP ||
usr/src/tools/smatch/src/smatch_comparison.c
885
(expr->op != SPECIAL_INCREMENT && expr->op != SPECIAL_DECREMENT))
usr/src/tools/smatch/src/smatch_comparison.c
888
parent = expr_get_parent_expr(expr);
usr/src/tools/smatch/src/smatch_comparison.c
893
if (parent->left != expr)
usr/src/tools/smatch/src/smatch_comparison.c
896
if (!get_implied_rl(expr->unop, &left) ||
usr/src/tools/smatch/src/smatch_comparison.c
904
add_comparison(expr->unop, op, parent->right);
usr/src/tools/smatch/src/smatch_comparison.c
907
static char *chunk_to_var_sym(struct expression *expr, struct symbol **sym)
usr/src/tools/smatch/src/smatch_comparison.c
909
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_comparison.c
910
if (!expr)
usr/src/tools/smatch/src/smatch_comparison.c
915
if (expr->type == EXPR_PREOP &&
usr/src/tools/smatch/src/smatch_comparison.c
916
(expr->op == SPECIAL_INCREMENT ||
usr/src/tools/smatch/src/smatch_comparison.c
917
expr->op == SPECIAL_DECREMENT))
usr/src/tools/smatch/src/smatch_comparison.c
918
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_comparison.c
920
if (expr->type == EXPR_CALL) {
usr/src/tools/smatch/src/smatch_comparison.c
923
snprintf(buf, sizeof(buf), "return %p", expr);
usr/src/tools/smatch/src/smatch_comparison.c
927
return expr_to_chunk_sym_vsl(expr, sym, NULL);
usr/src/tools/smatch/src/smatch_comparison.c
930
static char *chunk_to_var(struct expression *expr)
usr/src/tools/smatch/src/smatch_comparison.c
932
return chunk_to_var_sym(expr, NULL);
usr/src/tools/smatch/src/smatch_comparison.c
935
static struct smatch_state *get_state_chunk(int owner, struct expression *expr)
usr/src/tools/smatch/src/smatch_comparison.c
941
name = chunk_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_comparison.c
950
static void save_link(struct expression *expr, char *link)
usr/src/tools/smatch/src/smatch_comparison.c
955
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_comparison.c
956
if (expr->type == EXPR_BINOP) {
usr/src/tools/smatch/src/smatch_comparison.c
959
chunk = chunk_to_var(expr);
usr/src/tools/smatch/src/smatch_comparison.c
963
save_link(expr->left, link);
usr/src/tools/smatch/src/smatch_comparison.c
964
save_link(expr->right, link);
usr/src/tools/smatch/src/smatch_comparison.c
969
var = chunk_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_conditions.c
102
if (expr->op == SPECIAL_EQUAL) {
usr/src/tools/smatch/src/smatch_conditions.c
115
static int ignore_builtin_expect(struct expression *expr)
usr/src/tools/smatch/src/smatch_conditions.c
117
if (sym_name_is("__builtin_expect", expr->fn)) {
usr/src/tools/smatch/src/smatch_conditions.c
118
split_conditions(first_ptr_list((struct ptr_list *) expr->args));
usr/src/tools/smatch/src/smatch_conditions.c
130
struct expression *expr = NULL;
usr/src/tools/smatch/src/smatch_conditions.c
138
expr = last->label_statement->expression;
usr/src/tools/smatch/src/smatch_conditions.c
144
expr = last->expression;
usr/src/tools/smatch/src/smatch_conditions.c
153
split_conditions(expr);
usr/src/tools/smatch/src/smatch_conditions.c
156
static int handle_preop(struct expression *expr)
usr/src/tools/smatch/src/smatch_conditions.c
160
if (expr->op == '!') {
usr/src/tools/smatch/src/smatch_conditions.c
161
split_conditions(expr->unop);
usr/src/tools/smatch/src/smatch_conditions.c
165
stmt = get_expression_statement(expr);
usr/src/tools/smatch/src/smatch_conditions.c
173
static void handle_logical(struct expression *expr)
usr/src/tools/smatch/src/smatch_conditions.c
190
split_conditions(expr->left);
usr/src/tools/smatch/src/smatch_conditions.c
192
if (is_logical_and(expr))
usr/src/tools/smatch/src/smatch_conditions.c
200
split_conditions(expr->right);
usr/src/tools/smatch/src/smatch_conditions.c
203
if (is_logical_and(expr))
usr/src/tools/smatch/src/smatch_conditions.c
234
static void handle_select(struct expression *expr)
usr/src/tools/smatch/src/smatch_conditions.c
277
split_conditions(expr->conditional);
usr/src/tools/smatch/src/smatch_conditions.c
286
split_conditions(expr->cond_true);
usr/src/tools/smatch/src/smatch_conditions.c
296
split_conditions(expr->cond_false);
usr/src/tools/smatch/src/smatch_conditions.c
305
if (implied_condition_true(expr->cond_true)) {
usr/src/tools/smatch/src/smatch_conditions.c
311
if (implied_condition_false(expr->cond_true)) {
usr/src/tools/smatch/src/smatch_conditions.c
317
if (implied_condition_true(expr->cond_false)) {
usr/src/tools/smatch/src/smatch_conditions.c
323
if (implied_condition_false(expr->cond_false)) {
usr/src/tools/smatch/src/smatch_conditions.c
357
static void handle_comma(struct expression *expr)
usr/src/tools/smatch/src/smatch_conditions.c
359
__split_expr(expr->left);
usr/src/tools/smatch/src/smatch_conditions.c
360
split_conditions(expr->right);
usr/src/tools/smatch/src/smatch_conditions.c
378
static void hackup_unsigned_compares(struct expression *expr)
usr/src/tools/smatch/src/smatch_conditions.c
380
if (expr->type != EXPR_COMPARE)
usr/src/tools/smatch/src/smatch_conditions.c
383
if (type_unsigned(get_type(expr)))
usr/src/tools/smatch/src/smatch_conditions.c
384
expr->op = make_op_unsigned(expr->op);
usr/src/tools/smatch/src/smatch_conditions.c
387
static void do_condition(struct expression *expr)
usr/src/tools/smatch/src/smatch_conditions.c
391
__pass_to_client(expr, CONDITION_HOOK);
usr/src/tools/smatch/src/smatch_conditions.c
395
static void split_conditions(struct expression *expr)
usr/src/tools/smatch/src/smatch_conditions.c
398
char *cond = expr_to_str(expr);
usr/src/tools/smatch/src/smatch_conditions.c
404
expr = strip_expr_set_parent(expr);
usr/src/tools/smatch/src/smatch_conditions.c
405
if (!expr) {
usr/src/tools/smatch/src/smatch_conditions.c
422
if (expr->type == EXPR_BINOP && expr->op == '|') {
usr/src/tools/smatch/src/smatch_conditions.c
423
expr_set_parent_expr(expr->left, expr);
usr/src/tools/smatch/src/smatch_conditions.c
424
expr_set_parent_expr(expr->right, expr);
usr/src/tools/smatch/src/smatch_conditions.c
425
handle_logical(expr);
usr/src/tools/smatch/src/smatch_conditions.c
429
switch (expr->type) {
usr/src/tools/smatch/src/smatch_conditions.c
431
expr_set_parent_expr(expr->left, expr);
usr/src/tools/smatch/src/smatch_conditions.c
432
expr_set_parent_expr(expr->right, expr);
usr/src/tools/smatch/src/smatch_conditions.c
433
__pass_to_client(expr, LOGIC_HOOK);
usr/src/tools/smatch/src/smatch_conditions.c
434
handle_logical(expr);
usr/src/tools/smatch/src/smatch_conditions.c
437
expr_set_parent_expr(expr->left, expr);
usr/src/tools/smatch/src/smatch_conditions.c
438
expr_set_parent_expr(expr->right, expr);
usr/src/tools/smatch/src/smatch_conditions.c
439
hackup_unsigned_compares(expr);
usr/src/tools/smatch/src/smatch_conditions.c
440
if (handle_zero_comparisons(expr))
usr/src/tools/smatch/src/smatch_conditions.c
444
if (ignore_builtin_expect(expr))
usr/src/tools/smatch/src/smatch_conditions.c
448
expr_set_parent_expr(expr->unop, expr);
usr/src/tools/smatch/src/smatch_conditions.c
449
if (handle_preop(expr))
usr/src/tools/smatch/src/smatch_conditions.c
454
expr_set_parent_expr(expr->conditional, expr);
usr/src/tools/smatch/src/smatch_conditions.c
455
expr_set_parent_expr(expr->cond_true, expr);
usr/src/tools/smatch/src/smatch_conditions.c
456
expr_set_parent_expr(expr->cond_false, expr);
usr/src/tools/smatch/src/smatch_conditions.c
457
handle_select(expr);
usr/src/tools/smatch/src/smatch_conditions.c
460
expr_set_parent_expr(expr->left, expr);
usr/src/tools/smatch/src/smatch_conditions.c
461
expr_set_parent_expr(expr->right, expr);
usr/src/tools/smatch/src/smatch_conditions.c
462
handle_comma(expr);
usr/src/tools/smatch/src/smatch_conditions.c
471
push_expression(&big_expression_stack, expr);
usr/src/tools/smatch/src/smatch_conditions.c
472
push_expression(&big_condition_stack, expr);
usr/src/tools/smatch/src/smatch_conditions.c
474
if (expr->type == EXPR_COMPARE) {
usr/src/tools/smatch/src/smatch_conditions.c
475
if (expr->left->type != EXPR_POSTOP)
usr/src/tools/smatch/src/smatch_conditions.c
476
__split_expr(expr->left);
usr/src/tools/smatch/src/smatch_conditions.c
477
if (expr->right->type != EXPR_POSTOP)
usr/src/tools/smatch/src/smatch_conditions.c
478
__split_expr(expr->right);
usr/src/tools/smatch/src/smatch_conditions.c
479
} else if (expr->type != EXPR_POSTOP) {
usr/src/tools/smatch/src/smatch_conditions.c
480
__split_expr(expr);
usr/src/tools/smatch/src/smatch_conditions.c
482
do_condition(expr);
usr/src/tools/smatch/src/smatch_conditions.c
483
if (expr->type == EXPR_COMPARE) {
usr/src/tools/smatch/src/smatch_conditions.c
484
if (expr->left->type == EXPR_POSTOP)
usr/src/tools/smatch/src/smatch_conditions.c
485
__split_expr(expr->left);
usr/src/tools/smatch/src/smatch_conditions.c
486
if (expr->right->type == EXPR_POSTOP)
usr/src/tools/smatch/src/smatch_conditions.c
487
__split_expr(expr->right);
usr/src/tools/smatch/src/smatch_conditions.c
488
} else if (expr->type == EXPR_POSTOP) {
usr/src/tools/smatch/src/smatch_conditions.c
489
__split_expr(expr);
usr/src/tools/smatch/src/smatch_conditions.c
499
void __split_whole_condition(struct expression *expr)
usr/src/tools/smatch/src/smatch_conditions.c
507
push_expression(&big_expression_stack, expr);
usr/src/tools/smatch/src/smatch_conditions.c
508
split_conditions(expr);
usr/src/tools/smatch/src/smatch_conditions.c
510
__pass_to_client(expr, WHOLE_CONDITION_HOOK);
usr/src/tools/smatch/src/smatch_conditions.c
516
void __handle_logic(struct expression *expr)
usr/src/tools/smatch/src/smatch_conditions.c
524
push_expression(&big_expression_stack, expr);
usr/src/tools/smatch/src/smatch_conditions.c
525
if (expr)
usr/src/tools/smatch/src/smatch_conditions.c
526
split_conditions(expr);
usr/src/tools/smatch/src/smatch_conditions.c
528
__pass_to_client(expr, WHOLE_CONDITION_HOOK);
usr/src/tools/smatch/src/smatch_conditions.c
535
int is_condition(struct expression *expr)
usr/src/tools/smatch/src/smatch_conditions.c
538
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_conditions.c
539
if (!expr)
usr/src/tools/smatch/src/smatch_conditions.c
542
switch (expr->type) {
usr/src/tools/smatch/src/smatch_conditions.c
547
if (expr->op == '!')
usr/src/tools/smatch/src/smatch_conditions.c
553
int __handle_condition_assigns(struct expression *expr)
usr/src/tools/smatch/src/smatch_conditions.c
559
if (expr->op != '=')
usr/src/tools/smatch/src/smatch_conditions.c
561
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_conditions.c
562
if (!is_condition(expr->right))
usr/src/tools/smatch/src/smatch_conditions.c
577
set_extra_expr_mod(expr->left, alloc_estate_sval(sval_type_val(get_type(expr->left), 1)));
usr/src/tools/smatch/src/smatch_conditions.c
593
set_extra_expr_mod(expr->left, alloc_estate_sval(sval_type_val(get_type(expr->left), 0)));
usr/src/tools/smatch/src/smatch_conditions.c
608
__pass_to_client(expr, ASSIGNMENT_HOOK);
usr/src/tools/smatch/src/smatch_conditions.c
613
static int is_select_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_conditions.c
617
if (expr->op != '=')
usr/src/tools/smatch/src/smatch_conditions.c
619
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_conditions.c
627
int __handle_select_assigns(struct expression *expr)
usr/src/tools/smatch/src/smatch_conditions.c
635
if (!is_select_assign(expr))
usr/src/tools/smatch/src/smatch_conditions.c
638
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_conditions.c
652
fake_expr = assign_expression(expr->left, expr->op, right->cond_true);
usr/src/tools/smatch/src/smatch_conditions.c
654
fake_expr = assign_expression(expr->left, expr->op, right->conditional);
usr/src/tools/smatch/src/smatch_conditions.c
66
static void split_conditions(struct expression *expr);
usr/src/tools/smatch/src/smatch_conditions.c
663
fake_expr = assign_expression(expr->left, expr->op, right->cond_false);
usr/src/tools/smatch/src/smatch_conditions.c
68
static int is_logical_and(struct expression *expr)
usr/src/tools/smatch/src/smatch_conditions.c
70
if (expr->op == SPECIAL_LOGICAL_AND)
usr/src/tools/smatch/src/smatch_conditions.c
704
int __handle_expr_statement_assigns(struct expression *expr)
usr/src/tools/smatch/src/smatch_conditions.c
709
right = expr->right;
usr/src/tools/smatch/src/smatch_conditions.c
733
fake_assign = assign_expression(expr->left, expr->op, &fake_expr_stmt);
usr/src/tools/smatch/src/smatch_conditions.c
741
fake_assign = assign_expression(expr->left, expr->op, stmt->expression);
usr/src/tools/smatch/src/smatch_conditions.c
75
static int handle_zero_comparisons(struct expression *expr)
usr/src/tools/smatch/src/smatch_conditions.c
81
if (expr_is_zero(expr->left)) {
usr/src/tools/smatch/src/smatch_conditions.c
82
zero = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_conditions.c
84
__split_expr(expr->left);
usr/src/tools/smatch/src/smatch_conditions.c
85
tmp = expr->right;
usr/src/tools/smatch/src/smatch_conditions.c
86
} else if (expr_is_zero(expr->right)) {
usr/src/tools/smatch/src/smatch_conditions.c
87
zero = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_conditions.c
89
__split_expr(expr->right);
usr/src/tools/smatch/src/smatch_conditions.c
90
tmp = expr->left;
usr/src/tools/smatch/src/smatch_conditions.c
96
if (expr->op == SPECIAL_NOTEQUAL) {
usr/src/tools/smatch/src/smatch_constraints.c
159
static char *get_func_constraint(struct expression *expr)
usr/src/tools/smatch/src/smatch_constraints.c
164
if (is_fake_call(expr))
usr/src/tools/smatch/src/smatch_constraints.c
166
name = expr_to_str(expr->fn);
usr/src/tools/smatch/src/smatch_constraints.c
174
static char *get_toplevel_name(struct expression *expr)
usr/src/tools/smatch/src/smatch_constraints.c
179
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_constraints.c
180
if (expr->type != EXPR_SYMBOL || !expr->symbol || !expr->symbol->ident)
usr/src/tools/smatch/src/smatch_constraints.c
183
sym = expr->symbol;
usr/src/tools/smatch/src/smatch_constraints.c
195
char *get_constraint_str(struct expression *expr)
usr/src/tools/smatch/src/smatch_constraints.c
199
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_constraints.c
200
if (!expr)
usr/src/tools/smatch/src/smatch_constraints.c
202
if (expr->type == EXPR_CALL)
usr/src/tools/smatch/src/smatch_constraints.c
203
return get_func_constraint(expr);
usr/src/tools/smatch/src/smatch_constraints.c
204
if (expr->type == EXPR_BINOP)
usr/src/tools/smatch/src/smatch_constraints.c
205
return expr_to_str(expr);
usr/src/tools/smatch/src/smatch_constraints.c
206
name = get_toplevel_name(expr);
usr/src/tools/smatch/src/smatch_constraints.c
209
return get_member_name(expr);
usr/src/tools/smatch/src/smatch_constraints.c
385
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/smatch_constraints.c
387
if (expr->type != EXPR_COMPARE)
usr/src/tools/smatch/src/smatch_constraints.c
390
if (expr->op == SPECIAL_EQUAL ||
usr/src/tools/smatch/src/smatch_constraints.c
391
expr->op == SPECIAL_NOTEQUAL)
usr/src/tools/smatch/src/smatch_constraints.c
394
handle_comparison(expr->left, expr->op, expr->right);
usr/src/tools/smatch/src/smatch_constraints.c
395
handle_comparison(expr->right, flip_comparison(expr->op), expr->left);
usr/src/tools/smatch/src/smatch_constraints.c
398
struct constraint_list *get_constraints(struct expression *expr)
usr/src/tools/smatch/src/smatch_constraints.c
402
state = get_state_expr(my_id, expr);
usr/src/tools/smatch/src/smatch_constraints.c
408
static void match_caller_info(struct expression *expr)
usr/src/tools/smatch/src/smatch_constraints.c
415
FOR_EACH_PTR(expr->args, tmp) {
usr/src/tools/smatch/src/smatch_constraints.c
420
sql_insert_caller_info(expr, CONSTRAINT, i, "$", state->name);
usr/src/tools/smatch/src/smatch_constraints.c
473
static void print_return_implies_constrained(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_constraints.c
501
static void db_returns_constrained(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_constraints.c
506
name = return_state_to_var_sym(expr, param, key, &sym);
usr/src/tools/smatch/src/smatch_constraints_required.c
214
static void match_alloc(const char *fn, struct expression *expr, void *_size_arg)
usr/src/tools/smatch/src/smatch_constraints_required.c
219
call = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_constraints_required.c
222
match_alloc_helper(expr->left, arg, 1);
usr/src/tools/smatch/src/smatch_constraints_required.c
225
static void match_calloc(const char *fn, struct expression *expr, void *_start_arg)
usr/src/tools/smatch/src/smatch_constraints_required.c
232
pointer = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_constraints_required.c
233
call = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_constraints_required.c
257
static void match_assign_size(struct expression *expr)
usr/src/tools/smatch/src/smatch_constraints_required.c
262
state = get_state_expr(my_id, expr->right);
usr/src/tools/smatch/src/smatch_constraints_required.c
270
limit = get_constraint_str(expr->left);
usr/src/tools/smatch/src/smatch_constraints_required.c
281
static void match_assign_has_buf_comparison(struct expression *expr)
usr/src/tools/smatch/src/smatch_constraints_required.c
286
if (expr->op != '=')
usr/src/tools/smatch/src/smatch_constraints_required.c
288
if (expr->right->type == EXPR_CALL)
usr/src/tools/smatch/src/smatch_constraints_required.c
290
size = get_size_variable(expr->right, &limit_type);
usr/src/tools/smatch/src/smatch_constraints_required.c
295
match_alloc_helper(expr->left, size, 1);
usr/src/tools/smatch/src/smatch_constraints_required.c
298
static void match_assign_data(struct expression *expr)
usr/src/tools/smatch/src/smatch_constraints_required.c
305
if (expr->op != '=')
usr/src/tools/smatch/src/smatch_constraints_required.c
309
tmp = get_assigned_expr(expr->right);
usr/src/tools/smatch/src/smatch_constraints_required.c
354
match_alloc_helper(expr->left, arg, 1);
usr/src/tools/smatch/src/smatch_constraints_required.c
358
match_alloc_helper(expr->left, arg, 1);
usr/src/tools/smatch/src/smatch_constraints_required.c
361
static void match_assign_ARRAY_SIZE(struct expression *expr)
usr/src/tools/smatch/src/smatch_constraints_required.c
367
macro = get_macro_name(expr->right->pos);
usr/src/tools/smatch/src/smatch_constraints_required.c
370
array = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_constraints_required.c
385
limit = get_constraint_str(expr->left);
usr/src/tools/smatch/src/smatch_constraints_required.c
396
static void match_assign_buf_comparison(struct expression *expr)
usr/src/tools/smatch/src/smatch_constraints_required.c
400
if (expr->op != '=')
usr/src/tools/smatch/src/smatch_constraints_required.c
402
pointer = get_array_variable(expr->right);
usr/src/tools/smatch/src/smatch_constraints_required.c
406
match_alloc_helper(pointer, expr->right, 1);
usr/src/tools/smatch/src/smatch_constraints_required.c
417
static int has_constraint(struct expression *expr, const char *constraint)
usr/src/tools/smatch/src/smatch_constraints_required.c
421
if (get_state_expr(my_id, expr))
usr/src/tools/smatch/src/smatch_constraints_required.c
431
static void match_assign_constraint(struct expression *expr)
usr/src/tools/smatch/src/smatch_constraints_required.c
436
if (expr->op != '=')
usr/src/tools/smatch/src/smatch_constraints_required.c
439
type = get_type(expr->left);
usr/src/tools/smatch/src/smatch_constraints_required.c
443
left = get_constraint_str(expr->left);
usr/src/tools/smatch/src/smatch_constraints_required.c
446
right = get_constraint_str(expr->right);
usr/src/tools/smatch/src/smatch_constraints_required.c
449
if (!has_constraint(expr->right, right))
usr/src/tools/smatch/src/smatch_constraints_required.c
59
static int bytes_per_element(struct expression *expr)
usr/src/tools/smatch/src/smatch_constraints_required.c
63
type = get_type(expr);
usr/src/tools/smatch/src/smatch_container_of.c
104
static int get_deref_count(struct expression *expr)
usr/src/tools/smatch/src/smatch_container_of.c
108
while (expr && expr->type == EXPR_DEREF) {
usr/src/tools/smatch/src/smatch_container_of.c
109
expr = expr->deref;
usr/src/tools/smatch/src/smatch_container_of.c
110
if (expr->type == EXPR_PREOP && expr->op == '*')
usr/src/tools/smatch/src/smatch_container_of.c
111
expr = expr->unop;
usr/src/tools/smatch/src/smatch_container_of.c
119
static struct expression *get_partial_deref(struct expression *expr, int cnt)
usr/src/tools/smatch/src/smatch_container_of.c
122
if (!expr || expr->type != EXPR_DEREF)
usr/src/tools/smatch/src/smatch_container_of.c
123
return expr;
usr/src/tools/smatch/src/smatch_container_of.c
124
expr = expr->deref;
usr/src/tools/smatch/src/smatch_container_of.c
125
if (expr->type == EXPR_PREOP && expr->op == '*')
usr/src/tools/smatch/src/smatch_container_of.c
126
expr = expr->unop;
usr/src/tools/smatch/src/smatch_container_of.c
128
return expr;
usr/src/tools/smatch/src/smatch_container_of.c
131
static int partial_deref_to_offset_str(struct expression *expr, int cnt, char op, char *buf, int size)
usr/src/tools/smatch/src/smatch_container_of.c
140
offset = get_member_offset_from_deref(expr);
usr/src/tools/smatch/src/smatch_container_of.c
144
if (expr->type != EXPR_DEREF)
usr/src/tools/smatch/src/smatch_container_of.c
146
expr = expr->deref;
usr/src/tools/smatch/src/smatch_container_of.c
147
if (expr->type == EXPR_PREOP && expr->op == '*')
usr/src/tools/smatch/src/smatch_container_of.c
148
expr = expr->unop;
usr/src/tools/smatch/src/smatch_container_of.c
154
static char *get_shared_str(struct expression *expr, struct expression *container)
usr/src/tools/smatch/src/smatch_container_of.c
160
exp = get_deref_count(expr);
usr/src/tools/smatch/src/smatch_container_of.c
167
one = get_partial_deref(expr, exp - min);
usr/src/tools/smatch/src/smatch_container_of.c
177
ret = partial_deref_to_offset_str(expr, exp - min, '-', buf, sizeof(buf));
usr/src/tools/smatch/src/smatch_container_of.c
192
struct expression *expr)
usr/src/tools/smatch/src/smatch_container_of.c
201
if (!expr || expr->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_container_of.c
203
state = get_state_expr(param_id, expr);
usr/src/tools/smatch/src/smatch_container_of.c
218
static char *get_container_name_helper(struct expression *container, struct expression *expr)
usr/src/tools/smatch/src/smatch_container_of.c
225
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_container_of.c
227
if (!expr || !container)
usr/src/tools/smatch/src/smatch_container_of.c
230
ret = get_stored_container_name(container, expr);
usr/src/tools/smatch/src/smatch_container_of.c
234
sym = expr_to_sym(expr);
usr/src/tools/smatch/src/smatch_container_of.c
248
if (expr->type == EXPR_PREOP && expr->op == '&')
usr/src/tools/smatch/src/smatch_container_of.c
249
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_container_of.c
25
int get_param_from_container_of(struct expression *expr)
usr/src/tools/smatch/src/smatch_container_of.c
251
shared = get_shared_str(expr, container);
usr/src/tools/smatch/src/smatch_container_of.c
262
char *get_container_name(struct expression *container, struct expression *expr)
usr/src/tools/smatch/src/smatch_container_of.c
266
ret = get_container_name_helper(container, expr);
usr/src/tools/smatch/src/smatch_container_of.c
270
ret = get_container_name_helper(get_assigned_expr(container), expr);
usr/src/tools/smatch/src/smatch_container_of.c
274
ret = get_container_name_helper(container, get_assigned_expr(expr));
usr/src/tools/smatch/src/smatch_container_of.c
279
get_assigned_expr(expr));
usr/src/tools/smatch/src/smatch_container_of.c
286
static bool is_fn_ptr(struct expression *expr)
usr/src/tools/smatch/src/smatch_container_of.c
290
if (!expr)
usr/src/tools/smatch/src/smatch_container_of.c
292
if (expr->type != EXPR_SYMBOL && expr->type != EXPR_DEREF)
usr/src/tools/smatch/src/smatch_container_of.c
295
type = get_type(expr);
usr/src/tools/smatch/src/smatch_container_of.c
33
type = get_type(expr);
usr/src/tools/smatch/src/smatch_container_of.c
37
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_container_of.c
38
if (expr->type != EXPR_BINOP || expr->op != '-')
usr/src/tools/smatch/src/smatch_container_of.c
41
if (!get_value(expr->right, &sval))
usr/src/tools/smatch/src/smatch_container_of.c
46
param_expr = get_assigned_expr(expr->left);
usr/src/tools/smatch/src/smatch_container_of.c
56
int get_offset_from_container_of(struct expression *expr)
usr/src/tools/smatch/src/smatch_container_of.c
62
type = get_type(expr);
usr/src/tools/smatch/src/smatch_container_of.c
66
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_container_of.c
67
if (expr->type != EXPR_BINOP || expr->op != '-')
usr/src/tools/smatch/src/smatch_container_of.c
70
if (!get_value(expr->right, &sval))
usr/src/tools/smatch/src/smatch_container_of.c
75
param_expr = get_assigned_expr(expr->left);
usr/src/tools/smatch/src/smatch_container_of.c
82
static void print_returns_container_of(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_container_of.c
89
param = get_param_from_container_of(expr);
usr/src/tools/smatch/src/smatch_container_of.c
92
offset = get_offset_from_container_of(expr);
usr/src/tools/smatch/src/smatch_data_source.c
102
static void match_caller_info(struct expression *expr)
usr/src/tools/smatch/src/smatch_data_source.c
109
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/smatch_data_source.c
114
sql_insert_caller_info(expr, DATA_SOURCE, i, "$", source);
usr/src/tools/smatch/src/smatch_data_source.c
24
static char *get_source_parameter(struct expression *expr)
usr/src/tools/smatch/src/smatch_data_source.c
36
tmp = expr;
usr/src/tools/smatch/src/smatch_data_source.c
38
expr = tmp;
usr/src/tools/smatch/src/smatch_data_source.c
43
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_data_source.c
44
if (expr->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_data_source.c
47
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_data_source.c
68
static char *get_source_assignment(struct expression *expr)
usr/src/tools/smatch/src/smatch_data_source.c
75
right = get_assigned_expr(expr);
usr/src/tools/smatch/src/smatch_db.c
1281
arg = get_argument_from_call_expr(info->expr->args, param);
usr/src/tools/smatch/src/smatch_db.c
1285
cb->callback(info->expr, arg, argv[3], argv[4]);
usr/src/tools/smatch/src/smatch_db.c
1316
cb->callback(info->expr, arg, argv[3], argv[4]);
usr/src/tools/smatch/src/smatch_db.c
1322
static void match_return_implies(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
1329
if (expr->fn->type != EXPR_SYMBOL ||
usr/src/tools/smatch/src/smatch_db.c
1330
!expr->fn->symbol)
usr/src/tools/smatch/src/smatch_db.c
1332
info.expr = expr;
usr/src/tools/smatch/src/smatch_db.c
1333
info.sym = expr->fn->symbol;
usr/src/tools/smatch/src/smatch_db.c
1353
static char *get_fn_param_str(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
1359
tmp = get_assigned_expr(expr);
usr/src/tools/smatch/src/smatch_db.c
1361
expr = tmp;
usr/src/tools/smatch/src/smatch_db.c
1362
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_db.c
1363
if (!expr || expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_db.c
1365
expr = strip_expr(expr->fn);
usr/src/tools/smatch/src/smatch_db.c
1366
if (!expr || expr->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_db.c
1368
param = get_param_num(expr);
usr/src/tools/smatch/src/smatch_db.c
1376
static char *get_return_compare_is_param(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
1383
param = get_param_num(expr);
usr/src/tools/smatch/src/smatch_db.c
1387
var = expr_to_var(expr);
usr/src/tools/smatch/src/smatch_db.c
1401
static char *get_return_compare_str(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
1405
compare_str = get_return_compare_is_param(expr);
usr/src/tools/smatch/src/smatch_db.c
1409
compare_str = expr_lte_to_param(expr, -1);
usr/src/tools/smatch/src/smatch_db.c
1413
return expr_param_comparison(expr, -1);
usr/src/tools/smatch/src/smatch_db.c
1416
static const char *get_return_ranges_str(struct expression *expr, struct range_list **rl_p)
usr/src/tools/smatch/src/smatch_db.c
1428
if (!expr)
usr/src/tools/smatch/src/smatch_db.c
1431
if (get_implied_value(expr, &sval)) {
usr/src/tools/smatch/src/smatch_db.c
1437
fn_param_str = get_fn_param_str(expr);
usr/src/tools/smatch/src/smatch_db.c
1438
compare_str = expr_equal_to_param(expr, -1);
usr/src/tools/smatch/src/smatch_db.c
1439
math_str = get_value_in_terms_of_parameter_math(expr);
usr/src/tools/smatch/src/smatch_db.c
1441
if (get_implied_rl(expr, &rl) && !is_whole_rl(rl)) {
usr/src/tools/smatch/src/smatch_db.c
1444
} else if (get_imaginary_absolute(expr, &rl)){
usr/src/tools/smatch/src/smatch_db.c
1448
get_absolute_rl(expr, &rl);
usr/src/tools/smatch/src/smatch_db.c
1466
compare_str = get_return_compare_str(expr);
usr/src/tools/smatch/src/smatch_db.c
1475
static void match_return_info(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
1480
static bool call_return_state_hooks_conditional(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
1487
if (!expr ||
usr/src/tools/smatch/src/smatch_db.c
1488
(expr->type != EXPR_CONDITIONAL && expr->type != EXPR_SELECT))
usr/src/tools/smatch/src/smatch_db.c
1496
__split_whole_condition(expr->conditional);
usr/src/tools/smatch/src/smatch_db.c
1499
call_return_state_hooks(expr->cond_true ?: expr->conditional);
usr/src/tools/smatch/src/smatch_db.c
1504
call_return_state_hooks(expr->cond_false);
usr/src/tools/smatch/src/smatch_db.c
1513
static void call_return_state_hooks_compare(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
1521
if (!get_implied_value(expr, &ret))
usr/src/tools/smatch/src/smatch_db.c
1527
__split_whole_condition(expr);
usr/src/tools/smatch/src/smatch_db.c
1537
cb->callback(return_id, return_ranges, expr);
usr/src/tools/smatch/src/smatch_db.c
1551
cb->callback(return_id, return_ranges, expr);
usr/src/tools/smatch/src/smatch_db.c
1571
static int split_possible_helper(struct sm_state *sm, struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
1621
compare_str = get_return_compare_str(expr);
usr/src/tools/smatch/src/smatch_db.c
1630
cb->callback(return_id, return_ranges, expr);
usr/src/tools/smatch/src/smatch_db.c
1641
static int call_return_state_hooks_split_possible(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
1645
if (!expr)
usr/src/tools/smatch/src/smatch_db.c
1648
sm = get_sm_state_expr(SMATCH_EXTRA, expr);
usr/src/tools/smatch/src/smatch_db.c
1649
return split_possible_helper(sm, expr);
usr/src/tools/smatch/src/smatch_db.c
1685
static int split_positive_from_negative(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
1699
if (!get_implied_rl(expr, &rl) || !rl)
usr/src/tools/smatch/src/smatch_db.c
1707
sm = get_sm_state_expr(SMATCH_EXTRA, expr);
usr/src/tools/smatch/src/smatch_db.c
1714
if (!assume(compare_expression(expr, separate_zero ? '>' : SPECIAL_GTE, zero_expr())))
usr/src/tools/smatch/src/smatch_db.c
1718
return_ranges = get_return_ranges_str(expr, &ret_rl);
usr/src/tools/smatch/src/smatch_db.c
1721
cb->callback(return_id, (char *)return_ranges, expr);
usr/src/tools/smatch/src/smatch_db.c
1727
undo = assume(compare_expression(expr, SPECIAL_EQUAL, zero_expr()));
usr/src/tools/smatch/src/smatch_db.c
1730
return_ranges = get_return_ranges_str(expr, &ret_rl);
usr/src/tools/smatch/src/smatch_db.c
1733
cb->callback(return_id, (char *)return_ranges, expr);
usr/src/tools/smatch/src/smatch_db.c
1740
undo = assume(compare_expression(expr, '<', zero_expr()));
usr/src/tools/smatch/src/smatch_db.c
1743
return_ranges = get_return_ranges_str(expr, &ret_rl);
usr/src/tools/smatch/src/smatch_db.c
1746
cb->callback(return_id, (char *)return_ranges, expr);
usr/src/tools/smatch/src/smatch_db.c
1755
static int call_return_state_hooks_split_null_non_null_zero(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
1768
if (!expr || expr_equal_to_param(expr, -1))
usr/src/tools/smatch/src/smatch_db.c
1770
if (expr->type == EXPR_CALL)
usr/src/tools/smatch/src/smatch_db.c
1773
sm = get_sm_state_expr(SMATCH_EXTRA, expr);
usr/src/tools/smatch/src/smatch_db.c
1797
__split_whole_condition(expr);
usr/src/tools/smatch/src/smatch_db.c
1806
cb->callback(return_id, return_ranges, expr);
usr/src/tools/smatch/src/smatch_db.c
1818
cb->callback(return_id, return_ranges, expr);
usr/src/tools/smatch/src/smatch_db.c
1858
static int call_return_state_hooks_split_success_fail(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
1877
sm = get_sm_state_expr(SMATCH_EXTRA, expr);
usr/src/tools/smatch/src/smatch_db.c
1892
__split_whole_condition(expr);
usr/src/tools/smatch/src/smatch_db.c
1902
cb->callback(return_id, return_ranges, expr);
usr/src/tools/smatch/src/smatch_db.c
1914
cb->callback(return_id, return_ranges, expr);
usr/src/tools/smatch/src/smatch_db.c
1923
static int is_boolean(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
1927
if (!get_implied_rl(expr, &rl))
usr/src/tools/smatch/src/smatch_db.c
1934
static int splitable_function_call(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
1939
if (!expr || expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_db.c
1941
snprintf(buf, sizeof(buf), "return %p", expr);
usr/src/tools/smatch/src/smatch_db.c
1943
return split_possible_helper(sm, expr);
usr/src/tools/smatch/src/smatch_db.c
1984
static int split_on_bool_sm(struct sm_state *sm, struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
2011
return_ranges = get_return_ranges_str(expr, &ret_rl);
usr/src/tools/smatch/src/smatch_db.c
2015
cb->callback(return_id, (char *)return_ranges, expr);
usr/src/tools/smatch/src/smatch_db.c
2026
static int split_by_bool_param(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
2041
return split_on_bool_sm(sm, expr);
usr/src/tools/smatch/src/smatch_db.c
2044
static int split_by_null_nonnull_param(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
2072
return split_on_bool_sm(sm, expr);
usr/src/tools/smatch/src/smatch_db.c
2075
struct expression *strip_expr_statement(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
2077
struct expression *orig = expr;
usr/src/tools/smatch/src/smatch_db.c
2080
if (!expr)
usr/src/tools/smatch/src/smatch_db.c
2082
if (expr->type == EXPR_PREOP && expr->op == '(')
usr/src/tools/smatch/src/smatch_db.c
2083
expr = expr->unop;
usr/src/tools/smatch/src/smatch_db.c
2084
if (expr->type != EXPR_STATEMENT)
usr/src/tools/smatch/src/smatch_db.c
2086
stmt = expr->statement;
usr/src/tools/smatch/src/smatch_db.c
2098
static bool is_kernel_error_path(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
2106
if (!get_implied_rl(expr, &rl))
usr/src/tools/smatch/src/smatch_db.c
2116
static void call_return_state_hooks(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
2127
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_db.c
2128
expr = strip_expr_statement(expr);
usr/src/tools/smatch/src/smatch_db.c
2133
if (expr && (expr->type == EXPR_COMPARE ||
usr/src/tools/smatch/src/smatch_db.c
2134
!get_implied_value(expr, &sval)) &&
usr/src/tools/smatch/src/smatch_db.c
2135
(is_condition(expr) || is_boolean(expr))) {
usr/src/tools/smatch/src/smatch_db.c
2136
call_return_state_hooks_compare(expr);
usr/src/tools/smatch/src/smatch_db.c
2138
} else if (call_return_state_hooks_conditional(expr)) {
usr/src/tools/smatch/src/smatch_db.c
2140
} else if (is_kernel_error_path(expr)) {
usr/src/tools/smatch/src/smatch_db.c
2142
} else if (call_return_state_hooks_split_possible(expr)) {
usr/src/tools/smatch/src/smatch_db.c
2144
} else if (split_positive_from_negative(expr)) {
usr/src/tools/smatch/src/smatch_db.c
2146
} else if (call_return_state_hooks_split_null_non_null_zero(expr)) {
usr/src/tools/smatch/src/smatch_db.c
2148
} else if (call_return_state_hooks_split_success_fail(expr)) {
usr/src/tools/smatch/src/smatch_db.c
2150
} else if (splitable_function_call(expr)) {
usr/src/tools/smatch/src/smatch_db.c
2152
} else if (split_by_bool_param(expr)) {
usr/src/tools/smatch/src/smatch_db.c
2153
} else if (split_by_null_nonnull_param(expr)) {
usr/src/tools/smatch/src/smatch_db.c
2158
return_ranges = get_return_ranges_str(expr, &ret_rl);
usr/src/tools/smatch/src/smatch_db.c
2164
match_return_info(return_id, (char *)return_ranges, expr);
usr/src/tools/smatch/src/smatch_db.c
2165
print_limited_param_set(return_id, (char *)return_ranges, expr);
usr/src/tools/smatch/src/smatch_db.c
2166
mark_all_params_untracked(return_id, (char *)return_ranges, expr);
usr/src/tools/smatch/src/smatch_db.c
2170
cb->callback(return_id, (char *)return_ranges, expr);
usr/src/tools/smatch/src/smatch_db.c
2174
static void print_returned_struct_members(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
2184
type = get_type(expr);
usr/src/tools/smatch/src/smatch_db.c
2187
name = expr_to_var(expr);
usr/src/tools/smatch/src/smatch_db.c
2200
cb->callback(return_id, return_ranges, expr, member_name, sm->state);
usr/src/tools/smatch/src/smatch_db.c
2208
cb->callback(return_id, return_ranges, expr, member_name, sm->state);
usr/src/tools/smatch/src/smatch_db.c
2559
char *return_state_to_var_sym(struct expression *expr, int param, const char *key, struct symbol **sym)
usr/src/tools/smatch/src/smatch_db.c
2570
if (expr->type != EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_db.c
2572
if (get_type(expr->left) == &int_ctype && strcmp(key, "$") != 0)
usr/src/tools/smatch/src/smatch_db.c
2574
name = expr_to_var_sym(expr->left, sym);
usr/src/tools/smatch/src/smatch_db.c
2588
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_db.c
2589
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_db.c
2590
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_db.c
2593
arg = get_argument_from_call_expr(expr->args, param);
usr/src/tools/smatch/src/smatch_db.c
2774
const char *get_mtag_name_expr(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
2780
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_db.c
2795
char *get_data_info_name(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
2802
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_db.c
2803
name = get_member_name(expr);
usr/src/tools/smatch/src/smatch_db.c
2806
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_db.c
34
static void call_return_state_hooks(struct expression *expr);
usr/src/tools/smatch/src/smatch_db.c
531
static int is_local_symbol(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
533
if (expr->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_db.c
535
if (expr->symbol->ctype.modifiers & (MOD_NONLOCAL | MOD_STATIC | MOD_ADDRESSABLE))
usr/src/tools/smatch/src/smatch_db.c
577
struct expression *expr;
usr/src/tools/smatch/src/smatch_db.c
584
if (info->type == RETURN_IMPLIES && inlinable(info->expr->fn)) {
usr/src/tools/smatch/src/smatch_db.c
587
cols, (unsigned long)info->expr);
usr/src/tools/smatch/src/smatch_db.c
64
void (*callback)(int return_id, char *return_ranges, struct expression *expr, char *printed_name, struct smatch_state *state);
usr/src/tools/smatch/src/smatch_db.c
670
void add_returned_member_callback(int owner, void (*callback)(int return_id, char *return_ranges, struct expression *expr, char *printed_name, struct smatch_state *state))
usr/src/tools/smatch/src/smatch_db.c
716
struct range_list *db_return_vals(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
722
if (is_fake_call(expr))
usr/src/tools/smatch/src/smatch_db.c
725
snprintf(buf, sizeof(buf), "return %p", expr);
usr/src/tools/smatch/src/smatch_db.c
729
ret_info.static_returns_call = expr;
usr/src/tools/smatch/src/smatch_db.c
730
ret_info.return_type = get_type(expr);
usr/src/tools/smatch/src/smatch_db.c
734
if (expr->fn->type != EXPR_SYMBOL || !expr->fn->symbol)
usr/src/tools/smatch/src/smatch_db.c
738
if (inlinable(expr->fn)) {
usr/src/tools/smatch/src/smatch_db.c
741
(unsigned long)expr);
usr/src/tools/smatch/src/smatch_db.c
745
get_static_filter(expr->fn->symbol));
usr/src/tools/smatch/src/smatch_db.c
771
struct range_list *db_return_vals_no_args(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
775
if (!expr || expr->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_db.c
778
ret_info.static_returns_call = expr;
usr/src/tools/smatch/src/smatch_db.c
779
ret_info.return_type = get_type(expr);
usr/src/tools/smatch/src/smatch_db.c
786
get_static_filter(expr->symbol));
usr/src/tools/smatch/src/smatch_db.c
791
static void match_call_marker(struct expression *expr)
usr/src/tools/smatch/src/smatch_db.c
795
type = get_type(expr->fn);
usr/src/tools/smatch/src/smatch_db.c
805
sql_insert_caller_info(expr, INTERNAL, -1, "%call_marker%", type_to_str(type));
usr/src/tools/smatch/src/smatch_db.c
835
char *sm_to_arg_name(struct expression *expr, struct sm_state *sm)
usr/src/tools/smatch/src/smatch_db.c
846
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_db.c
847
if (!expr)
usr/src/tools/smatch/src/smatch_db.c
850
if (expr->type == EXPR_PREOP && expr->op == '&') {
usr/src/tools/smatch/src/smatch_db.c
851
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_db.c
855
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_db.c
890
static void print_struct_members(struct expression *call, struct expression *expr, int param, struct stree *stree,
usr/src/tools/smatch/src/smatch_db.c
904
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_db.c
905
if (!expr)
usr/src/tools/smatch/src/smatch_db.c
907
type = get_type(expr);
usr/src/tools/smatch/src/smatch_db.c
911
if (expr->type == EXPR_PREOP && expr->op == '&') {
usr/src/tools/smatch/src/smatch_db.c
912
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_db.c
916
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_equiv.c
171
void remove_from_equiv_expr(struct expression *expr)
usr/src/tools/smatch/src/smatch_equiv.c
176
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_equiv.c
262
void set_equiv_state_expr(int id, struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_equiv.c
267
estate = get_state_expr(SMATCH_EXTRA, expr);
usr/src/tools/smatch/src/smatch_estate.c
442
struct smatch_state *get_implied_estate(struct expression *expr)
usr/src/tools/smatch/src/smatch_estate.c
447
state = get_state_expr(SMATCH_EXTRA, expr);
usr/src/tools/smatch/src/smatch_estate.c
450
if (!get_implied_rl(expr, &rl))
usr/src/tools/smatch/src/smatch_estate.c
451
rl = alloc_whole_rl(get_type(expr));
usr/src/tools/smatch/src/smatch_expression_stacks.c
21
void push_expression(struct expression_list **estack, struct expression *expr)
usr/src/tools/smatch/src/smatch_expression_stacks.c
23
add_ptr_list(estack, expr);
usr/src/tools/smatch/src/smatch_expression_stacks.c
28
struct expression *expr;
usr/src/tools/smatch/src/smatch_expression_stacks.c
30
expr = last_ptr_list((struct ptr_list *)*estack);
usr/src/tools/smatch/src/smatch_expression_stacks.c
32
return expr;
usr/src/tools/smatch/src/smatch_expression_stacks.c
37
struct expression *expr;
usr/src/tools/smatch/src/smatch_expression_stacks.c
39
expr = last_ptr_list((struct ptr_list *)estack);
usr/src/tools/smatch/src/smatch_expression_stacks.c
40
return expr;
usr/src/tools/smatch/src/smatch_expression_stacks.h
1
void push_expression(struct expression_list **estack, struct expression *expr);
usr/src/tools/smatch/src/smatch_expressions.c
101
expr = alloc_expression(right->pos, EXPR_ASSIGNMENT);
usr/src/tools/smatch/src/smatch_expressions.c
102
expr->op = op;
usr/src/tools/smatch/src/smatch_expressions.c
103
expr->left = left;
usr/src/tools/smatch/src/smatch_expressions.c
104
expr->right = right;
usr/src/tools/smatch/src/smatch_expressions.c
105
return expr;
usr/src/tools/smatch/src/smatch_expressions.c
11
struct expression *expr;
usr/src/tools/smatch/src/smatch_expressions.c
110
struct expression *expr;
usr/src/tools/smatch/src/smatch_expressions.c
112
expr = alloc_tmp_expression(right->pos, EXPR_BINOP);
usr/src/tools/smatch/src/smatch_expressions.c
113
expr->op = op;
usr/src/tools/smatch/src/smatch_expressions.c
114
expr->left = left;
usr/src/tools/smatch/src/smatch_expressions.c
115
expr->right = right;
usr/src/tools/smatch/src/smatch_expressions.c
116
return expr;
usr/src/tools/smatch/src/smatch_expressions.c
121
struct expression *expr;
usr/src/tools/smatch/src/smatch_expressions.c
123
expr = binop_expression(array, '+', offset);
usr/src/tools/smatch/src/smatch_expressions.c
124
return deref_expression(expr);
usr/src/tools/smatch/src/smatch_expressions.c
129
struct expression *expr;
usr/src/tools/smatch/src/smatch_expressions.c
131
expr = alloc_tmp_expression(sym->pos, EXPR_SYMBOL);
usr/src/tools/smatch/src/smatch_expressions.c
132
expr->symbol = sym;
usr/src/tools/smatch/src/smatch_expressions.c
133
expr->symbol_name = sym->ident;
usr/src/tools/smatch/src/smatch_expressions.c
134
return expr;
usr/src/tools/smatch/src/smatch_expressions.c
139
struct expression *expr;
usr/src/tools/smatch/src/smatch_expressions.c
14
expr = last_ptr_list((struct ptr_list *)big_expression_stack);
usr/src/tools/smatch/src/smatch_expressions.c
141
expr = alloc_tmp_expression(get_cur_pos(), EXPR_COMPARE);
usr/src/tools/smatch/src/smatch_expressions.c
142
expr->op = op;
usr/src/tools/smatch/src/smatch_expressions.c
143
expr->left = left;
usr/src/tools/smatch/src/smatch_expressions.c
144
expr->right = right;
usr/src/tools/smatch/src/smatch_expressions.c
145
return expr;
usr/src/tools/smatch/src/smatch_expressions.c
16
if (expr)
usr/src/tools/smatch/src/smatch_expressions.c
169
struct expression *expr;
usr/src/tools/smatch/src/smatch_expressions.c
17
pos = expr->pos;
usr/src/tools/smatch/src/smatch_expressions.c
171
expr = alloc_tmp_expression(fn->pos, EXPR_CALL);
usr/src/tools/smatch/src/smatch_expressions.c
172
expr->fn = fn;
usr/src/tools/smatch/src/smatch_expressions.c
173
expr->args = args;
usr/src/tools/smatch/src/smatch_expressions.c
175
return expr;
usr/src/tools/smatch/src/smatch_expressions.c
27
struct expression *expr;
usr/src/tools/smatch/src/smatch_expressions.c
29
expr = __alloc_tmp_expression(0);
usr/src/tools/smatch/src/smatch_expressions.c
299
void expr_set_parent_expr(struct expression *expr, struct expression *parent)
usr/src/tools/smatch/src/smatch_expressions.c
30
expr->smatch_flags |= Tmp;
usr/src/tools/smatch/src/smatch_expressions.c
301
if (!expr)
usr/src/tools/smatch/src/smatch_expressions.c
306
expr->parent = (unsigned long)parent | 0x1UL;
usr/src/tools/smatch/src/smatch_expressions.c
309
void expr_set_parent_stmt(struct expression *expr, struct statement *parent)
usr/src/tools/smatch/src/smatch_expressions.c
31
expr->type = type;
usr/src/tools/smatch/src/smatch_expressions.c
311
if (!expr)
usr/src/tools/smatch/src/smatch_expressions.c
313
expr->parent = (unsigned long)parent;
usr/src/tools/smatch/src/smatch_expressions.c
316
struct expression *expr_get_parent_expr(struct expression *expr)
usr/src/tools/smatch/src/smatch_expressions.c
318
if (!expr)
usr/src/tools/smatch/src/smatch_expressions.c
32
expr->pos = pos;
usr/src/tools/smatch/src/smatch_expressions.c
320
if (!(expr->parent & 0x1UL))
usr/src/tools/smatch/src/smatch_expressions.c
322
return (struct expression *)(expr->parent & ~0x1UL);
usr/src/tools/smatch/src/smatch_expressions.c
325
struct statement *expr_get_parent_stmt(struct expression *expr)
usr/src/tools/smatch/src/smatch_expressions.c
327
if (!expr)
usr/src/tools/smatch/src/smatch_expressions.c
329
if (expr->parent & 0x1UL)
usr/src/tools/smatch/src/smatch_expressions.c
33
return expr;
usr/src/tools/smatch/src/smatch_expressions.c
331
return (struct statement *)expr->parent;
usr/src/tools/smatch/src/smatch_expressions.c
53
struct expression *expr;
usr/src/tools/smatch/src/smatch_expressions.c
58
expr = alloc_tmp_expression(get_cur_pos(), EXPR_VALUE);
usr/src/tools/smatch/src/smatch_expressions.c
59
expr->value = val;
usr/src/tools/smatch/src/smatch_expressions.c
60
expr->ctype = &llong_ctype;
usr/src/tools/smatch/src/smatch_expressions.c
61
return expr;
usr/src/tools/smatch/src/smatch_expressions.c
66
struct expression *expr;
usr/src/tools/smatch/src/smatch_expressions.c
68
expr = alloc_tmp_expression(deref->pos, EXPR_DEREF);
usr/src/tools/smatch/src/smatch_expressions.c
69
expr->op = op;
usr/src/tools/smatch/src/smatch_expressions.c
70
expr->deref = deref;
usr/src/tools/smatch/src/smatch_expressions.c
71
expr->member = member;
usr/src/tools/smatch/src/smatch_expressions.c
72
expr->member_offset = -1;
usr/src/tools/smatch/src/smatch_expressions.c
73
return expr;
usr/src/tools/smatch/src/smatch_expressions.c
76
struct expression *preop_expression(struct expression *expr, int op)
usr/src/tools/smatch/src/smatch_expressions.c
80
preop = alloc_tmp_expression(expr->pos, EXPR_PREOP);
usr/src/tools/smatch/src/smatch_expressions.c
81
preop->unop = expr;
usr/src/tools/smatch/src/smatch_expressions.c
86
struct expression *deref_expression(struct expression *expr)
usr/src/tools/smatch/src/smatch_expressions.c
88
if (expr->type == EXPR_BINOP)
usr/src/tools/smatch/src/smatch_expressions.c
89
expr = preop_expression(expr, '(');
usr/src/tools/smatch/src/smatch_expressions.c
90
return preop_expression(expr, '*');
usr/src/tools/smatch/src/smatch_expressions.c
95
struct expression *expr;
usr/src/tools/smatch/src/smatch_extra.c
101
static void set_union_info(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_extra.c
1164
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
117
if (!expr || expr->type != EXPR_DEREF || !expr->member)
usr/src/tools/smatch/src/smatch_extra.c
1174
left = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_extra.c
1176
right = strip_parens(expr->right);
usr/src/tools/smatch/src/smatch_extra.c
1182
if (expr->op == '=' && is_condition(expr->right))
usr/src/tools/smatch/src/smatch_extra.c
1184
if (expr->op == '=' && right->type == EXPR_CALL)
usr/src/tools/smatch/src/smatch_extra.c
1186
if (expr->op == '=') {
usr/src/tools/smatch/src/smatch_extra.c
119
offset = get_member_offset_from_deref(expr);
usr/src/tools/smatch/src/smatch_extra.c
1197
switch (expr->op) {
usr/src/tools/smatch/src/smatch_extra.c
1208
binop_expr = binop_expression(expr->left,
usr/src/tools/smatch/src/smatch_extra.c
1209
op_remove_assign(expr->op),
usr/src/tools/smatch/src/smatch_extra.c
1210
expr->right);
usr/src/tools/smatch/src/smatch_extra.c
1214
if (expr->op == SPECIAL_ADD_ASSIGN)
usr/src/tools/smatch/src/smatch_extra.c
1217
if (expr->op == SPECIAL_SUB_ASSIGN &&
usr/src/tools/smatch/src/smatch_extra.c
123
deref = strip_expr(expr->deref);
usr/src/tools/smatch/src/smatch_extra.c
1268
static void clear_pointed_at_state(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
1281
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_extra.c
1282
type = get_type(expr);
usr/src/tools/smatch/src/smatch_extra.c
1288
set_extra_expr_nomod(deref_expression(expr), alloc_estate_whole(type));
usr/src/tools/smatch/src/smatch_extra.c
1291
static void unop_expr(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
1295
if (expr->smatch_flags & Handled)
usr/src/tools/smatch/src/smatch_extra.c
1298
switch (expr->op) {
usr/src/tools/smatch/src/smatch_extra.c
1300
state = get_state_expr(SMATCH_EXTRA, expr->unop);
usr/src/tools/smatch/src/smatch_extra.c
1303
state = alloc_estate_whole(get_type(expr));
usr/src/tools/smatch/src/smatch_extra.c
1304
set_extra_expr_mod(expr->unop, state);
usr/src/tools/smatch/src/smatch_extra.c
1305
clear_pointed_at_state(expr->unop);
usr/src/tools/smatch/src/smatch_extra.c
1308
state = get_state_expr(SMATCH_EXTRA, expr->unop);
usr/src/tools/smatch/src/smatch_extra.c
1311
state = alloc_estate_whole(get_type(expr));
usr/src/tools/smatch/src/smatch_extra.c
1312
set_extra_expr_mod(expr->unop, state);
usr/src/tools/smatch/src/smatch_extra.c
1313
clear_pointed_at_state(expr->unop);
usr/src/tools/smatch/src/smatch_extra.c
1323
struct expression *expr;
usr/src/tools/smatch/src/smatch_extra.c
1326
FOR_EACH_PTR(stmt->asm_outputs, expr) {
usr/src/tools/smatch/src/smatch_extra.c
1327
if (expr->type != EXPR_ASM_OPERAND) {
usr/src/tools/smatch/src/smatch_extra.c
1328
sm_perror("unexpected asm param type %d", expr->type);
usr/src/tools/smatch/src/smatch_extra.c
1331
type = get_type(strip_expr(expr->expr));
usr/src/tools/smatch/src/smatch_extra.c
1332
set_extra_expr_mod(expr->expr, alloc_estate_whole(type));
usr/src/tools/smatch/src/smatch_extra.c
1333
} END_FOR_EACH_PTR(expr);
usr/src/tools/smatch/src/smatch_extra.c
1336
static void check_dereference(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
1344
state = get_extra_state(expr);
usr/src/tools/smatch/src/smatch_extra.c
1351
set_extra_expr_nomod(expr, alloc_estate_rl(rl));
usr/src/tools/smatch/src/smatch_extra.c
1355
if (get_mtag_rl(expr, &rl))
usr/src/tools/smatch/src/smatch_extra.c
1360
set_extra_expr_nomod(expr, alloc_estate_rl(rl));
usr/src/tools/smatch/src/smatch_extra.c
1364
static void match_dereferences(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
1366
if (expr->type != EXPR_PREOP)
usr/src/tools/smatch/src/smatch_extra.c
1368
if (getting_address(expr))
usr/src/tools/smatch/src/smatch_extra.c
1371
if (is_array(expr))
usr/src/tools/smatch/src/smatch_extra.c
1373
check_dereference(expr->unop);
usr/src/tools/smatch/src/smatch_extra.c
1376
static void match_pointer_as_array(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
1378
if (!is_array(expr))
usr/src/tools/smatch/src/smatch_extra.c
1380
check_dereference(get_array_base(expr));
usr/src/tools/smatch/src/smatch_extra.c
1383
static void find_dereferences(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
1385
while (expr->type == EXPR_PREOP) {
usr/src/tools/smatch/src/smatch_extra.c
1386
if (expr->op == '*')
usr/src/tools/smatch/src/smatch_extra.c
1387
check_dereference(expr->unop);
usr/src/tools/smatch/src/smatch_extra.c
1388
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_extra.c
148
if (!inner->ident || inner->ident == expr->member)
usr/src/tools/smatch/src/smatch_extra.c
1491
bool is_impossible_variable(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
1495
state = get_extra_state(expr);
usr/src/tools/smatch/src/smatch_extra.c
156
member_expr = member_expression(member_expr, expr->op, inner->ident);
usr/src/tools/smatch/src/smatch_extra.c
172
void set_extra_mod_helper(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_extra.c
1724
static int is_simple_math(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
1726
if (!expr)
usr/src/tools/smatch/src/smatch_extra.c
1728
if (expr->type != EXPR_BINOP)
usr/src/tools/smatch/src/smatch_extra.c
1730
switch (expr->op) {
usr/src/tools/smatch/src/smatch_extra.c
1755
struct expression *expr = *expr_p;
usr/src/tools/smatch/src/smatch_extra.c
1759
if (!is_simple_math(expr))
usr/src/tools/smatch/src/smatch_extra.c
176
if (!expr)
usr/src/tools/smatch/src/smatch_extra.c
1762
if (get_implied_value(expr->right, &sval)) {
usr/src/tools/smatch/src/smatch_extra.c
1763
*expr_p = expr->left;
usr/src/tools/smatch/src/smatch_extra.c
1764
*rl_p = rl_binop(rl, flip_op(expr->op), alloc_rl(sval, sval));
usr/src/tools/smatch/src/smatch_extra.c
1768
if (expr->op == '-')
usr/src/tools/smatch/src/smatch_extra.c
177
expr = gen_expression_from_name_sym(name, sym);
usr/src/tools/smatch/src/smatch_extra.c
1770
if (get_implied_value(expr->left, &sval)) {
usr/src/tools/smatch/src/smatch_extra.c
1771
*expr_p = expr->right;
usr/src/tools/smatch/src/smatch_extra.c
1772
*rl_p = rl_binop(rl, flip_op(expr->op), alloc_rl(sval, sval));
usr/src/tools/smatch/src/smatch_extra.c
179
set_union_info(name, sym, expr, state);
usr/src/tools/smatch/src/smatch_extra.c
180
call_extra_mod_hooks(name, sym, expr, state);
usr/src/tools/smatch/src/smatch_extra.c
184
update_mtag_data(expr, state);
usr/src/tools/smatch/src/smatch_extra.c
1882
static int match_func_comparison(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
1884
struct expression *left = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_extra.c
1885
struct expression *right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_extra.c
1888
function_comparison(left, expr->op, right);
usr/src/tools/smatch/src/smatch_extra.c
1896
static int handle_integer_overflow_test(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
1902
if (expr->op != '<' && expr->op != SPECIAL_UNSIGNED_LT)
usr/src/tools/smatch/src/smatch_extra.c
1905
left = strip_parens(expr->left);
usr/src/tools/smatch/src/smatch_extra.c
1906
right = strip_parens(expr->right);
usr/src/tools/smatch/src/smatch_extra.c
191
static void set_extra_nomod_helper(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_extra.c
1911
type = get_type(expr);
usr/src/tools/smatch/src/smatch_extra.c
193
call_extra_nomod_hooks(name, sym, expr, state);
usr/src/tools/smatch/src/smatch_extra.c
1939
static void match_comparison(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
1941
struct expression *left_orig = strip_parens(expr->left);
usr/src/tools/smatch/src/smatch_extra.c
1942
struct expression *right_orig = strip_parens(expr->right);
usr/src/tools/smatch/src/smatch_extra.c
1948
if (match_func_comparison(expr))
usr/src/tools/smatch/src/smatch_extra.c
1951
type = get_type(expr);
usr/src/tools/smatch/src/smatch_extra.c
1955
if (handle_integer_overflow_test(expr))
usr/src/tools/smatch/src/smatch_extra.c
1961
handle_comparison(type, left, expr->op, right);
usr/src/tools/smatch/src/smatch_extra.c
1966
handle_comparison(type, left, expr->op, right);
usr/src/tools/smatch/src/smatch_extra.c
1973
handle_comparison(type, left, expr->op, right);
usr/src/tools/smatch/src/smatch_extra.c
1981
handle_comparison(type, left, expr->op, right);
usr/src/tools/smatch/src/smatch_extra.c
2012
handle_comparison(type, left, expr->op, right);
usr/src/tools/smatch/src/smatch_extra.c
2033
static bool handle_bit_test(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
2042
shift = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_extra.c
2043
mask = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_extra.c
2045
shift = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_extra.c
2046
mask = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_extra.c
2120
static void handle_AND_condition(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
2124
if (handle_bit_test(expr))
usr/src/tools/smatch/src/smatch_extra.c
2127
if (get_implied_value(expr->left, &known))
usr/src/tools/smatch/src/smatch_extra.c
2128
handle_AND_op(expr->right, known);
usr/src/tools/smatch/src/smatch_extra.c
2129
else if (get_implied_value(expr->right, &known))
usr/src/tools/smatch/src/smatch_extra.c
2130
handle_AND_op(expr->left, known);
usr/src/tools/smatch/src/smatch_extra.c
2133
static void handle_MOD_condition(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
2141
if (!get_implied_value(expr->right, &right) || right.value == 0)
usr/src/tools/smatch/src/smatch_extra.c
2143
get_absolute_rl(expr->left, &orig_rl);
usr/src/tools/smatch/src/smatch_extra.c
2191
set_extra_expr_true_false(expr->left,
usr/src/tools/smatch/src/smatch_extra.c
2197
void __extra_match_condition(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
2199
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_extra.c
2200
switch (expr->type) {
usr/src/tools/smatch/src/smatch_extra.c
2202
function_comparison(expr, SPECIAL_NOTEQUAL, zero_expr());
usr/src/tools/smatch/src/smatch_extra.c
2207
handle_comparison(get_type(expr), expr, SPECIAL_NOTEQUAL, zero_expr());
usr/src/tools/smatch/src/smatch_extra.c
2210
match_comparison(expr);
usr/src/tools/smatch/src/smatch_extra.c
2213
__extra_match_condition(expr->left);
usr/src/tools/smatch/src/smatch_extra.c
2216
if (expr->op == '&')
usr/src/tools/smatch/src/smatch_extra.c
2217
handle_AND_condition(expr);
usr/src/tools/smatch/src/smatch_extra.c
2218
if (expr->op == '%')
usr/src/tools/smatch/src/smatch_extra.c
2219
handle_MOD_condition(expr);
usr/src/tools/smatch/src/smatch_extra.c
2224
static void assume_indexes_are_valid(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
2235
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_extra.c
2236
if (!is_array(expr))
usr/src/tools/smatch/src/smatch_extra.c
2239
offset = get_array_offset(expr);
usr/src/tools/smatch/src/smatch_extra.c
2246
array_expr = get_array_base(expr);
usr/src/tools/smatch/src/smatch_extra.c
2263
int implied_not_equal(struct expression *expr, long long val)
usr/src/tools/smatch/src/smatch_extra.c
2265
return !possibly_false(expr, SPECIAL_NOTEQUAL, value_expr(val));
usr/src/tools/smatch/src/smatch_extra.c
2319
int parent_is_null(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
2325
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_extra.c
2326
var = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_extra.c
2445
struct range_list *intersect_with_real_abs_expr(struct expression *expr, struct range_list *start)
usr/src/tools/smatch/src/smatch_extra.c
2450
state = get_real_absolute_state(expr);
usr/src/tools/smatch/src/smatch_extra.c
2482
static void returned_struct_members(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
2494
if (!is_pointer(expr))
usr/src/tools/smatch/src/smatch_extra.c
2497
returned_name = expr_to_var_sym(expr, &returned_sym);
usr/src/tools/smatch/src/smatch_extra.c
2575
static void db_param_limit_filter(struct expression *expr, int param, char *key, char *value, enum info_type op)
usr/src/tools/smatch/src/smatch_extra.c
2589
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_extra.c
2590
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_extra.c
2591
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_extra.c
2594
arg = get_argument_from_call_expr(expr->args, param);
usr/src/tools/smatch/src/smatch_extra.c
2599
compare_type = get_arg_type(expr->fn, param);
usr/src/tools/smatch/src/smatch_extra.c
2603
call_results_to_rl(expr, compare_type, value, &limit);
usr/src/tools/smatch/src/smatch_extra.c
2649
static void db_param_limit(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_extra.c
2651
db_param_limit_filter(expr, param, key, value, PARAM_LIMIT);
usr/src/tools/smatch/src/smatch_extra.c
2654
static void db_param_filter(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_extra.c
2656
db_param_limit_filter(expr, param, key, value, PARAM_FILTER);
usr/src/tools/smatch/src/smatch_extra.c
2659
static void db_param_add_set(struct expression *expr, int param, char *key, char *value, enum info_type op)
usr/src/tools/smatch/src/smatch_extra.c
2670
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_extra.c
2671
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_extra.c
2672
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_extra.c
2675
arg = get_argument_from_call_expr(expr->args, param);
usr/src/tools/smatch/src/smatch_extra.c
2679
arg_type = get_arg_type_from_key(expr->fn, param, arg, key);
usr/src/tools/smatch/src/smatch_extra.c
2692
call_results_to_rl(expr, arg_type, value, &added);
usr/src/tools/smatch/src/smatch_extra.c
2708
static void db_param_add(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_extra.c
2711
db_param_add_set(expr, param, key, value, PARAM_ADD);
usr/src/tools/smatch/src/smatch_extra.c
2715
static void db_param_set(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_extra.c
2718
db_param_add_set(expr, param, key, value, PARAM_SET);
usr/src/tools/smatch/src/smatch_extra.c
2740
static void db_param_value(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_extra.c
2751
call = expr;
usr/src/tools/smatch/src/smatch_extra.c
2757
type = get_member_type_from_key(expr->left, key);
usr/src/tools/smatch/src/smatch_extra.c
2758
name = get_variable_from_key(expr->left, key, &sym);
usr/src/tools/smatch/src/smatch_extra.c
2769
static void match_call_info(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
2778
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/smatch_extra.c
2779
type = get_arg_type(expr->fn, i);
usr/src/tools/smatch/src/smatch_extra.c
2786
sql_insert_caller_info(expr, PARAM_VALUE, i, "$", show_rl(rl));
usr/src/tools/smatch/src/smatch_extra.c
2790
sql_insert_caller_info(expr, HARD_MAX, i, "$",
usr/src/tools/smatch/src/smatch_extra.c
2794
sql_insert_caller_info(expr, FUZZY_MAX, i, "$",
usr/src/tools/smatch/src/smatch_extra.c
2803
struct expression *expr;
usr/src/tools/smatch/src/smatch_extra.c
2811
expr = symbol_expression(sym);
usr/src/tools/smatch/src/smatch_extra.c
2812
fullname = get_variable_from_key(expr, key, NULL);
usr/src/tools/smatch/src/smatch_extra.c
2816
type = get_member_type_from_key(expr, key_orig);
usr/src/tools/smatch/src/smatch_extra.c
2826
struct expression *expr;
usr/src/tools/smatch/src/smatch_extra.c
2833
expr = symbol_expression(sym);
usr/src/tools/smatch/src/smatch_extra.c
2834
fullname = get_variable_from_key(expr, key, NULL);
usr/src/tools/smatch/src/smatch_extra.c
2851
struct expression *expr;
usr/src/tools/smatch/src/smatch_extra.c
2854
expr = symbol_expression(sym);
usr/src/tools/smatch/src/smatch_extra.c
2855
fullname = get_variable_from_key(expr, key, NULL);
usr/src/tools/smatch/src/smatch_extra.c
2865
struct sm_state *get_extra_sm_state(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
2871
name = expr_to_known_chunk_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_extra.c
2881
struct smatch_state *get_extra_state(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
2885
sm = get_extra_sm_state(expr);
usr/src/tools/smatch/src/smatch_extra.c
351
void set_extra_mod(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_extra.c
356
set_extra_mod_helper(name, sym, expr, state);
usr/src/tools/smatch/src/smatch_extra.c
363
static struct expression *chunk_get_array_base(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
370
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_extra.c
371
while (expr && expr->type == EXPR_DEREF)
usr/src/tools/smatch/src/smatch_extra.c
372
expr = strip_expr(expr->deref);
usr/src/tools/smatch/src/smatch_extra.c
373
return get_array_base(expr);
usr/src/tools/smatch/src/smatch_extra.c
376
static int chunk_has_array(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
378
return !!chunk_get_array_base(expr);
usr/src/tools/smatch/src/smatch_extra.c
390
static void set_extra_array_mod(struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_extra.c
398
array = chunk_get_array_base(expr);
usr/src/tools/smatch/src/smatch_extra.c
400
name = expr_to_chunk_sym_vsl(expr, &sym, &vsl);
usr/src/tools/smatch/src/smatch_extra.c
410
call_extra_mod_hooks(name, sym, expr, state);
usr/src/tools/smatch/src/smatch_extra.c
416
void set_extra_expr_mod(struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_extra.c
421
if (chunk_has_array(expr)) {
usr/src/tools/smatch/src/smatch_extra.c
422
set_extra_array_mod(expr, state);
usr/src/tools/smatch/src/smatch_extra.c
426
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_extra.c
427
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_extra.c
430
set_extra_mod(name, sym, expr, state);
usr/src/tools/smatch/src/smatch_extra.c
435
void set_extra_nomod(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_extra.c
450
set_extra_nomod_helper(new_name, new_sym, expr, state);
usr/src/tools/smatch/src/smatch_extra.c
454
set_extra_nomod_helper(name, sym, expr, state);
usr/src/tools/smatch/src/smatch_extra.c
465
set_extra_nomod_helper(rel->name, rel->sym, expr, clone_estate_cast(estate_type(estate), state));
usr/src/tools/smatch/src/smatch_extra.c
469
void set_extra_nomod_vsl(const char *name, struct symbol *sym, struct var_sym_list *vsl, struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_extra.c
477
set_extra_nomod(name, sym, expr, state);
usr/src/tools/smatch/src/smatch_extra.c
483
void set_extra_expr_nomod(struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_extra.c
490
name = expr_to_chunk_sym_vsl(expr, &sym, &vsl);
usr/src/tools/smatch/src/smatch_extra.c
497
set_extra_nomod(name, sym, expr, state);
usr/src/tools/smatch/src/smatch_extra.c
540
static void set_extra_chunk_true_false(struct expression *expr,
usr/src/tools/smatch/src/smatch_extra.c
553
type = get_type(expr);
usr/src/tools/smatch/src/smatch_extra.c
557
name = expr_to_chunk_sym_vsl(expr, &sym, &vsl);
usr/src/tools/smatch/src/smatch_extra.c
571
static void set_extra_expr_true_false(struct expression *expr,
usr/src/tools/smatch/src/smatch_extra.c
582
if (get_value(expr, &sval))
usr/src/tools/smatch/src/smatch_extra.c
585
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_extra.c
586
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_extra.c
589
set_extra_chunk_true_false(expr, true_state, false_state);
usr/src/tools/smatch/src/smatch_extra.c
63
typedef void (mod_hook)(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state);
usr/src/tools/smatch/src/smatch_extra.c
82
void call_extra_hooks(struct void_fn_list *hooks, const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_extra.c
87
(*fn)(name, sym, expr, state);
usr/src/tools/smatch/src/smatch_extra.c
91
void call_extra_mod_hooks(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_extra.c
911
struct expression *expr;
usr/src/tools/smatch/src/smatch_extra.c
918
expr = symbol_expression(sym);
usr/src/tools/smatch/src/smatch_extra.c
919
return get_implied_rl(expr, rl);
usr/src/tools/smatch/src/smatch_extra.c
93
call_extra_hooks(extra_mod_hooks, name, sym, expr, state);
usr/src/tools/smatch/src/smatch_extra.c
940
static void clear_the_pointed_at(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
947
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_extra.c
959
set_extra_mod(tmp->name, tmp->sym, expr, alloc_estate_whole(estate_type(tmp->state)));
usr/src/tools/smatch/src/smatch_extra.c
96
void call_extra_nomod_hooks(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_extra.c
966
static int is_const_param(struct expression *expr, int param)
usr/src/tools/smatch/src/smatch_extra.c
970
type = get_arg_type(expr, param);
usr/src/tools/smatch/src/smatch_extra.c
978
static void match_function_call(struct expression *expr)
usr/src/tools/smatch/src/smatch_extra.c
98
call_extra_hooks(extra_nomod_hooks, name, sym, expr, state);
usr/src/tools/smatch/src/smatch_extra.c
987
if (inlinable(expr->fn))
usr/src/tools/smatch/src/smatch_extra.c
990
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/smatch_extra.c
992
if (is_const_param(expr->fn, param))
usr/src/tools/smatch/src/smatch_extra.h
103
int get_implied_rl(struct expression *expr, struct range_list **rl);
usr/src/tools/smatch/src/smatch_extra.h
104
int get_absolute_rl(struct expression *expr, struct range_list **rl);
usr/src/tools/smatch/src/smatch_extra.h
105
void set_real_absolute(struct expression *expr, struct smatch_state *state);
usr/src/tools/smatch/src/smatch_extra.h
106
int get_real_absolute_rl(struct expression *expr, struct range_list **rl);
usr/src/tools/smatch/src/smatch_extra.h
107
struct range_list *var_to_absolute_rl(struct expression *expr);
usr/src/tools/smatch/src/smatch_extra.h
108
int custom_get_absolute_rl(struct expression *expr,
usr/src/tools/smatch/src/smatch_extra.h
109
struct range_list *(*fn)(struct expression *expr),
usr/src/tools/smatch/src/smatch_extra.h
160
struct smatch_state *get_implied_estate(struct expression *expr);
usr/src/tools/smatch/src/smatch_extra.h
167
bool is_impossible_variable(struct expression *expr);
usr/src/tools/smatch/src/smatch_extra.h
168
struct sm_state *get_extra_sm_state(struct expression *expr);
usr/src/tools/smatch/src/smatch_extra.h
169
struct smatch_state *get_extra_state(struct expression *expr);
usr/src/tools/smatch/src/smatch_extra.h
170
void call_extra_mod_hooks(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state);
usr/src/tools/smatch/src/smatch_extra.h
171
void set_extra_mod(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state);
usr/src/tools/smatch/src/smatch_extra.h
172
void set_extra_expr_mod(struct expression *expr, struct smatch_state *state);
usr/src/tools/smatch/src/smatch_extra.h
173
void set_extra_nomod(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state);
usr/src/tools/smatch/src/smatch_extra.h
174
void set_extra_nomod_vsl(const char *name, struct symbol *sym, struct var_sym_list *vsl, struct expression *expr, struct smatch_state *state);
usr/src/tools/smatch/src/smatch_extra.h
175
void set_extra_expr_nomod(struct expression *expr, struct smatch_state *state);
usr/src/tools/smatch/src/smatch_extra.h
176
void set_extra_mod_helper(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state);
usr/src/tools/smatch/src/smatch_extra.h
180
void add_extra_mod_hook(void (*fn)(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state));
usr/src/tools/smatch/src/smatch_extra.h
181
void add_extra_nomod_hook(void (*fn)(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state));
usr/src/tools/smatch/src/smatch_extra.h
182
int implied_not_equal(struct expression *expr, long long val);
usr/src/tools/smatch/src/smatch_extra.h
185
int parent_is_null(struct expression *expr);
usr/src/tools/smatch/src/smatch_extra.h
188
int parent_is_free(struct expression *expr);
usr/src/tools/smatch/src/smatch_extra.h
203
void remove_from_equiv_expr(struct expression *expr);
usr/src/tools/smatch/src/smatch_extra.h
204
void set_equiv_state_expr(int id, struct expression *expr, struct smatch_state *state);
usr/src/tools/smatch/src/smatch_extra.h
213
struct expression *preop_expression(struct expression *expr, int op);
usr/src/tools/smatch/src/smatch_extra.h
214
struct expression *deref_expression(struct expression *expr);
usr/src/tools/smatch/src/smatch_extra.h
222
struct expression *unknown_value_expression(struct expression *expr);
usr/src/tools/smatch/src/smatch_extra.h
223
int is_fake_call(struct expression *expr);
usr/src/tools/smatch/src/smatch_extra.h
227
void expr_set_parent_expr(struct expression *expr, struct expression *parent);
usr/src/tools/smatch/src/smatch_extra.h
228
void expr_set_parent_stmt(struct expression *expr, struct statement *parent);
usr/src/tools/smatch/src/smatch_extra.h
229
struct expression *expr_get_parent_expr(struct expression *expr);
usr/src/tools/smatch/src/smatch_extra.h
230
struct statement *expr_get_parent_stmt(struct expression *expr);
usr/src/tools/smatch/src/smatch_extra.h
236
struct smatch_state *get_real_absolute_state(struct expression *expr);
usr/src/tools/smatch/src/smatch_extra.h
240
void __save_imaginary_state(struct expression *expr, struct range_list *true_rl, struct range_list *false_rl);
usr/src/tools/smatch/src/smatch_extra.h
241
int get_imaginary_absolute(struct expression *expr, struct range_list **rl);
usr/src/tools/smatch/src/smatch_flow.c
1224
struct expression *expr;
usr/src/tools/smatch/src/smatch_flow.c
1226
FOR_EACH_PTR(expr_list, expr) {
usr/src/tools/smatch/src/smatch_flow.c
1227
expr_set_parent_expr(expr, parent);
usr/src/tools/smatch/src/smatch_flow.c
1228
__split_expr(expr);
usr/src/tools/smatch/src/smatch_flow.c
1230
} END_FOR_EACH_PTR(expr);
usr/src/tools/smatch/src/smatch_flow.c
1257
typedef void (fake_cb)(struct expression *expr);
usr/src/tools/smatch/src/smatch_flow.c
1259
static int member_to_number(struct expression *expr, struct ident *member)
usr/src/tools/smatch/src/smatch_flow.c
1269
type = get_type(expr);
usr/src/tools/smatch/src/smatch_flow.c
1284
static struct ident *number_to_member(struct expression *expr, int num)
usr/src/tools/smatch/src/smatch_flow.c
1289
type = get_type(expr);
usr/src/tools/smatch/src/smatch_flow.c
1303
static void set_inner_struct_members(struct expression *expr, struct symbol *member)
usr/src/tools/smatch/src/smatch_flow.c
1310
expr = member_expression(expr, '.', member->ident);
usr/src/tools/smatch/src/smatch_flow.c
1319
edge_member = member_expression(expr, '.', tmp->ident);
usr/src/tools/smatch/src/smatch_flow.c
1324
set_inner_struct_members(expr, tmp);
usr/src/tools/smatch/src/smatch_flow.c
1338
static void set_unset_to_zero(struct symbol *type, struct expression *expr)
usr/src/tools/smatch/src/smatch_flow.c
1345
if (expr->type == EXPR_PREOP && expr->op == '&') {
usr/src/tools/smatch/src/smatch_flow.c
1346
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_flow.c
1356
member = member_expression(expr, op, tmp->ident);
usr/src/tools/smatch/src/smatch_flow.c
1362
set_inner_struct_members(expr, tmp);
usr/src/tools/smatch/src/smatch_flow.c
155
int is_assigned_call(struct expression *expr)
usr/src/tools/smatch/src/smatch_flow.c
157
struct expression *parent = expr_get_parent_expr(expr);
usr/src/tools/smatch/src/smatch_flow.c
162
strip_expr(parent->right) == expr)
usr/src/tools/smatch/src/smatch_flow.c
168
static int is_inline_func(struct expression *expr)
usr/src/tools/smatch/src/smatch_flow.c
170
if (expr->type != EXPR_SYMBOL || !expr->symbol)
usr/src/tools/smatch/src/smatch_flow.c
172
if (expr->symbol->ctype.modifiers & MOD_INLINE)
usr/src/tools/smatch/src/smatch_flow.c
177
static int is_noreturn_func(struct expression *expr)
usr/src/tools/smatch/src/smatch_flow.c
179
if (expr->type != EXPR_SYMBOL || !expr->symbol)
usr/src/tools/smatch/src/smatch_flow.c
181
if (expr->symbol->ctype.modifiers & MOD_NORETURN)
usr/src/tools/smatch/src/smatch_flow.c
188
int inlinable(struct expression *expr)
usr/src/tools/smatch/src/smatch_flow.c
196
if (expr->type != EXPR_SYMBOL || !expr->symbol)
usr/src/tools/smatch/src/smatch_flow.c
198
if (is_no_inline_function(expr->symbol->ident->name))
usr/src/tools/smatch/src/smatch_flow.c
200
sym = get_base_type(expr->symbol);
usr/src/tools/smatch/src/smatch_flow.c
228
struct expression *expr;
usr/src/tools/smatch/src/smatch_flow.c
230
FOR_EACH_PTR(post_op_stack, expr) {
usr/src/tools/smatch/src/smatch_flow.c
231
__pass_to_client(expr, OP_HOOK);
usr/src/tools/smatch/src/smatch_flow.c
232
} END_FOR_EACH_PTR(expr);
usr/src/tools/smatch/src/smatch_flow.c
237
static int handle_comma_assigns(struct expression *expr)
usr/src/tools/smatch/src/smatch_flow.c
242
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_flow.c
249
assign = assign_expression(expr->left, '=', right->right);
usr/src/tools/smatch/src/smatch_flow.c
256
static int handle_postop_assigns(struct expression *expr)
usr/src/tools/smatch/src/smatch_flow.c
261
left = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_flow.c
269
assign = assign_expression(fake_left, '=', expr->right);
usr/src/tools/smatch/src/smatch_flow.c
272
__split_expr(expr->left);
usr/src/tools/smatch/src/smatch_flow.c
277
static int prev_expression_is_getting_address(struct expression *expr)
usr/src/tools/smatch/src/smatch_flow.c
282
parent = expr_get_parent_expr(expr);
usr/src/tools/smatch/src/smatch_flow.c
295
expr = parent;
usr/src/tools/smatch/src/smatch_flow.c
299
static void handle_builtin_overflow_func(struct expression *expr)
usr/src/tools/smatch/src/smatch_flow.c
304
if (sym_name_is("__builtin_add_overflow", expr->fn))
usr/src/tools/smatch/src/smatch_flow.c
306
else if (sym_name_is("__builtin_sub_overflow", expr->fn))
usr/src/tools/smatch/src/smatch_flow.c
308
else if (sym_name_is("__builtin_mul_overflow", expr->fn))
usr/src/tools/smatch/src/smatch_flow.c
313
a = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/smatch_flow.c
314
b = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/smatch_flow.c
315
res = get_argument_from_call_expr(expr->args, 2);
usr/src/tools/smatch/src/smatch_flow.c
321
static int handle__builtin_choose_expr(struct expression *expr)
usr/src/tools/smatch/src/smatch_flow.c
326
if (!sym_name_is("__builtin_choose_expr", expr->fn))
usr/src/tools/smatch/src/smatch_flow.c
329
const_expr = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/smatch_flow.c
330
expr1 = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/smatch_flow.c
331
expr2 = get_argument_from_call_expr(expr->args, 2);
usr/src/tools/smatch/src/smatch_flow.c
342
static int handle__builtin_choose_expr_assigns(struct expression *expr)
usr/src/tools/smatch/src/smatch_flow.c
347
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_flow.c
360
fake = assign_expression(expr->left, '=', sval.value ? expr1 : expr2);
usr/src/tools/smatch/src/smatch_flow.c
365
void __split_expr(struct expression *expr)
usr/src/tools/smatch/src/smatch_flow.c
367
if (!expr)
usr/src/tools/smatch/src/smatch_flow.c
372
if (__in_fake_assign && expr->type != EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_flow.c
377
push_expression(&big_expression_stack, expr);
usr/src/tools/smatch/src/smatch_flow.c
378
set_position(expr->pos);
usr/src/tools/smatch/src/smatch_flow.c
379
__pass_to_client(expr, EXPR_HOOK);
usr/src/tools/smatch/src/smatch_flow.c
381
switch (expr->type) {
usr/src/tools/smatch/src/smatch_flow.c
383
expr_set_parent_expr(expr->unop, expr);
usr/src/tools/smatch/src/smatch_flow.c
385
if (expr->op == '*' &&
usr/src/tools/smatch/src/smatch_flow.c
386
!prev_expression_is_getting_address(expr))
usr/src/tools/smatch/src/smatch_flow.c
387
__pass_to_client(expr, DEREF_HOOK);
usr/src/tools/smatch/src/smatch_flow.c
388
__split_expr(expr->unop);
usr/src/tools/smatch/src/smatch_flow.c
389
__pass_to_client(expr, OP_HOOK);
usr/src/tools/smatch/src/smatch_flow.c
392
expr_set_parent_expr(expr->unop, expr);
usr/src/tools/smatch/src/smatch_flow.c
394
__split_expr(expr->unop);
usr/src/tools/smatch/src/smatch_flow.c
395
push_expression(&post_op_stack, expr);
usr/src/tools/smatch/src/smatch_flow.c
399
if (expr->statement && !expr->statement) {
usr/src/tools/smatch/src/smatch_flow.c
400
stmt_set_parent_stmt(expr->statement,
usr/src/tools/smatch/src/smatch_flow.c
403
__split_stmt(expr->statement);
usr/src/tools/smatch/src/smatch_flow.c
408
expr_set_parent_expr(expr->left, expr);
usr/src/tools/smatch/src/smatch_flow.c
409
expr_set_parent_expr(expr->right, expr);
usr/src/tools/smatch/src/smatch_flow.c
411
__pass_to_client(expr, LOGIC_HOOK);
usr/src/tools/smatch/src/smatch_flow.c
412
__handle_logic(expr);
usr/src/tools/smatch/src/smatch_flow.c
415
expr_set_parent_expr(expr->left, expr);
usr/src/tools/smatch/src/smatch_flow.c
416
expr_set_parent_expr(expr->right, expr);
usr/src/tools/smatch/src/smatch_flow.c
418
__pass_to_client(expr, BINOP_HOOK);
usr/src/tools/smatch/src/smatch_flow.c
420
expr_set_parent_expr(expr->left, expr);
usr/src/tools/smatch/src/smatch_flow.c
421
expr_set_parent_expr(expr->right, expr);
usr/src/tools/smatch/src/smatch_flow.c
423
__split_expr(expr->left);
usr/src/tools/smatch/src/smatch_flow.c
425
__split_expr(expr->right);
usr/src/tools/smatch/src/smatch_flow.c
430
expr_set_parent_expr(expr->left, expr);
usr/src/tools/smatch/src/smatch_flow.c
431
expr_set_parent_expr(expr->right, expr);
usr/src/tools/smatch/src/smatch_flow.c
433
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_flow.c
437
__pass_to_client(expr, RAW_ASSIGNMENT_HOOK);
usr/src/tools/smatch/src/smatch_flow.c
440
if (__handle_condition_assigns(expr))
usr/src/tools/smatch/src/smatch_flow.c
443
if (__handle_select_assigns(expr))
usr/src/tools/smatch/src/smatch_flow.c
446
if (__handle_expr_statement_assigns(expr))
usr/src/tools/smatch/src/smatch_flow.c
449
if (handle_comma_assigns(expr))
usr/src/tools/smatch/src/smatch_flow.c
451
if (handle__builtin_choose_expr_assigns(expr))
usr/src/tools/smatch/src/smatch_flow.c
453
if (handle_postop_assigns(expr))
usr/src/tools/smatch/src/smatch_flow.c
456
__split_expr(expr->right);
usr/src/tools/smatch/src/smatch_flow.c
458
__pass_to_client(expr, GLOBAL_ASSIGNMENT_HOOK);
usr/src/tools/smatch/src/smatch_flow.c
460
__pass_to_client(expr, ASSIGNMENT_HOOK);
usr/src/tools/smatch/src/smatch_flow.c
462
__fake_struct_member_assignments(expr);
usr/src/tools/smatch/src/smatch_flow.c
465
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_flow.c
466
if (expr->op == '=' && right->type == EXPR_CALL)
usr/src/tools/smatch/src/smatch_flow.c
467
__pass_to_client(expr, CALL_ASSIGNMENT_HOOK);
usr/src/tools/smatch/src/smatch_flow.c
470
get_macro_name(expr->pos) != get_macro_name(right->pos))
usr/src/tools/smatch/src/smatch_flow.c
471
__pass_to_client(expr, MACRO_ASSIGNMENT_HOOK);
usr/src/tools/smatch/src/smatch_flow.c
474
__pass_to_client(expr, ASSIGNMENT_HOOK_AFTER);
usr/src/tools/smatch/src/smatch_flow.c
475
__split_expr(expr->left);
usr/src/tools/smatch/src/smatch_flow.c
479
expr_set_parent_expr(expr->deref, expr);
usr/src/tools/smatch/src/smatch_flow.c
481
__pass_to_client(expr, DEREF_HOOK);
usr/src/tools/smatch/src/smatch_flow.c
482
__split_expr(expr->deref);
usr/src/tools/smatch/src/smatch_flow.c
485
expr_set_parent_expr(expr->base, expr);
usr/src/tools/smatch/src/smatch_flow.c
487
__split_expr(expr->base);
usr/src/tools/smatch/src/smatch_flow.c
491
expr_set_parent_expr(expr->cast_expression, expr);
usr/src/tools/smatch/src/smatch_flow.c
493
__pass_to_client(expr, CAST_HOOK);
usr/src/tools/smatch/src/smatch_flow.c
494
__split_expr(expr->cast_expression);
usr/src/tools/smatch/src/smatch_flow.c
497
if (expr->cast_expression)
usr/src/tools/smatch/src/smatch_flow.c
498
__pass_to_client(strip_parens(expr->cast_expression),
usr/src/tools/smatch/src/smatch_flow.c
506
expr_set_parent_expr(expr->conditional, expr);
usr/src/tools/smatch/src/smatch_flow.c
507
expr_set_parent_expr(expr->cond_true, expr);
usr/src/tools/smatch/src/smatch_flow.c
508
expr_set_parent_expr(expr->cond_false, expr);
usr/src/tools/smatch/src/smatch_flow.c
510
if (known_condition_true(expr->conditional)) {
usr/src/tools/smatch/src/smatch_flow.c
511
__split_expr(expr->cond_true);
usr/src/tools/smatch/src/smatch_flow.c
514
if (known_condition_false(expr->conditional)) {
usr/src/tools/smatch/src/smatch_flow.c
515
__split_expr(expr->cond_false);
usr/src/tools/smatch/src/smatch_flow.c
518
__pass_to_client(expr, SELECT_HOOK);
usr/src/tools/smatch/src/smatch_flow.c
519
__split_whole_condition(expr->conditional);
usr/src/tools/smatch/src/smatch_flow.c
520
__split_expr(expr->cond_true);
usr/src/tools/smatch/src/smatch_flow.c
523
__split_expr(expr->cond_false);
usr/src/tools/smatch/src/smatch_flow.c
527
expr_set_parent_expr(expr->fn, expr);
usr/src/tools/smatch/src/smatch_flow.c
529
if (sym_name_is("__builtin_constant_p", expr->fn))
usr/src/tools/smatch/src/smatch_flow.c
531
if (handle__builtin_choose_expr(expr))
usr/src/tools/smatch/src/smatch_flow.c
533
__split_expr(expr->fn);
usr/src/tools/smatch/src/smatch_flow.c
534
split_expr_list(expr->args, expr);
usr/src/tools/smatch/src/smatch_flow.c
535
if (is_inline_func(expr->fn))
usr/src/tools/smatch/src/smatch_flow.c
536
add_inline_function(expr->fn->symbol);
usr/src/tools/smatch/src/smatch_flow.c
537
if (inlinable(expr->fn))
usr/src/tools/smatch/src/smatch_flow.c
540
__pass_to_client(expr, FUNCTION_CALL_HOOK_BEFORE);
usr/src/tools/smatch/src/smatch_flow.c
541
__pass_to_client(expr, FUNCTION_CALL_HOOK);
usr/src/tools/smatch/src/smatch_flow.c
543
if (inlinable(expr->fn)) {
usr/src/tools/smatch/src/smatch_flow.c
544
parse_inline(expr);
usr/src/tools/smatch/src/smatch_flow.c
546
__pass_to_client(expr, CALL_HOOK_AFTER_INLINE);
usr/src/tools/smatch/src/smatch_flow.c
547
if (is_noreturn_func(expr->fn))
usr/src/tools/smatch/src/smatch_flow.c
549
handle_builtin_overflow_func(expr);
usr/src/tools/smatch/src/smatch_flow.c
552
split_expr_list(expr->expr_list, expr);
usr/src/tools/smatch/src/smatch_flow.c
555
expr_set_parent_expr(expr->ident_expression, expr);
usr/src/tools/smatch/src/smatch_flow.c
556
__split_expr(expr->ident_expression);
usr/src/tools/smatch/src/smatch_flow.c
559
expr_set_parent_expr(expr->idx_expression, expr);
usr/src/tools/smatch/src/smatch_flow.c
560
__split_expr(expr->idx_expression);
usr/src/tools/smatch/src/smatch_flow.c
563
expr_set_parent_expr(expr->init_expr, expr);
usr/src/tools/smatch/src/smatch_flow.c
564
__split_expr(expr->init_expr);
usr/src/tools/smatch/src/smatch_flow.c
567
__pass_to_client(expr, SYM_HOOK);
usr/src/tools/smatch/src/smatch_flow.c
570
__pass_to_client(expr, STRING_HOOK);
usr/src/tools/smatch/src/smatch_flow.c
575
__pass_to_client(expr, EXPR_HOOK_AFTER);
usr/src/tools/smatch/src/smatch_flow.c
581
struct expression *expr;
usr/src/tools/smatch/src/smatch_flow.c
584
expr = strip_expr(stmt->iterator_pre_condition);
usr/src/tools/smatch/src/smatch_flow.c
585
if (!expr)
usr/src/tools/smatch/src/smatch_flow.c
586
expr = stmt->iterator_post_condition;
usr/src/tools/smatch/src/smatch_flow.c
587
if (!expr) {
usr/src/tools/smatch/src/smatch_flow.c
592
if (get_value(expr, &sval) && sval.value != 0)
usr/src/tools/smatch/src/smatch_flow.c
73
static void parse_inline(struct expression *expr);
usr/src/tools/smatch/src/smatch_flow.c
746
struct expression *expr;
usr/src/tools/smatch/src/smatch_flow.c
749
FOR_EACH_PTR(expr_list, expr) {
usr/src/tools/smatch/src/smatch_flow.c
757
__split_expr(expr);
usr/src/tools/smatch/src/smatch_flow.c
760
} END_FOR_EACH_PTR(expr);
usr/src/tools/smatch/src/smatch_fresh_alloc.c
104
bool is_fresh_alloc(struct expression *expr)
usr/src/tools/smatch/src/smatch_fresh_alloc.c
109
if (!expr)
usr/src/tools/smatch/src/smatch_fresh_alloc.c
112
if (get_implied_value_fast(expr, &sval) && sval.value == 0)
usr/src/tools/smatch/src/smatch_fresh_alloc.c
115
if (get_state_expr(my_id, expr) == &fresh)
usr/src/tools/smatch/src/smatch_fresh_alloc.c
118
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_fresh_alloc.c
120
if (fresh_from_db(expr))
usr/src/tools/smatch/src/smatch_fresh_alloc.c
124
if (sym_name_is(kernel_allocation_funcs[i].fn, expr->fn))
usr/src/tools/smatch/src/smatch_fresh_alloc.c
130
static void record_alloc_func(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_fresh_alloc.c
132
if (!is_fresh_alloc(expr))
usr/src/tools/smatch/src/smatch_fresh_alloc.c
137
static void set_unfresh(struct expression *expr)
usr/src/tools/smatch/src/smatch_fresh_alloc.c
141
sm = get_sm_state_expr(my_id, expr);
usr/src/tools/smatch/src/smatch_fresh_alloc.c
147
set_state_expr(my_id, expr, &undefined);
usr/src/tools/smatch/src/smatch_fresh_alloc.c
150
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_fresh_alloc.c
152
set_unfresh(expr->right);
usr/src/tools/smatch/src/smatch_fresh_alloc.c
155
static void match_call(struct expression *expr)
usr/src/tools/smatch/src/smatch_fresh_alloc.c
159
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/smatch_fresh_alloc.c
165
static void set_fresh(struct expression *expr)
usr/src/tools/smatch/src/smatch_fresh_alloc.c
169
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_fresh_alloc.c
170
if (expr->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_fresh_alloc.c
172
if (expr == handled)
usr/src/tools/smatch/src/smatch_fresh_alloc.c
175
get_absolute_rl(expr, &rl);
usr/src/tools/smatch/src/smatch_fresh_alloc.c
179
set_state_expr(my_id, expr, &fresh);
usr/src/tools/smatch/src/smatch_fresh_alloc.c
180
handled = expr;
usr/src/tools/smatch/src/smatch_fresh_alloc.c
183
static void returns_fresh_alloc(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_fresh_alloc.c
187
if (expr->type != EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_fresh_alloc.c
190
set_fresh(expr->left);
usr/src/tools/smatch/src/smatch_fresh_alloc.c
193
static void match_alloc(const char *fn, struct expression *expr, void *_size_arg)
usr/src/tools/smatch/src/smatch_fresh_alloc.c
195
set_fresh(expr->left);
usr/src/tools/smatch/src/smatch_function_hooks.c
1014
set_extra_expr_mod(expr->left, alloc_estate_whole(get_type(expr->left)));
usr/src/tools/smatch/src/smatch_function_hooks.c
1027
static int handle_implied_return(struct expression *expr)
usr/src/tools/smatch/src/smatch_function_hooks.c
1031
if (!get_implied_return(expr->right, &rl))
usr/src/tools/smatch/src/smatch_function_hooks.c
1033
rl = cast_rl(get_type(expr->left), rl);
usr/src/tools/smatch/src/smatch_function_hooks.c
1034
set_extra_expr_mod(expr->left, alloc_estate_rl(rl));
usr/src/tools/smatch/src/smatch_function_hooks.c
1038
static void match_assign_call(struct expression *expr)
usr/src/tools/smatch/src/smatch_function_hooks.c
1046
if (expr->op != '=')
usr/src/tools/smatch/src/smatch_function_hooks.c
1049
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_function_hooks.c
1051
handled |= db_return_states_assign(expr);
usr/src/tools/smatch/src/smatch_function_hooks.c
1057
set_extra_expr_mod(expr->left, alloc_estate_whole(get_type(expr->left)));
usr/src/tools/smatch/src/smatch_function_hooks.c
1078
if (db_return_states_assign(expr) == 1)
usr/src/tools/smatch/src/smatch_function_hooks.c
1081
handled = assign_ranged_funcs(fn, expr, call_backs);
usr/src/tools/smatch/src/smatch_function_hooks.c
1082
handled |= handle_implied_return(expr);
usr/src/tools/smatch/src/smatch_function_hooks.c
1085
call_call_backs(call_backs, ASSIGN_CALL, fn, expr);
usr/src/tools/smatch/src/smatch_function_hooks.c
1091
get_absolute_rl(expr->right, &rl);
usr/src/tools/smatch/src/smatch_function_hooks.c
1092
rl = cast_rl(get_type(expr->left), rl);
usr/src/tools/smatch/src/smatch_function_hooks.c
1093
set_extra_expr_mod(expr->left, alloc_estate_rl(rl));
usr/src/tools/smatch/src/smatch_function_hooks.c
1130
if (type == INTERNAL && func_type_mismatch(db_info->expr, value))
usr/src/tools/smatch/src/smatch_function_hooks.c
1138
if (is_impossible_data(type, db_info->expr, param, key, value)) {
usr/src/tools/smatch/src/smatch_function_hooks.c
1144
param_limit_implications(db_info->expr, param, key, value, &db_info->implied);
usr/src/tools/smatch/src/smatch_function_hooks.c
1146
call_results_to_rl(db_info->expr, get_type(strip_expr(db_info->expr)), ret_str, &ret_range);
usr/src/tools/smatch/src/smatch_function_hooks.c
1147
ret_range = cast_rl(get_type(db_info->expr), ret_range);
usr/src/tools/smatch/src/smatch_function_hooks.c
1153
__add_return_comparison(strip_expr(db_info->expr), ret_str);
usr/src/tools/smatch/src/smatch_function_hooks.c
1154
__add_return_to_param_mapping(db_info->expr, ret_str);
usr/src/tools/smatch/src/smatch_function_hooks.c
1160
snprintf(buf, sizeof(buf), "return %p", db_info->expr);
usr/src/tools/smatch/src/smatch_function_hooks.c
1168
tmp->callback(db_info->expr, param, key, value);
usr/src/tools/smatch/src/smatch_function_hooks.c
1175
static void db_return_states(struct expression *expr)
usr/src/tools/smatch/src/smatch_function_hooks.c
1185
db_info.expr = expr;
usr/src/tools/smatch/src/smatch_function_hooks.c
1193
expr, db_return_states_callback, &db_info);
usr/src/tools/smatch/src/smatch_function_hooks.c
1206
call_return_states_after_hooks(expr);
usr/src/tools/smatch/src/smatch_function_hooks.c
1209
static int is_condition_call(struct expression *expr)
usr/src/tools/smatch/src/smatch_function_hooks.c
1214
if (expr == tmp || expr_get_parent_expr(expr) == tmp)
usr/src/tools/smatch/src/smatch_function_hooks.c
1216
if (tmp->pos.line < expr->pos.line)
usr/src/tools/smatch/src/smatch_function_hooks.c
1223
static void db_return_states_call(struct expression *expr)
usr/src/tools/smatch/src/smatch_function_hooks.c
1228
if (is_assigned_call(expr))
usr/src/tools/smatch/src/smatch_function_hooks.c
1230
if (is_condition_call(expr))
usr/src/tools/smatch/src/smatch_function_hooks.c
1232
db_return_states(expr);
usr/src/tools/smatch/src/smatch_function_hooks.c
1235
static void match_function_call(struct expression *expr)
usr/src/tools/smatch/src/smatch_function_hooks.c
1240
fn = strip_expr(expr->fn);
usr/src/tools/smatch/src/smatch_function_hooks.c
1245
fn->symbol->ident->name, expr);
usr/src/tools/smatch/src/smatch_function_hooks.c
1247
db_return_states_call(expr);
usr/src/tools/smatch/src/smatch_function_hooks.c
1250
static void match_macro_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_function_hooks.c
1256
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_function_hooks.c
1261
call_call_backs(call_backs, MACRO_ASSIGN, macro, expr);
usr/src/tools/smatch/src/smatch_function_hooks.c
1262
call_call_backs(call_backs, MACRO_ASSIGN_EXTRA, macro, expr);
usr/src/tools/smatch/src/smatch_function_hooks.c
1265
int get_implied_return(struct expression *expr, struct range_list **rl)
usr/src/tools/smatch/src/smatch_function_hooks.c
1274
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_function_hooks.c
1275
fn = expr_to_var(expr->fn);
usr/src/tools/smatch/src/smatch_function_hooks.c
1283
(tmp->u.implied_return)(expr, tmp->info, rl);
usr/src/tools/smatch/src/smatch_function_hooks.c
184
static void call_return_states_after_hooks(struct expression *expr)
usr/src/tools/smatch/src/smatch_function_hooks.c
191
__pass_to_client(expr, FUNCTION_CALL_HOOK_AFTER_DB);
usr/src/tools/smatch/src/smatch_function_hooks.c
195
const char *fn, struct expression *expr)
usr/src/tools/smatch/src/smatch_function_hooks.c
202
(tmp->u.call_back)(fn, expr, tmp->info);
usr/src/tools/smatch/src/smatch_function_hooks.c
247
static int assign_ranged_funcs(const char *fn, struct expression *expr,
usr/src/tools/smatch/src/smatch_function_hooks.c
265
var_name = expr_to_var_sym(expr->left, &sym);
usr/src/tools/smatch/src/smatch_function_hooks.c
279
call_ranged_call_backs(same_range_call_backs, fn, expr->right, expr);
usr/src/tools/smatch/src/smatch_function_hooks.c
283
rl = cast_rl(get_type(expr->left), rl);
usr/src/tools/smatch/src/smatch_function_hooks.c
285
set_extra_mod(var_name, sym, expr->left, estate);
usr/src/tools/smatch/src/smatch_function_hooks.c
303
static void call_implies_callbacks(int comparison, struct expression *expr, sval_t sval, int left, struct stree **implied_true, struct stree **implied_false)
usr/src/tools/smatch/src/smatch_function_hooks.c
315
if (expr->fn->type != EXPR_SYMBOL || !expr->fn->symbol)
usr/src/tools/smatch/src/smatch_function_hooks.c
317
fn = expr->fn->symbol->ident->name;
usr/src/tools/smatch/src/smatch_function_hooks.c
318
call_backs = search_callback(func_hash, (char *)expr->fn->symbol->ident->name);
usr/src/tools/smatch/src/smatch_function_hooks.c
330
(tmp->u.ranged)(fn, expr, NULL, tmp->info);
usr/src/tools/smatch/src/smatch_function_hooks.c
343
(tmp->u.ranged)(fn, expr, NULL, tmp->info);
usr/src/tools/smatch/src/smatch_function_hooks.c
356
struct expression *expr;
usr/src/tools/smatch/src/smatch_function_hooks.c
388
static bool fake_a_param_assignment(struct expression *expr, const char *return_str, struct smatch_state *orig)
usr/src/tools/smatch/src/smatch_function_hooks.c
396
if (expr->type != EXPR_ASSIGNMENT || expr->op != '=')
usr/src/tools/smatch/src/smatch_function_hooks.c
398
left = expr->left;
usr/src/tools/smatch/src/smatch_function_hooks.c
399
right = expr->right;
usr/src/tools/smatch/src/smatch_function_hooks.c
468
set_extra_expr_nomod(expr, alloc_estate_rl(rl));
usr/src/tools/smatch/src/smatch_function_hooks.c
477
struct expression *expr = db_info->expr->left;
usr/src/tools/smatch/src/smatch_function_hooks.c
483
state = alloc_estate_rl(cast_rl(get_type(expr), clone_rl(estate_rl(db_info->ret_state))));
usr/src/tools/smatch/src/smatch_function_hooks.c
484
state = get_mtag_return(db_info->expr, state);
usr/src/tools/smatch/src/smatch_function_hooks.c
488
set_real_absolute(expr, state);
usr/src/tools/smatch/src/smatch_function_hooks.c
489
set_extra_expr_mod(expr, state);
usr/src/tools/smatch/src/smatch_function_hooks.c
497
struct expression *expr = db_info->expr->left;
usr/src/tools/smatch/src/smatch_function_hooks.c
503
state = alloc_estate_rl(cast_rl(get_type(expr), clone_rl(estate_rl(db_info->ret_state))));
usr/src/tools/smatch/src/smatch_function_hooks.c
504
if (!fake_a_param_assignment(db_info->expr, db_info->ret_str, state))
usr/src/tools/smatch/src/smatch_function_hooks.c
505
set_extra_expr_mod(expr, state);
usr/src/tools/smatch/src/smatch_function_hooks.c
513
struct expression *expr = db_info->var_expr;
usr/src/tools/smatch/src/smatch_function_hooks.c
519
state = alloc_estate_rl(cast_rl(get_type(expr), clone_rl(estate_rl(db_info->ret_state))));
usr/src/tools/smatch/src/smatch_function_hooks.c
520
set_extra_expr_nomod(expr, state);
usr/src/tools/smatch/src/smatch_function_hooks.c
547
static int impossible_limit(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_function_hooks.c
555
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_function_hooks.c
556
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_function_hooks.c
557
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_function_hooks.c
560
arg = get_argument_from_call_expr(expr->args, param);
usr/src/tools/smatch/src/smatch_function_hooks.c
568
compare_type = get_arg_type(expr->fn, param);
usr/src/tools/smatch/src/smatch_function_hooks.c
592
call_results_to_rl(expr, compare_type, value, &limit);
usr/src/tools/smatch/src/smatch_function_hooks.c
602
static int is_impossible_data(int type, struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_function_hooks.c
604
if (type == PARAM_LIMIT && impossible_limit(expr, param, key, value))
usr/src/tools/smatch/src/smatch_function_hooks.c
606
if (type == COMPARE_LIMIT && param_compare_limit_is_impossible(expr, param, key, value)) {
usr/src/tools/smatch/src/smatch_function_hooks.c
614
static int func_type_mismatch(struct expression *expr, const char *value)
usr/src/tools/smatch/src/smatch_function_hooks.c
622
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_function_hooks.c
623
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_function_hooks.c
630
if (expr->fn->type == EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_function_hooks.c
633
type = get_type(expr->fn);
usr/src/tools/smatch/src/smatch_function_hooks.c
680
if (type == INTERNAL && func_type_mismatch(db_info->expr, value))
usr/src/tools/smatch/src/smatch_function_hooks.c
689
if (is_impossible_data(type, db_info->expr, param, key, value)) {
usr/src/tools/smatch/src/smatch_function_hooks.c
694
call_results_to_rl(db_info->expr, get_type(strip_expr(db_info->expr)), ret_str, &ret_range);
usr/src/tools/smatch/src/smatch_function_hooks.c
695
ret_range = cast_rl(get_type(db_info->expr), ret_range);
usr/src/tools/smatch/src/smatch_function_hooks.c
697
ret_range = alloc_whole_rl(get_type(db_info->expr));
usr/src/tools/smatch/src/smatch_function_hooks.c
707
param_limit_implications(db_info->expr, param, key, value, &db_info->implied);
usr/src/tools/smatch/src/smatch_function_hooks.c
714
param_limit_implications(db_info->expr, param, key, value, &db_info->implied);
usr/src/tools/smatch/src/smatch_function_hooks.c
719
handle_ret_equals_param(ret_str, ret_range, db_info->expr);
usr/src/tools/smatch/src/smatch_function_hooks.c
723
__add_return_comparison(strip_expr(db_info->expr), ret_str);
usr/src/tools/smatch/src/smatch_function_hooks.c
724
__add_return_to_param_mapping(db_info->expr, ret_str);
usr/src/tools/smatch/src/smatch_function_hooks.c
730
tmp->callback(db_info->expr, param, key, value);
usr/src/tools/smatch/src/smatch_function_hooks.c
764
db_info.expr = call_expr;
usr/src/tools/smatch/src/smatch_function_hooks.c
881
struct expression *expr;
usr/src/tools/smatch/src/smatch_function_hooks.c
885
expr = strip_expr(db_info->expr);
usr/src/tools/smatch/src/smatch_function_hooks.c
886
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_function_hooks.c
887
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_function_hooks.c
888
if (expr->type != EXPR_CALL ||
usr/src/tools/smatch/src/smatch_function_hooks.c
889
expr->fn->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_function_hooks.c
892
fn = expr->fn->symbol_name->name;
usr/src/tools/smatch/src/smatch_function_hooks.c
903
(tmp->u.ranged)(fn, expr, db_info->expr, tmp->info);
usr/src/tools/smatch/src/smatch_function_hooks.c
940
if (type == INTERNAL && func_type_mismatch(db_info->expr, value))
usr/src/tools/smatch/src/smatch_function_hooks.c
948
if (is_impossible_data(type, db_info->expr, param, key, value)) {
usr/src/tools/smatch/src/smatch_function_hooks.c
954
param_limit_implications(db_info->expr, param, key, value, &db_info->implied);
usr/src/tools/smatch/src/smatch_function_hooks.c
957
call_results_to_rl(db_info->expr->right, get_type(strip_expr(db_info->expr->right)), ret_str, &ret_range);
usr/src/tools/smatch/src/smatch_function_hooks.c
959
ret_range = alloc_whole_rl(get_type(strip_expr(db_info->expr->right)));
usr/src/tools/smatch/src/smatch_function_hooks.c
960
ret_range = cast_rl(get_type(db_info->expr->right), ret_range);
usr/src/tools/smatch/src/smatch_function_hooks.c
964
__add_return_comparison(strip_expr(db_info->expr->right), ret_str);
usr/src/tools/smatch/src/smatch_function_hooks.c
965
__add_comparison_info(db_info->expr->left, strip_expr(db_info->expr->right), ret_str);
usr/src/tools/smatch/src/smatch_function_hooks.c
966
__add_return_to_param_mapping(db_info->expr, ret_str);
usr/src/tools/smatch/src/smatch_function_hooks.c
973
tmp->callback(db_info->expr, param, key, value);
usr/src/tools/smatch/src/smatch_function_hooks.c
979
static int db_return_states_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_function_hooks.c
986
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_function_hooks.c
989
db_info.expr = expr;
usr/src/tools/smatch/src/smatch_function_ptrs.c
100
array = xxx_get_array_base(expr);
usr/src/tools/smatch/src/smatch_function_ptrs.c
109
type = get_type(expr);
usr/src/tools/smatch/src/smatch_function_ptrs.c
111
array = expr;
usr/src/tools/smatch/src/smatch_function_ptrs.c
120
expr = get_assigned_expr(expr);
usr/src/tools/smatch/src/smatch_function_ptrs.c
121
array = xxx_get_array_base(expr);
usr/src/tools/smatch/src/smatch_function_ptrs.c
155
char *get_returned_ptr(struct expression *expr)
usr/src/tools/smatch/src/smatch_function_ptrs.c
161
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_function_ptrs.c
163
if (!expr->fn || expr->fn->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_function_ptrs.c
166
type = get_type(expr);
usr/src/tools/smatch/src/smatch_function_ptrs.c
172
name = expr_to_var(expr->fn);
usr/src/tools/smatch/src/smatch_function_ptrs.c
180
char *get_fnptr_name(struct expression *expr)
usr/src/tools/smatch/src/smatch_function_ptrs.c
184
if (expr_is_zero(expr))
usr/src/tools/smatch/src/smatch_function_ptrs.c
187
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_function_ptrs.c
190
if (expr->type == EXPR_PREOP && expr->op == '*')
usr/src/tools/smatch/src/smatch_function_ptrs.c
191
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_function_ptrs.c
193
name = get_from__symbol_get(expr);
usr/src/tools/smatch/src/smatch_function_ptrs.c
197
name = get_array_ptr(expr);
usr/src/tools/smatch/src/smatch_function_ptrs.c
201
name = get_returned_ptr(expr);
usr/src/tools/smatch/src/smatch_function_ptrs.c
205
name = get_member_name(expr);
usr/src/tools/smatch/src/smatch_function_ptrs.c
209
if (expr->type == EXPR_SYMBOL) {
usr/src/tools/smatch/src/smatch_function_ptrs.c
215
param = get_param_num_from_sym(expr->symbol);
usr/src/tools/smatch/src/smatch_function_ptrs.c
221
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_function_ptrs.c
224
type = get_type(expr);
usr/src/tools/smatch/src/smatch_function_ptrs.c
232
return expr_to_var(expr);
usr/src/tools/smatch/src/smatch_function_ptrs.c
235
static void match_passes_function_pointer(struct expression *expr)
usr/src/tools/smatch/src/smatch_function_ptrs.c
246
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/smatch_function_ptrs.c
259
called_name = expr_to_var(expr->fn);
usr/src/tools/smatch/src/smatch_function_ptrs.c
286
static int can_hold_function_ptr(struct expression *expr)
usr/src/tools/smatch/src/smatch_function_ptrs.c
290
type = get_type(expr);
usr/src/tools/smatch/src/smatch_function_ptrs.c
30
static char *get_from__symbol_get(struct expression *expr)
usr/src/tools/smatch/src/smatch_function_ptrs.c
306
if (type == &ulong_ctype && expr->type == EXPR_DEREF)
usr/src/tools/smatch/src/smatch_function_ptrs.c
313
static void match_function_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_function_ptrs.c
323
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_function_ptrs.c
333
!can_hold_function_ptr(expr->left))
usr/src/tools/smatch/src/smatch_function_ptrs.c
337
ptr_name = get_fnptr_name(expr->left);
usr/src/tools/smatch/src/smatch_function_ptrs.c
369
static void match_returns_function_pointer(struct expression *expr)
usr/src/tools/smatch/src/smatch_function_ptrs.c
388
if (expr->type == EXPR_PREOP && expr->op == '&')
usr/src/tools/smatch/src/smatch_function_ptrs.c
389
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_function_ptrs.c
391
fn_name = get_fnptr_name(expr);
usr/src/tools/smatch/src/smatch_function_ptrs.c
40
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_function_ptrs.c
401
struct expression *expr;
usr/src/tools/smatch/src/smatch_function_ptrs.c
405
FOR_EACH_PTR(expr_list, expr) {
usr/src/tools/smatch/src/smatch_function_ptrs.c
406
if (expr->type == EXPR_INDEX && expr->idx_expression && expr->idx_expression->type == EXPR_INITIALIZER) {
usr/src/tools/smatch/src/smatch_function_ptrs.c
407
print_initializer_list(expr->idx_expression->expr_list, struct_type);
usr/src/tools/smatch/src/smatch_function_ptrs.c
410
if (expr->type != EXPR_IDENTIFIER)
usr/src/tools/smatch/src/smatch_function_ptrs.c
412
if (!expr->expr_ident)
usr/src/tools/smatch/src/smatch_function_ptrs.c
414
if (!expr->ident_expression ||
usr/src/tools/smatch/src/smatch_function_ptrs.c
415
expr->ident_expression->type != EXPR_SYMBOL ||
usr/src/tools/smatch/src/smatch_function_ptrs.c
416
!expr->ident_expression->symbol_name)
usr/src/tools/smatch/src/smatch_function_ptrs.c
418
base_type = get_type(expr->ident_expression);
usr/src/tools/smatch/src/smatch_function_ptrs.c
42
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_function_ptrs.c
422
struct_type->ident->name, expr->expr_ident->name);
usr/src/tools/smatch/src/smatch_function_ptrs.c
423
sql_insert_function_ptr(expr->ident_expression->symbol_name->name,
usr/src/tools/smatch/src/smatch_function_ptrs.c
425
} END_FOR_EACH_PTR(expr);
usr/src/tools/smatch/src/smatch_function_ptrs.c
44
if (!sym_name_is("__symbol_get", expr->fn))
usr/src/tools/smatch/src/smatch_function_ptrs.c
46
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/smatch_function_ptrs.c
53
static int xxx_is_array(struct expression *expr)
usr/src/tools/smatch/src/smatch_function_ptrs.c
57
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_function_ptrs.c
58
if (!expr)
usr/src/tools/smatch/src/smatch_function_ptrs.c
61
if (expr->type == EXPR_PREOP && expr->op == '*') {
usr/src/tools/smatch/src/smatch_function_ptrs.c
62
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_function_ptrs.c
63
if (!expr)
usr/src/tools/smatch/src/smatch_function_ptrs.c
65
if (expr->type == EXPR_BINOP && expr->op == '+')
usr/src/tools/smatch/src/smatch_function_ptrs.c
69
if (expr->type != EXPR_BINOP || expr->op != '+')
usr/src/tools/smatch/src/smatch_function_ptrs.c
72
type = get_type(expr->left);
usr/src/tools/smatch/src/smatch_function_ptrs.c
81
static struct expression *xxx_get_array_base(struct expression *expr)
usr/src/tools/smatch/src/smatch_function_ptrs.c
83
if (!xxx_is_array(expr))
usr/src/tools/smatch/src/smatch_function_ptrs.c
85
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_function_ptrs.c
86
if (expr->type == EXPR_PREOP && expr->op == '*')
usr/src/tools/smatch/src/smatch_function_ptrs.c
87
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_function_ptrs.c
88
if (expr->type != EXPR_BINOP || expr->op != '+')
usr/src/tools/smatch/src/smatch_function_ptrs.c
90
return strip_parens(expr->left);
usr/src/tools/smatch/src/smatch_function_ptrs.c
93
static char *get_array_ptr(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
1035
struct expression *get_last_expr_from_expression_stmt(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
1040
while (expr->type == EXPR_PREOP && expr->op == '(')
usr/src/tools/smatch/src/smatch_helper.c
1041
expr = expr->unop;
usr/src/tools/smatch/src/smatch_helper.c
1042
if (expr->type != EXPR_STATEMENT)
usr/src/tools/smatch/src/smatch_helper.c
1044
stmt = expr->statement;
usr/src/tools/smatch/src/smatch_helper.c
106
struct smatch_state *alloc_state_expr(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
1094
int get_param_num(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
1101
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_helper.c
111
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_helper.c
112
name = expr_to_str(expr);
usr/src/tools/smatch/src/smatch_helper.c
1146
int parent_is_gone(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
1152
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_helper.c
1153
var = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_helper.c
119
state->data = expr;
usr/src/tools/smatch/src/smatch_helper.c
136
struct expression *expr;
usr/src/tools/smatch/src/smatch_helper.c
142
FOR_EACH_PTR(args, expr) {
usr/src/tools/smatch/src/smatch_helper.c
144
return expr;
usr/src/tools/smatch/src/smatch_helper.c
146
} END_FOR_EACH_PTR(expr);
usr/src/tools/smatch/src/smatch_helper.c
150
struct expression *get_array_expr(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
155
if (expr->type != EXPR_BINOP || expr->op != '+')
usr/src/tools/smatch/src/smatch_helper.c
158
type = get_type(expr->left);
usr/src/tools/smatch/src/smatch_helper.c
162
return expr->left;
usr/src/tools/smatch/src/smatch_helper.c
166
parent = expr_get_parent_expr(expr);
usr/src/tools/smatch/src/smatch_helper.c
168
return expr->left;
usr/src/tools/smatch/src/smatch_helper.c
170
return expr->left;
usr/src/tools/smatch/src/smatch_helper.c
176
struct expression *expr, int len,
usr/src/tools/smatch/src/smatch_helper.c
179
if (!expr) {
usr/src/tools/smatch/src/smatch_helper.c
185
switch (expr->type) {
usr/src/tools/smatch/src/smatch_helper.c
190
deref = expr->deref;
usr/src/tools/smatch/src/smatch_helper.c
212
if (expr->member)
usr/src/tools/smatch/src/smatch_helper.c
213
append(buf, expr->member->name, len);
usr/src/tools/smatch/src/smatch_helper.c
220
if (expr->symbol_name)
usr/src/tools/smatch/src/smatch_helper.c
221
append(buf, expr->symbol_name->name, len);
usr/src/tools/smatch/src/smatch_helper.c
225
*sym_ptr = expr->symbol;
usr/src/tools/smatch/src/smatch_helper.c
231
if (get_expression_statement(expr)) {
usr/src/tools/smatch/src/smatch_helper.c
236
if (expr->op == '(') {
usr/src/tools/smatch/src/smatch_helper.c
237
if (expr->unop->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_helper.c
239
} else if (expr->op != '*' || !get_array_expr(expr->unop)) {
usr/src/tools/smatch/src/smatch_helper.c
240
tmp = show_special(expr->op);
usr/src/tools/smatch/src/smatch_helper.c
243
__get_variable_from_expr(sym_ptr, buf, expr->unop,
usr/src/tools/smatch/src/smatch_helper.c
246
if (expr->op == '(' && expr->unop->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_helper.c
249
if (expr->op == SPECIAL_DECREMENT ||
usr/src/tools/smatch/src/smatch_helper.c
250
expr->op == SPECIAL_INCREMENT)
usr/src/tools/smatch/src/smatch_helper.c
258
__get_variable_from_expr(sym_ptr, buf, expr->unop,
usr/src/tools/smatch/src/smatch_helper.c
260
tmp = show_special(expr->op);
usr/src/tools/smatch/src/smatch_helper.c
263
if (expr->op == SPECIAL_DECREMENT || expr->op == SPECIAL_INCREMENT)
usr/src/tools/smatch/src/smatch_helper.c
275
array_expr = get_array_expr(expr);
usr/src/tools/smatch/src/smatch_helper.c
280
__get_variable_from_expr(sym_ptr, buf, expr->left, len, complicated);
usr/src/tools/smatch/src/smatch_helper.c
281
snprintf(tmp, sizeof(tmp), " %s ", show_special(expr->op));
usr/src/tools/smatch/src/smatch_helper.c
284
__get_variable_from_expr(NULL, buf, expr->right, len, complicated);
usr/src/tools/smatch/src/smatch_helper.c
294
if (!get_value(expr, &sval))
usr/src/tools/smatch/src/smatch_helper.c
305
if (!get_value(expr, &sval))
usr/src/tools/smatch/src/smatch_helper.c
313
if (expr->string)
usr/src/tools/smatch/src/smatch_helper.c
314
append(buf, expr->string->data, len);
usr/src/tools/smatch/src/smatch_helper.c
322
__get_variable_from_expr(NULL, buf, expr->fn, len, complicated);
usr/src/tools/smatch/src/smatch_helper.c
325
FOR_EACH_PTR(expr->args, tmp) {
usr/src/tools/smatch/src/smatch_helper.c
336
expr->cast_expression, len,
usr/src/tools/smatch/src/smatch_helper.c
344
if (expr->cast_type && get_base_type(expr->cast_type)) {
usr/src/tools/smatch/src/smatch_helper.c
345
size = type_bytes(get_base_type(expr->cast_type));
usr/src/tools/smatch/src/smatch_helper.c
348
} else if (get_value(expr, &sval)) {
usr/src/tools/smatch/src/smatch_helper.c
356
if (expr->expr_ident)
usr/src/tools/smatch/src/smatch_helper.c
357
append(buf, expr->expr_ident->name, len);
usr/src/tools/smatch/src/smatch_helper.c
363
__get_variable_from_expr(NULL, buf, expr->conditional, len, complicated);
usr/src/tools/smatch/src/smatch_helper.c
365
if (expr->cond_true)
usr/src/tools/smatch/src/smatch_helper.c
366
__get_variable_from_expr(NULL, buf, expr->cond_true, len, complicated);
usr/src/tools/smatch/src/smatch_helper.c
368
__get_variable_from_expr(NULL, buf, expr->cond_false, len, complicated);
usr/src/tools/smatch/src/smatch_helper.c
373
snprintf(tmp, sizeof(tmp), "$expr_%p(%d)", expr, expr->type);
usr/src/tools/smatch/src/smatch_helper.c
382
struct expression *expr;
usr/src/tools/smatch/src/smatch_helper.c
389
struct expression *expr, int len,
usr/src/tools/smatch/src/smatch_helper.c
398
if (expr == cached[i].expr) {
usr/src/tools/smatch/src/smatch_helper.c
407
__get_variable_from_expr(&tmp_sym, buf, expr, len, complicated);
usr/src/tools/smatch/src/smatch_helper.c
411
if (expr->smatch_flags & Tmp)
usr/src/tools/smatch/src/smatch_helper.c
414
cached[idx].expr = expr;
usr/src/tools/smatch/src/smatch_helper.c
431
char *expr_to_str_sym(struct expression *expr, struct symbol **sym_ptr)
usr/src/tools/smatch/src/smatch_helper.c
440
if (!expr)
usr/src/tools/smatch/src/smatch_helper.c
442
get_variable_from_expr(sym_ptr, var_name, expr, sizeof(var_name),
usr/src/tools/smatch/src/smatch_helper.c
450
char *expr_to_str(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
452
return expr_to_str_sym(expr, NULL);
usr/src/tools/smatch/src/smatch_helper.c
460
char *expr_to_var_sym(struct expression *expr,
usr/src/tools/smatch/src/smatch_helper.c
470
if (!expr)
usr/src/tools/smatch/src/smatch_helper.c
472
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_helper.c
473
get_variable_from_expr(sym_ptr, var_name, expr, sizeof(var_name),
usr/src/tools/smatch/src/smatch_helper.c
484
char *expr_to_var(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
486
return expr_to_var_sym(expr, NULL);
usr/src/tools/smatch/src/smatch_helper.c
489
struct symbol *expr_to_sym(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
494
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_helper.c
499
int get_complication_score(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
501
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_helper.c
509
if (!expr)
usr/src/tools/smatch/src/smatch_helper.c
512
switch (expr->type) {
usr/src/tools/smatch/src/smatch_helper.c
517
return get_complication_score(expr->left) +
usr/src/tools/smatch/src/smatch_helper.c
518
get_complication_score(expr->right);
usr/src/tools/smatch/src/smatch_helper.c
522
if (expr->op == '*' || expr->op == '(')
usr/src/tools/smatch/src/smatch_helper.c
523
return get_complication_score(expr->unop);
usr/src/tools/smatch/src/smatch_helper.c
526
return get_complication_score(expr->deref);
usr/src/tools/smatch/src/smatch_helper.c
535
struct expression *reorder_expr_alphabetically(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
540
if (expr->type != EXPR_BINOP)
usr/src/tools/smatch/src/smatch_helper.c
541
return expr;
usr/src/tools/smatch/src/smatch_helper.c
542
if (expr->op != '+' && expr->op != '*')
usr/src/tools/smatch/src/smatch_helper.c
543
return expr;
usr/src/tools/smatch/src/smatch_helper.c
545
left = expr_to_var(expr->left);
usr/src/tools/smatch/src/smatch_helper.c
546
right = expr_to_var(expr->right);
usr/src/tools/smatch/src/smatch_helper.c
547
ret = expr;
usr/src/tools/smatch/src/smatch_helper.c
553
ret = binop_expression(expr->right, expr->op, expr->left);
usr/src/tools/smatch/src/smatch_helper.c
561
char *expr_to_chunk_helper(struct expression *expr, struct symbol **sym, struct var_sym_list **vsl)
usr/src/tools/smatch/src/smatch_helper.c
573
expr = strip_parens(expr);
usr/src/tools/smatch/src/smatch_helper.c
574
if (!expr)
usr/src/tools/smatch/src/smatch_helper.c
577
name = expr_to_var_sym(expr, &tmp);
usr/src/tools/smatch/src/smatch_helper.c
587
score = get_complication_score(expr);
usr/src/tools/smatch/src/smatch_helper.c
591
tmp_vsl = expr_to_vsl(expr);
usr/src/tools/smatch/src/smatch_helper.c
606
expr = reorder_expr_alphabetically(expr);
usr/src/tools/smatch/src/smatch_helper.c
608
return expr_to_str(expr);
usr/src/tools/smatch/src/smatch_helper.c
611
char *expr_to_known_chunk_sym(struct expression *expr, struct symbol **sym)
usr/src/tools/smatch/src/smatch_helper.c
613
return expr_to_chunk_helper(expr, sym, NULL);
usr/src/tools/smatch/src/smatch_helper.c
616
char *expr_to_chunk_sym_vsl(struct expression *expr, struct symbol **sym, struct var_sym_list **vsl)
usr/src/tools/smatch/src/smatch_helper.c
618
return expr_to_chunk_helper(expr, sym, vsl);
usr/src/tools/smatch/src/smatch_helper.c
621
int sym_name_is(const char *name, struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
623
if (!expr)
usr/src/tools/smatch/src/smatch_helper.c
625
if (expr->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_helper.c
627
if (!strcmp(expr->symbol_name->name, name))
usr/src/tools/smatch/src/smatch_helper.c
632
int expr_is_zero(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
636
if (get_value(expr, &sval) && sval.value == 0)
usr/src/tools/smatch/src/smatch_helper.c
641
int is_array(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
645
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_helper.c
646
if (!expr)
usr/src/tools/smatch/src/smatch_helper.c
649
if (expr->type == EXPR_PREOP && expr->op == '*') {
usr/src/tools/smatch/src/smatch_helper.c
650
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_helper.c
651
if (!expr)
usr/src/tools/smatch/src/smatch_helper.c
653
if (expr->type == EXPR_BINOP && expr->op == '+')
usr/src/tools/smatch/src/smatch_helper.c
657
if (expr->type != EXPR_BINOP || expr->op != '+')
usr/src/tools/smatch/src/smatch_helper.c
660
type = get_type(expr->left);
usr/src/tools/smatch/src/smatch_helper.c
667
struct expression *get_array_base(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
669
if (!is_array(expr))
usr/src/tools/smatch/src/smatch_helper.c
671
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_helper.c
672
if (expr->type == EXPR_PREOP && expr->op == '*')
usr/src/tools/smatch/src/smatch_helper.c
673
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_helper.c
674
if (expr->type != EXPR_BINOP || expr->op != '+')
usr/src/tools/smatch/src/smatch_helper.c
676
return strip_parens(expr->left);
usr/src/tools/smatch/src/smatch_helper.c
679
struct expression *get_array_offset(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
681
if (!is_array(expr))
usr/src/tools/smatch/src/smatch_helper.c
683
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_helper.c
684
if (expr->type == EXPR_PREOP && expr->op == '*')
usr/src/tools/smatch/src/smatch_helper.c
685
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_helper.c
686
if (expr->type != EXPR_BINOP || expr->op != '+')
usr/src/tools/smatch/src/smatch_helper.c
688
return strip_parens(expr->right);
usr/src/tools/smatch/src/smatch_helper.c
698
struct statement *get_expression_statement(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
702
if (expr->type != EXPR_PREOP)
usr/src/tools/smatch/src/smatch_helper.c
704
if (expr->op != '(')
usr/src/tools/smatch/src/smatch_helper.c
706
if (!expr->unop)
usr/src/tools/smatch/src/smatch_helper.c
708
if (expr->unop->type != EXPR_STATEMENT)
usr/src/tools/smatch/src/smatch_helper.c
710
if (expr->unop->statement->type != STMT_COMPOUND)
usr/src/tools/smatch/src/smatch_helper.c
712
return expr->unop->statement;
usr/src/tools/smatch/src/smatch_helper.c
715
struct expression *strip_parens(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
717
if (!expr)
usr/src/tools/smatch/src/smatch_helper.c
720
if (expr->type == EXPR_PREOP) {
usr/src/tools/smatch/src/smatch_helper.c
721
if (!expr->unop)
usr/src/tools/smatch/src/smatch_helper.c
722
return expr; /* parsing invalid code */
usr/src/tools/smatch/src/smatch_helper.c
724
if (expr->op == '(' && expr->unop->type == EXPR_STATEMENT &&
usr/src/tools/smatch/src/smatch_helper.c
725
expr->unop->statement->type == STMT_COMPOUND)
usr/src/tools/smatch/src/smatch_helper.c
726
return expr;
usr/src/tools/smatch/src/smatch_helper.c
727
if (expr->op == '(')
usr/src/tools/smatch/src/smatch_helper.c
728
return strip_parens(expr->unop);
usr/src/tools/smatch/src/smatch_helper.c
730
return expr;
usr/src/tools/smatch/src/smatch_helper.c
733
static struct expression *strip_expr_helper(struct expression *expr, bool set_parent)
usr/src/tools/smatch/src/smatch_helper.c
735
if (!expr)
usr/src/tools/smatch/src/smatch_helper.c
738
switch (expr->type) {
usr/src/tools/smatch/src/smatch_helper.c
742
expr_set_parent_expr(expr->cast_expression, expr);
usr/src/tools/smatch/src/smatch_helper.c
744
if (!expr->cast_expression)
usr/src/tools/smatch/src/smatch_helper.c
745
return expr;
usr/src/tools/smatch/src/smatch_helper.c
746
return strip_expr_helper(expr->cast_expression, set_parent);
usr/src/tools/smatch/src/smatch_helper.c
750
if (!expr->unop) /* parsing invalid code */
usr/src/tools/smatch/src/smatch_helper.c
751
return expr;
usr/src/tools/smatch/src/smatch_helper.c
753
expr_set_parent_expr(expr->unop, expr);
usr/src/tools/smatch/src/smatch_helper.c
756
if (expr->op == '(' && expr->unop->type == EXPR_STATEMENT &&
usr/src/tools/smatch/src/smatch_helper.c
757
expr->unop->statement->type == STMT_COMPOUND)
usr/src/tools/smatch/src/smatch_helper.c
758
return expr;
usr/src/tools/smatch/src/smatch_helper.c
760
unop = strip_expr_helper(expr->unop, set_parent);
usr/src/tools/smatch/src/smatch_helper.c
762
if (expr->op == '*' && unop &&
usr/src/tools/smatch/src/smatch_helper.c
767
return expr;
usr/src/tools/smatch/src/smatch_helper.c
771
if (expr->op == '(')
usr/src/tools/smatch/src/smatch_helper.c
774
return expr;
usr/src/tools/smatch/src/smatch_helper.c
777
if (known_condition_true(expr->conditional)) {
usr/src/tools/smatch/src/smatch_helper.c
778
if (expr->cond_true) {
usr/src/tools/smatch/src/smatch_helper.c
780
expr_set_parent_expr(expr->cond_true, expr);
usr/src/tools/smatch/src/smatch_helper.c
781
return strip_expr_helper(expr->cond_true, set_parent);
usr/src/tools/smatch/src/smatch_helper.c
784
expr_set_parent_expr(expr->conditional, expr);
usr/src/tools/smatch/src/smatch_helper.c
785
return strip_expr_helper(expr->conditional, set_parent);
usr/src/tools/smatch/src/smatch_helper.c
787
if (known_condition_false(expr->conditional)) {
usr/src/tools/smatch/src/smatch_helper.c
789
expr_set_parent_expr(expr->cond_false, expr);
usr/src/tools/smatch/src/smatch_helper.c
790
return strip_expr_helper(expr->cond_false, set_parent);
usr/src/tools/smatch/src/smatch_helper.c
792
return expr;
usr/src/tools/smatch/src/smatch_helper.c
794
if (sym_name_is("__builtin_expect", expr->fn) ||
usr/src/tools/smatch/src/smatch_helper.c
795
sym_name_is("__builtin_bswap16", expr->fn) ||
usr/src/tools/smatch/src/smatch_helper.c
796
sym_name_is("__builtin_bswap32", expr->fn) ||
usr/src/tools/smatch/src/smatch_helper.c
797
sym_name_is("__builtin_bswap64", expr->fn)) {
usr/src/tools/smatch/src/smatch_helper.c
798
expr = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/smatch_helper.c
799
return strip_expr_helper(expr, set_parent);
usr/src/tools/smatch/src/smatch_helper.c
801
return expr;
usr/src/tools/smatch/src/smatch_helper.c
803
return expr;
usr/src/tools/smatch/src/smatch_helper.c
806
struct expression *strip_expr(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
808
return strip_expr_helper(expr, false);
usr/src/tools/smatch/src/smatch_helper.c
811
struct expression *strip_expr_set_parent(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
813
return strip_expr_helper(expr, true);
usr/src/tools/smatch/src/smatch_helper.c
830
int is_error_return(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
836
if (!expr)
usr/src/tools/smatch/src/smatch_helper.c
847
get_implied_rl(expr, &rl) &&
usr/src/tools/smatch/src/smatch_helper.c
852
if (!get_implied_value(expr, &sval))
usr/src/tools/smatch/src/smatch_helper.c
861
int getting_address(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
865
while ((expr = expr_get_parent_expr(expr))) {
usr/src/tools/smatch/src/smatch_helper.c
866
if (expr->type == EXPR_PREOP && expr->op == '*') {
usr/src/tools/smatch/src/smatch_helper.c
872
if (expr->type == EXPR_PREOP && expr->op == '&')
usr/src/tools/smatch/src/smatch_helper.c
878
int get_struct_and_member(struct expression *expr, const char **type, const char **member)
usr/src/tools/smatch/src/smatch_helper.c
882
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_helper.c
883
if (expr->type != EXPR_DEREF)
usr/src/tools/smatch/src/smatch_helper.c
885
if (!expr->member)
usr/src/tools/smatch/src/smatch_helper.c
888
sym = get_type(expr->deref);
usr/src/tools/smatch/src/smatch_helper.c
897
*member = expr->member->name;
usr/src/tools/smatch/src/smatch_helper.c
901
char *get_member_name(struct expression *expr)
usr/src/tools/smatch/src/smatch_helper.c
906
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_helper.c
907
if (!expr || expr->type != EXPR_DEREF)
usr/src/tools/smatch/src/smatch_helper.c
909
if (!expr->member)
usr/src/tools/smatch/src/smatch_helper.c
912
sym = get_type(expr->deref);
usr/src/tools/smatch/src/smatch_helper.c
918
expr->member->name);
usr/src/tools/smatch/src/smatch_helper.c
933
deref = expr->deref;
usr/src/tools/smatch/src/smatch_helper.c
940
full = expr_to_str(expr);
usr/src/tools/smatch/src/smatch_helper.c
967
snprintf(buf, sizeof(buf), "(struct %s)->%s", sym->ident->name, expr->member->name);
usr/src/tools/smatch/src/smatch_hooks.c
36
typedef void (expr_func)(struct expression *expr);
usr/src/tools/smatch/src/smatch_ignore.c
35
void add_ignore_expr(int owner, struct expression *expr)
usr/src/tools/smatch/src/smatch_ignore.c
40
name = expr_to_str_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_ignore.c
47
int is_ignored_expr(int owner, struct expression *expr)
usr/src/tools/smatch/src/smatch_ignore.c
53
name = expr_to_str_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_ignore.c
61
name = get_macro_name(expr->pos);
usr/src/tools/smatch/src/smatch_imaginary_absolute.c
54
void __save_imaginary_state(struct expression *expr, struct range_list *true_rl, struct range_list *false_rl)
usr/src/tools/smatch/src/smatch_imaginary_absolute.c
58
set_true_false_states_expr(my_id, expr, alloc_estate_rl(true_rl), alloc_estate_rl(false_rl));
usr/src/tools/smatch/src/smatch_imaginary_absolute.c
61
int get_imaginary_absolute(struct expression *expr, struct range_list **rl)
usr/src/tools/smatch/src/smatch_imaginary_absolute.c
67
state = get_state_expr(my_id, expr);
usr/src/tools/smatch/src/smatch_implied.c
1001
static void set_extra_implied_states(struct expression *expr)
usr/src/tools/smatch/src/smatch_implied.c
1010
void param_limit_implications(struct expression *expr, int param, char *key, char *value, struct stree **implied)
usr/src/tools/smatch/src/smatch_implied.c
1028
orig_expr = expr;
usr/src/tools/smatch/src/smatch_implied.c
1029
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_implied.c
1030
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_implied.c
1031
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_implied.c
1034
arg = get_argument_from_call_expr(expr->args, param);
usr/src/tools/smatch/src/smatch_implied.c
1051
compare_type = get_arg_type(expr->fn, param);
usr/src/tools/smatch/src/smatch_implied.c
1058
call_results_to_rl(expr, compare_type, value, &limit);
usr/src/tools/smatch/src/smatch_implied.c
1204
int assume(struct expression *expr)
usr/src/tools/smatch/src/smatch_implied.c
1211
__split_whole_condition(expr);
usr/src/tools/smatch/src/smatch_implied.c
1241
void __extra_match_condition(struct expression *expr);
usr/src/tools/smatch/src/smatch_implied.c
1242
void __comparison_match_condition(struct expression *expr);
usr/src/tools/smatch/src/smatch_implied.c
1243
void __stored_condition(struct expression *expr);
usr/src/tools/smatch/src/smatch_implied.c
683
static struct expression *get_left_most_expr(struct expression *expr)
usr/src/tools/smatch/src/smatch_implied.c
687
compound = get_expression_statement(expr);
usr/src/tools/smatch/src/smatch_implied.c
691
expr = strip_parens(expr);
usr/src/tools/smatch/src/smatch_implied.c
692
if (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_implied.c
693
return get_left_most_expr(expr->left);
usr/src/tools/smatch/src/smatch_implied.c
694
return expr;
usr/src/tools/smatch/src/smatch_implied.c
697
static int is_merged_expr(struct expression *expr)
usr/src/tools/smatch/src/smatch_implied.c
702
if (get_value(expr, &dummy))
usr/src/tools/smatch/src/smatch_implied.c
704
sm = get_sm_state_expr(SMATCH_EXTRA, expr);
usr/src/tools/smatch/src/smatch_implied.c
730
static int handle_comparison(struct expression *expr,
usr/src/tools/smatch/src/smatch_implied.c
739
int comparison = expr->op;
usr/src/tools/smatch/src/smatch_implied.c
742
left = get_left_most_expr(expr->left);
usr/src/tools/smatch/src/smatch_implied.c
743
right = get_left_most_expr(expr->right);
usr/src/tools/smatch/src/smatch_implied.c
757
type = get_type(expr);
usr/src/tools/smatch/src/smatch_implied.c
778
static int handle_zero_comparison(struct expression *expr,
usr/src/tools/smatch/src/smatch_implied.c
788
if (expr->type == EXPR_POSTOP)
usr/src/tools/smatch/src/smatch_implied.c
789
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_implied.c
791
if (expr->type == EXPR_ASSIGNMENT) {
usr/src/tools/smatch/src/smatch_implied.c
795
expr = expr->left;
usr/src/tools/smatch/src/smatch_implied.c
798
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_implied.c
819
static int handled_by_comparison_hook(struct expression *expr,
usr/src/tools/smatch/src/smatch_implied.c
828
sm = comparison_implication_hook(expr, &true_stack, &false_stack);
usr/src/tools/smatch/src/smatch_implied.c
851
static int handled_by_extra_states(struct expression *expr,
usr/src/tools/smatch/src/smatch_implied.c
858
if (get_implied_value(expr, &sval))
usr/src/tools/smatch/src/smatch_implied.c
861
if (expr->type == EXPR_COMPARE)
usr/src/tools/smatch/src/smatch_implied.c
862
return handle_comparison(expr, implied_true, implied_false);
usr/src/tools/smatch/src/smatch_implied.c
864
return handle_zero_comparison(expr, implied_true, implied_false);
usr/src/tools/smatch/src/smatch_implied.c
867
static int handled_by_parsed_conditions(struct expression *expr,
usr/src/tools/smatch/src/smatch_implied.c
876
sm = parsed_condition_implication_hook(expr, &true_stack, &false_stack);
usr/src/tools/smatch/src/smatch_implied.c
892
static int handled_by_stored_conditions(struct expression *expr,
usr/src/tools/smatch/src/smatch_implied.c
901
sm = stored_condition_implication_hook(expr, &true_stack, &false_stack);
usr/src/tools/smatch/src/smatch_implied.c
946
static void get_tf_states(struct expression *expr,
usr/src/tools/smatch/src/smatch_implied.c
950
if (handled_by_parsed_conditions(expr, implied_true, implied_false))
usr/src/tools/smatch/src/smatch_implied.c
953
if (handled_by_comparison_hook(expr, implied_true, implied_false)) {
usr/src/tools/smatch/src/smatch_implied.c
958
if (handled_by_extra_states(expr, implied_true, implied_false)) {
usr/src/tools/smatch/src/smatch_implied.c
963
if (handled_by_stored_conditions(expr, implied_true, implied_false))
usr/src/tools/smatch/src/smatch_implied.c
967
static void save_implications_hook(struct expression *expr)
usr/src/tools/smatch/src/smatch_implied.c
971
get_tf_states(expr, &saved_implied_true, &saved_implied_false);
usr/src/tools/smatch/src/smatch_implied.c
974
static void set_implied_states(struct expression *expr)
usr/src/tools/smatch/src/smatch_implied.c
979
(expr || saved_implied_true || saved_implied_false)) {
usr/src/tools/smatch/src/smatch_implied.c
982
name = expr_to_str(expr);
usr/src/tools/smatch/src/smatch_impossible.c
62
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/smatch_impossible.c
64
if (expr->type == EXPR_COMPARE)
usr/src/tools/smatch/src/smatch_impossible.c
65
handle_compare(expr->left, expr->op, expr->right);
usr/src/tools/smatch/src/smatch_impossible.c
67
handle_compare(expr, SPECIAL_NOTEQUAL, zero_expr());
usr/src/tools/smatch/src/smatch_impossible.c
80
static void match_case(struct expression *expr, struct range_list *rl)
usr/src/tools/smatch/src/smatch_impossible.c
87
static void print_impossible_return(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_integer_overflow.c
104
if (expr->type != EXPR_COMPARE)
usr/src/tools/smatch/src/smatch_integer_overflow.c
106
if (expr->op != '<' && expr->op != SPECIAL_UNSIGNED_LT)
usr/src/tools/smatch/src/smatch_integer_overflow.c
109
left = strip_parens(expr->left);
usr/src/tools/smatch/src/smatch_integer_overflow.c
110
right = strip_parens(expr->right);
usr/src/tools/smatch/src/smatch_integer_overflow.c
115
type = get_type(expr);
usr/src/tools/smatch/src/smatch_integer_overflow.c
131
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/smatch_integer_overflow.c
133
match_overflow_to_less_than(expr);
usr/src/tools/smatch/src/smatch_integer_overflow.c
134
match_divide(expr);
usr/src/tools/smatch/src/smatch_integer_overflow.c
137
int can_integer_overflow(struct symbol *type, struct expression *expr)
usr/src/tools/smatch/src/smatch_integer_overflow.c
145
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_integer_overflow.c
147
if (expr->type == EXPR_ASSIGNMENT) {
usr/src/tools/smatch/src/smatch_integer_overflow.c
148
switch(expr->op) {
usr/src/tools/smatch/src/smatch_integer_overflow.c
161
} else if (expr->type == EXPR_BINOP) {
usr/src/tools/smatch/src/smatch_integer_overflow.c
162
if (expr->op != '*' && expr->op != '+' && expr->op != SPECIAL_LEFTSHIFT)
usr/src/tools/smatch/src/smatch_integer_overflow.c
164
op = expr->op;
usr/src/tools/smatch/src/smatch_integer_overflow.c
169
get_absolute_max(expr->left, &lmax);
usr/src/tools/smatch/src/smatch_integer_overflow.c
170
get_absolute_max(expr->right, &rmax);
usr/src/tools/smatch/src/smatch_integer_overflow.c
181
int can_integer_overflow_expr(struct expression *expr)
usr/src/tools/smatch/src/smatch_integer_overflow.c
189
type = get_type(expr);
usr/src/tools/smatch/src/smatch_integer_overflow.c
193
if (!can_integer_overflow(type, expr))
usr/src/tools/smatch/src/smatch_integer_overflow.c
196
name = expr_to_known_chunk_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_integer_overflow.c
208
static int get_arg_nr(struct expression *call, struct expression *expr)
usr/src/tools/smatch/src/smatch_integer_overflow.c
216
if (expr_equiv(arg, expr))
usr/src/tools/smatch/src/smatch_integer_overflow.c
228
struct expression *expr;
usr/src/tools/smatch/src/smatch_integer_overflow.c
237
expr = state->data;
usr/src/tools/smatch/src/smatch_integer_overflow.c
239
if (expr_equiv(arg, expr->left)) {
usr/src/tools/smatch/src/smatch_integer_overflow.c
241
right = get_arg_nr(call, expr->right);
usr/src/tools/smatch/src/smatch_integer_overflow.c
242
} else if (expr_equiv(arg, expr->right)) {
usr/src/tools/smatch/src/smatch_integer_overflow.c
243
left = get_arg_nr(call, expr->left);
usr/src/tools/smatch/src/smatch_integer_overflow.c
25
static struct smatch_state *safe_state(struct expression *expr)
usr/src/tools/smatch/src/smatch_integer_overflow.c
30
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_integer_overflow.c
32
state->data = expr;
usr/src/tools/smatch/src/smatch_integer_overflow.c
36
static char *save_links(struct expression *expr, struct symbol **sym, struct var_sym_list **vsl)
usr/src/tools/smatch/src/smatch_integer_overflow.c
41
name = expr_to_chunk_sym_vsl(expr, sym, vsl);
usr/src/tools/smatch/src/smatch_integer_overflow.c
54
static void match_divide(struct expression *expr)
usr/src/tools/smatch/src/smatch_integer_overflow.c
63
if (expr->type != EXPR_COMPARE)
usr/src/tools/smatch/src/smatch_integer_overflow.c
65
if (expr->op != '>' && expr->op != SPECIAL_UNSIGNED_GT &&
usr/src/tools/smatch/src/smatch_integer_overflow.c
66
expr->op != SPECIAL_GTE && expr->op != SPECIAL_UNSIGNED_GTE)
usr/src/tools/smatch/src/smatch_integer_overflow.c
69
left = strip_parens(expr->left);
usr/src/tools/smatch/src/smatch_integer_overflow.c
70
right = strip_parens(expr->right);
usr/src/tools/smatch/src/smatch_integer_overflow.c
80
type = get_type(expr);
usr/src/tools/smatch/src/smatch_integer_overflow.c
96
static void match_overflow_to_less_than(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1003
int get_user_rl(struct expression *expr, struct range_list **rl)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1005
if (is_ptr_subtract(expr))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1010
custom_get_absolute_rl(expr, &var_user_rl, rl);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1017
int is_user_rl(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1021
return !!get_user_rl(expr, &tmp);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1036
static char *get_user_rl_str(struct expression *expr, struct symbol *type)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1041
if (!get_user_rl(expr, &rl))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1046
user_rl_capped(expr) ? "[c]" : "",
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1047
user_rl_treat_untagged(expr) ? "[u]" : "");
usr/src/tools/smatch/src/smatch_kernel_user_data.c
105
static void extra_nomod_hook(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1051
static void match_call_info(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1059
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1061
type = get_arg_type(expr->fn, i);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1066
sql_insert_caller_info(expr, USER_DATA, i, "$", str);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1110
static void db_param_set(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1117
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1118
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1119
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1122
arg = get_argument_from_call_expr(expr->args, param);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1156
struct expression *expr;
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1173
expr = symbol_expression(sym);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1174
type = get_member_type_from_key(expr, key_orig);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1197
if (param_data_capped(value) || is_capped(expr))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1239
static void store_user_data_return(struct expression *expr, char *key, char *value)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
124
static bool binop_capped(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1248
type = get_type(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1249
snprintf(buf, sizeof(buf), "return %p", expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1250
call_results_to_rl(expr, type, value, &rl);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1255
static void set_to_user_data(struct expression *expr, char *key, char *value)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1263
type = get_member_type_from_key(expr, key);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1264
name = get_variable_from_key(expr, key, &sym);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1268
call_results_to_rl(expr, type, value, &rl);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1280
static void returns_param_user_data(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1285
call = expr;
usr/src/tools/smatch/src/smatch_kernel_user_data.c
129
if (expr->op == '-' && get_user_rl(expr->left, &left_rl)) {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1295
if (expr->type != EXPR_ASSIGNMENT) {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1296
store_user_data_return(expr, key, value);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1299
set_to_user_data(expr->left, key, value);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
130
if (user_rl_capped(expr->left))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1309
static void returns_param_user_data_set(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1316
if (expr->type != EXPR_ASSIGNMENT) {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1317
store_user_data_return(expr, key, value);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
132
comparison = get_comparison(expr->left, expr->right);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1321
set_points_to_user_data(expr->left);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1322
tag_as_user_data(expr->left);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1324
set_to_user_data(expr->left, key, value);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1329
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1330
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1331
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1334
arg = get_argument_from_call_expr(expr->args, param);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1340
static void param_set_to_user_data(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1353
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1354
return_str = expr_to_str(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1355
ret_sym = expr_to_sym(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
138
if (expr->op == '&' || expr->op == '%') {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
139
if (is_capped(expr->left) || is_capped(expr->right))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
141
if (user_rl_capped(expr->left) || user_rl_capped(expr->right))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1415
if (!return_found && get_user_rl(expr, &rl)) {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1418
user_rl_capped(expr) ? "[c]" : "",
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1419
user_rl_treat_untagged(expr) ? "[u]" : "");
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1429
if (!pointed_at_found && points_to_user_data(expr)) {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1431
(is_skb_data(expr) || func_gets_user_data) ?
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1439
static void returns_param_capped(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1445
name = return_state_to_var_sym(expr, param, key, &sym);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
146
if (user_rl_capped(expr->left) &&
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1467
static void match_inline_start(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
147
user_rl_capped(expr->right))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
1472
static void match_inline_end(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
152
bool user_rl_capped(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
158
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
159
if (!expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
161
if (get_value(expr, &sval))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
163
if (expr->type == EXPR_BINOP)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
164
return binop_capped(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
165
if ((expr->type == EXPR_PREOP || expr->type == EXPR_POSTOP) &&
usr/src/tools/smatch/src/smatch_kernel_user_data.c
166
(expr->op == SPECIAL_INCREMENT || expr->op == SPECIAL_DECREMENT))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
167
return user_rl_capped(expr->unop);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
168
state = get_state_expr(my_id, expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
172
if (get_user_rl(expr, &rl))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
178
bool user_rl_treat_untagged(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
184
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
185
if (!expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
187
if (get_value(expr, &sval))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
190
state = get_state_expr(my_id, expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
194
if (get_user_rl(expr, &rl))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
200
static void tag_inner_struct_members(struct expression *expr, struct symbol *member)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
207
expr = member_expression(expr, '.', member->ident);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
217
tag_inner_struct_members(expr, tmp);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
224
edge_member = member_expression(expr, '.', tmp->ident);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
229
static void tag_struct_members(struct symbol *type, struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
235
if (expr->type == EXPR_PREOP && expr->op == '&') {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
236
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
246
tag_inner_struct_members(expr, tmp);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
253
member = member_expression(expr, op, tmp->ident);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
261
static void tag_base_type(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
263
if (expr->type == EXPR_PREOP && expr->op == '&')
usr/src/tools/smatch/src/smatch_kernel_user_data.c
264
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
266
expr = deref_expression(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
267
set_state_expr(my_id, expr, alloc_estate_whole(get_type(expr)));
usr/src/tools/smatch/src/smatch_kernel_user_data.c
270
static void tag_as_user_data(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
274
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
276
type = get_type(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
283
set_state_expr(my_id, deref_expression(expr), alloc_estate_whole(&ulong_ctype));
usr/src/tools/smatch/src/smatch_kernel_user_data.c
287
tag_base_type(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
289
if (expr->type != EXPR_PREOP || expr->op != '&')
usr/src/tools/smatch/src/smatch_kernel_user_data.c
290
expr = deref_expression(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
292
set_state_expr(my_id, deref_expression(expr), alloc_estate_whole(&ulong_ctype));
usr/src/tools/smatch/src/smatch_kernel_user_data.c
293
tag_struct_members(type, expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
297
static void match_user_copy(const char *fn, struct expression *expr, void *_param)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
304
dest = get_argument_from_call_expr(expr->args, param);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
311
static int is_dev_attr_name(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
316
name = expr_to_str(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
325
static int ends_in_n(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
329
if (!expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
331
if (expr->type != EXPR_STRING || !expr->string)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
334
str = expr->string;
usr/src/tools/smatch/src/smatch_kernel_user_data.c
344
static void match_sscanf(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
351
str = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
355
format = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
359
last = ptr_list_size((struct ptr_list *)expr->args) - 1;
usr/src/tools/smatch/src/smatch_kernel_user_data.c
362
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
372
static int is_skb_data(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
376
if (!expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
379
if (expr->type == EXPR_BINOP && expr->op == '+')
usr/src/tools/smatch/src/smatch_kernel_user_data.c
380
return is_skb_data(expr->left);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
382
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
383
if (!expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
385
if (expr->type != EXPR_DEREF || expr->op != '.')
usr/src/tools/smatch/src/smatch_kernel_user_data.c
388
if (!expr->member)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
390
if (strcmp(expr->member->name, "data") != 0)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
393
sym = expr_to_sym(expr->deref);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
408
static bool is_points_to_user_data_fn(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
412
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
413
if (expr->type != EXPR_CALL || expr->fn->type != EXPR_SYMBOL ||
usr/src/tools/smatch/src/smatch_kernel_user_data.c
414
!expr->fn->symbol)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
416
expr = expr->fn;
usr/src/tools/smatch/src/smatch_kernel_user_data.c
418
if (sym_name_is(returns_pointer_to_user_data[i], expr))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
424
static int get_rl_from_function(struct expression *expr, struct range_list **rl)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
428
if (expr->type != EXPR_CALL || expr->fn->type != EXPR_SYMBOL ||
usr/src/tools/smatch/src/smatch_kernel_user_data.c
429
!expr->fn->symbol_name || !expr->fn->symbol_name->name)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
433
if (strcmp(expr->fn->symbol_name->name, returns_user_data[i]) == 0) {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
434
*rl = alloc_whole_rl(get_type(expr));
usr/src/tools/smatch/src/smatch_kernel_user_data.c
441
int points_to_user_data(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
450
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
451
if (!expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
453
if (is_skb_data(expr))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
455
if (is_points_to_user_data_fn(expr))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
457
if (get_rl_from_function(expr, &rl))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
460
if (expr->type == EXPR_BINOP && expr->op == '+') {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
461
if (points_to_user_data(expr->left))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
463
if (points_to_user_data(expr->right))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
468
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
480
static void set_points_to_user_data(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
487
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
491
type = get_type(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
501
static int comes_from_skb_data(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
503
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
504
if (!expr || expr->type != EXPR_PREOP || expr->op != '*')
usr/src/tools/smatch/src/smatch_kernel_user_data.c
507
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
508
if (!expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
510
if (expr->type == EXPR_BINOP && expr->op == '+')
usr/src/tools/smatch/src/smatch_kernel_user_data.c
511
expr = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
513
return is_skb_data(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
516
static int handle_struct_assignment(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
521
left_type = get_type(expr->left);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
535
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
55
static void set_points_to_user_data(struct expression *expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
551
tag_as_user_data(expr->left);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
555
static int handle_get_user(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
560
name = get_macro_name(expr->pos);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
564
name = expr_to_var(expr->right);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
567
set_state_expr(my_id, expr->left, alloc_estate_whole(get_type(expr->left)));
usr/src/tools/smatch/src/smatch_kernel_user_data.c
574
static bool handle_op_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
580
switch (expr->op) {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
591
binop_expr = binop_expression(expr->left,
usr/src/tools/smatch/src/smatch_kernel_user_data.c
592
op_remove_assign(expr->op),
usr/src/tools/smatch/src/smatch_kernel_user_data.c
593
expr->right);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
597
rl = cast_rl(get_type(expr->left), rl);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
601
if (user_rl_treat_untagged(expr->left))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
603
set_state_expr(my_id, expr->left, state);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
609
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
619
if (is_fake_call(expr->right))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
621
if (handle_get_user(expr))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
623
if (points_to_user_data(expr->right)) {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
624
handled = expr;
usr/src/tools/smatch/src/smatch_kernel_user_data.c
625
set_points_to_user_data(expr->left);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
627
if (handle_struct_assignment(expr))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
630
if (handle_op_assign(expr))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
632
if (expr->op != '=')
usr/src/tools/smatch/src/smatch_kernel_user_data.c
636
if (expr->right->type == EXPR_CALL || __in_fake_parameter_assign)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
639
if (!get_user_rl(expr->right, &rl))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
642
rl = cast_rl(get_type(expr->left), rl);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
645
if (user_rl_capped(expr->right))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
647
if (user_rl_treat_untagged(expr->right))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
649
set_state_expr(my_id, expr->left, state);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
654
if (get_state_expr(my_id, expr->left))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
655
set_state_expr(my_id, expr->left, alloc_estate_empty());
usr/src/tools/smatch/src/smatch_kernel_user_data.c
658
static void handle_eq_noteq(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
662
left_orig = get_state_expr(my_id, expr->left);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
663
right_orig = get_state_expr(my_id, expr->right);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
671
set_true_false_states_expr(my_id, expr->left,
usr/src/tools/smatch/src/smatch_kernel_user_data.c
672
expr->op == SPECIAL_EQUAL ? alloc_estate_empty() : NULL,
usr/src/tools/smatch/src/smatch_kernel_user_data.c
673
expr->op == SPECIAL_EQUAL ? NULL : alloc_estate_empty());
usr/src/tools/smatch/src/smatch_kernel_user_data.c
675
set_true_false_states_expr(my_id, expr->right,
usr/src/tools/smatch/src/smatch_kernel_user_data.c
676
expr->op == SPECIAL_EQUAL ? alloc_estate_empty() : NULL,
usr/src/tools/smatch/src/smatch_kernel_user_data.c
677
expr->op == SPECIAL_EQUAL ? NULL : alloc_estate_empty());
usr/src/tools/smatch/src/smatch_kernel_user_data.c
69
static void match_save_states(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
702
static void handle_compare(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
716
left = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
717
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
75
static void match_restore_states(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
761
type = get_type(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
767
switch (expr->op) {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
792
static void match_condition(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
794
if (expr->type != EXPR_COMPARE)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
797
if (expr->op == SPECIAL_EQUAL ||
usr/src/tools/smatch/src/smatch_kernel_user_data.c
798
expr->op == SPECIAL_NOTEQUAL) {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
799
handle_eq_noteq(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
803
handle_compare(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
806
static void match_user_assign_function(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
808
tag_as_user_data(expr->left);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
809
set_points_to_user_data(expr->left);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
812
static void match_returns_user_rl(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
817
static int get_user_macro_rl(struct expression *expr, struct range_list **rl)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
822
if (!expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
825
macro = get_macro_name(expr->pos);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
830
parent = expr_get_parent_expr(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
900
struct range_list *var_user_rl(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
906
if (expr->type == EXPR_PREOP && expr->op == '&') {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
911
if (expr->type == EXPR_BINOP && expr->op == '%') {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
914
if (!get_user_rl(expr->right, &right))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
916
get_absolute_rl(expr->left, &left);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
921
if (expr->type == EXPR_BINOP && expr->op == '/') {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
936
get_user_rl(expr->left, &left);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
937
get_user_rl(expr->right, &right);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
938
get_absolute_rl(expr->right, &abs_right);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
949
if (get_rl_from_function(expr, &rl))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
952
if (get_user_macro_rl(expr, &rl))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
955
if (comes_from_skb_data(expr)) {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
956
rl = alloc_whole_rl(get_type(expr));
usr/src/tools/smatch/src/smatch_kernel_user_data.c
960
state = get_state_expr(my_id, expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
966
if (expr->type == EXPR_CALL && db_returned_user_rl(expr, &rl))
usr/src/tools/smatch/src/smatch_kernel_user_data.c
969
if (is_array(expr)) {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
970
struct expression *array = get_array_base(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
978
if (expr->type == EXPR_PREOP && expr->op == '*' &&
usr/src/tools/smatch/src/smatch_kernel_user_data.c
979
is_user_rl(expr->unop)) {
usr/src/tools/smatch/src/smatch_kernel_user_data.c
980
rl = var_to_absolute_rl(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
987
absolute_rl = var_to_absolute_rl(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
991
static bool is_ptr_subtract(struct expression *expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
993
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_kernel_user_data.c
994
if (!expr)
usr/src/tools/smatch/src/smatch_kernel_user_data.c
996
if (expr->type == EXPR_BINOP && expr->op == '-' &&
usr/src/tools/smatch/src/smatch_kernel_user_data.c
997
type_is_ptr(get_type(expr->left))) {
usr/src/tools/smatch/src/smatch_math.c
1002
rl = custom_handle_variable(expr);
usr/src/tools/smatch/src/smatch_math.c
1007
*res = var_to_absolute_rl(expr);
usr/src/tools/smatch/src/smatch_math.c
1012
if (get_mtag_sval(expr, &sval)) {
usr/src/tools/smatch/src/smatch_math.c
1017
type = get_type(expr);
usr/src/tools/smatch/src/smatch_math.c
1021
return handle_address(expr, implied, recurse_cnt, res, res_sval);
usr/src/tools/smatch/src/smatch_math.c
1029
state = get_extra_state(expr);
usr/src/tools/smatch/src/smatch_math.c
1033
if (get_mtag_rl(expr, res))
usr/src/tools/smatch/src/smatch_math.c
1035
if (get_db_type_rl(expr, res))
usr/src/tools/smatch/src/smatch_math.c
1037
if (is_array(expr) && get_array_rl(expr, res))
usr/src/tools/smatch/src/smatch_math.c
104
rl = custom_handle_variable(expr);
usr/src/tools/smatch/src/smatch_math.c
1048
state = get_extra_state(expr);
usr/src/tools/smatch/src/smatch_math.c
1049
abs_state = get_real_absolute_state(expr);
usr/src/tools/smatch/src/smatch_math.c
1083
if (get_mtag_rl(expr, res))
usr/src/tools/smatch/src/smatch_math.c
1085
if (get_db_type_rl(expr, res))
usr/src/tools/smatch/src/smatch_math.c
1087
if (is_array(expr) && get_array_rl(expr, res))
usr/src/tools/smatch/src/smatch_math.c
1092
if (!get_fuzzy_min_helper(expr, &min))
usr/src/tools/smatch/src/smatch_math.c
1093
min = sval_type_min(get_type(expr));
usr/src/tools/smatch/src/smatch_math.c
1094
if (!get_fuzzy_max_helper(expr, &max))
usr/src/tools/smatch/src/smatch_math.c
1108
static sval_t handle_sizeof(struct expression *expr)
usr/src/tools/smatch/src/smatch_math.c
1113
ret = sval_blank(expr);
usr/src/tools/smatch/src/smatch_math.c
1114
sym = expr->cast_type;
usr/src/tools/smatch/src/smatch_math.c
1116
sym = evaluate_expression(expr->cast_expression);
usr/src/tools/smatch/src/smatch_math.c
112
if (get_mtag_sval(expr, &sval)) {
usr/src/tools/smatch/src/smatch_math.c
1152
static bool handle_strlen(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
1159
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/smatch_math.c
1179
if (get_implied_return(expr, &rl)) {
usr/src/tools/smatch/src/smatch_math.c
118
if (get_address_rl(expr, res)) {
usr/src/tools/smatch/src/smatch_math.c
1187
static bool handle_builtin_constant_p(struct expression *expr, int implied, int *recurse_cnt, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
1192
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/smatch_math.c
1200
static bool handle__builtin_choose_expr(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
1205
const_expr = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/smatch_math.c
1206
expr1 = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/smatch_math.c
1207
expr2 = get_argument_from_call_expr(expr->args, 2);
usr/src/tools/smatch/src/smatch_math.c
1217
static bool handle_call_rl(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
1221
if (sym_name_is("__builtin_constant_p", expr->fn))
usr/src/tools/smatch/src/smatch_math.c
1222
return handle_builtin_constant_p(expr, implied, recurse_cnt, res_sval);
usr/src/tools/smatch/src/smatch_math.c
1224
if (sym_name_is("__builtin_choose_expr", expr->fn))
usr/src/tools/smatch/src/smatch_math.c
1225
return handle__builtin_choose_expr(expr, implied, recurse_cnt, res, res_sval);
usr/src/tools/smatch/src/smatch_math.c
1227
if (sym_name_is("__builtin_expect", expr->fn) ||
usr/src/tools/smatch/src/smatch_math.c
1228
sym_name_is("__builtin_bswap16", expr->fn) ||
usr/src/tools/smatch/src/smatch_math.c
1229
sym_name_is("__builtin_bswap32", expr->fn) ||
usr/src/tools/smatch/src/smatch_math.c
1230
sym_name_is("__builtin_bswap64", expr->fn)) {
usr/src/tools/smatch/src/smatch_math.c
1233
arg = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/smatch_math.c
1237
if (sym_name_is("strlen", expr->fn))
usr/src/tools/smatch/src/smatch_math.c
1238
return handle_strlen(expr, implied, recurse_cnt, res, res_sval);
usr/src/tools/smatch/src/smatch_math.c
1244
rl = custom_handle_variable(expr);
usr/src/tools/smatch/src/smatch_math.c
1252
if (get_implied_return(expr, &rl)) {
usr/src/tools/smatch/src/smatch_math.c
1256
rl = db_return_vals(expr);
usr/src/tools/smatch/src/smatch_math.c
126
static bool handle_ampersand_rl(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
1264
static bool handle_cast(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
1270
type = get_type(expr);
usr/src/tools/smatch/src/smatch_math.c
1271
if (get_rl_sval(expr->cast_expression, implied, recurse_cnt, &rl, &sval)) {
usr/src/tools/smatch/src/smatch_math.c
128
return handle_address(expr, implied, recurse_cnt, res, res_sval);
usr/src/tools/smatch/src/smatch_math.c
1290
static bool get_offset_from_down(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
1293
struct symbol *type = expr->in;
usr/src/tools/smatch/src/smatch_math.c
1309
if (expr->op != '.' || !expr->down ||
usr/src/tools/smatch/src/smatch_math.c
131
static bool handle_negate_rl(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
1310
expr->down->type != EXPR_OFFSETOF ||
usr/src/tools/smatch/src/smatch_math.c
1311
expr->down->op != '[' ||
usr/src/tools/smatch/src/smatch_math.c
1312
!expr->down->index)
usr/src/tools/smatch/src/smatch_math.c
1315
index = expr->down->index;
usr/src/tools/smatch/src/smatch_math.c
1321
field = find_identifier(expr->ident, type->symbol_list, &offset);
usr/src/tools/smatch/src/smatch_math.c
133
if (known_condition_true(expr->unop)) {
usr/src/tools/smatch/src/smatch_math.c
1358
static bool get_offset_from_in(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
1360
struct symbol *type = get_real_base_type(expr->in);
usr/src/tools/smatch/src/smatch_math.c
1364
if (expr->op != '.' || !type || !expr->ident)
usr/src/tools/smatch/src/smatch_math.c
1367
field = find_identifier(expr->ident, type->symbol_list, &offset);
usr/src/tools/smatch/src/smatch_math.c
137
if (known_condition_false(expr->unop)) {
usr/src/tools/smatch/src/smatch_math.c
1377
static bool handle_offsetof_rl(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
1379
if (get_offset_from_down(expr, implied, recurse_cnt, res, res_sval))
usr/src/tools/smatch/src/smatch_math.c
1382
if (get_offset_from_in(expr, implied, recurse_cnt, res, res_sval))
usr/src/tools/smatch/src/smatch_math.c
1385
evaluate_expression(expr);
usr/src/tools/smatch/src/smatch_math.c
1386
if (expr->type == EXPR_VALUE) {
usr/src/tools/smatch/src/smatch_math.c
1387
*res_sval = sval_from_val(expr, expr->value);
usr/src/tools/smatch/src/smatch_math.c
1393
static bool get_rl_sval(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *sval_res)
usr/src/tools/smatch/src/smatch_math.c
1399
type = get_type(expr);
usr/src/tools/smatch/src/smatch_math.c
1400
expr = strip_parens(expr);
usr/src/tools/smatch/src/smatch_math.c
1401
if (!expr)
usr/src/tools/smatch/src/smatch_math.c
1407
switch(expr->type) {
usr/src/tools/smatch/src/smatch_math.c
1411
handle_cast(expr, implied, recurse_cnt, &rl, &sval);
usr/src/tools/smatch/src/smatch_math.c
1415
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_math.c
1416
if (!expr)
usr/src/tools/smatch/src/smatch_math.c
1419
switch (expr->type) {
usr/src/tools/smatch/src/smatch_math.c
1421
sval = sval_from_val(expr, expr->value);
usr/src/tools/smatch/src/smatch_math.c
1424
sval = sval_from_fval(expr, expr->fvalue);
usr/src/tools/smatch/src/smatch_math.c
1427
handle_preop_rl(expr, implied, recurse_cnt, &rl, &sval);
usr/src/tools/smatch/src/smatch_math.c
1430
get_rl_sval(expr->unop, implied, recurse_cnt, &rl, &sval);
usr/src/tools/smatch/src/smatch_math.c
1433
handle_binop_rl(expr, implied, recurse_cnt, &rl, &sval);
usr/src/tools/smatch/src/smatch_math.c
1436
handle_comparison_rl(expr, implied, recurse_cnt, &rl, &sval);
usr/src/tools/smatch/src/smatch_math.c
1439
handle_logical_rl(expr, implied, recurse_cnt, &rl, &sval);
usr/src/tools/smatch/src/smatch_math.c
1443
sval = handle_sizeof(expr);
usr/src/tools/smatch/src/smatch_math.c
1447
handle_conditional_rl(expr, implied, recurse_cnt, &rl, &sval);
usr/src/tools/smatch/src/smatch_math.c
145
if (implied_condition_true(expr->unop)) {
usr/src/tools/smatch/src/smatch_math.c
1450
handle_call_rl(expr, implied, recurse_cnt, &rl, &sval);
usr/src/tools/smatch/src/smatch_math.c
1453
if (get_mtag_sval(expr, &sval))
usr/src/tools/smatch/src/smatch_math.c
1460
handle_offsetof_rl(expr, implied, recurse_cnt, &rl, &sval);
usr/src/tools/smatch/src/smatch_math.c
1463
evaluate_expression(expr);
usr/src/tools/smatch/src/smatch_math.c
1464
if (expr->type == EXPR_VALUE)
usr/src/tools/smatch/src/smatch_math.c
1465
sval = sval_from_val(expr, expr->value);
usr/src/tools/smatch/src/smatch_math.c
1468
handle_variable(expr, implied, recurse_cnt, &rl, &sval);
usr/src/tools/smatch/src/smatch_math.c
149
if (implied_condition_false(expr->unop)) {
usr/src/tools/smatch/src/smatch_math.c
1493
static bool get_rl_internal(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res)
usr/src/tools/smatch/src/smatch_math.c
1498
if (!get_rl_sval(expr, implied, recurse_cnt, &rl, &sval))
usr/src/tools/smatch/src/smatch_math.c
1508
static bool get_rl_helper(struct expression *expr, int implied, struct range_list **res)
usr/src/tools/smatch/src/smatch_math.c
1514
if (get_value(expr, &sval)) {
usr/src/tools/smatch/src/smatch_math.c
1519
if (!get_rl_sval(expr, implied, &recurse_cnt, &rl, &sval))
usr/src/tools/smatch/src/smatch_math.c
1530
struct expression *expr;
usr/src/tools/smatch/src/smatch_math.c
1554
static bool get_value_literal(struct expression *expr, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
1559
tmp = strip_expr(expr);
usr/src/tools/smatch/src/smatch_math.c
1563
return get_rl_sval(expr, RL_EXACT, &recurse_cnt, NULL, res_sval);
usr/src/tools/smatch/src/smatch_math.c
1567
int get_value(struct expression *expr, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
1569
struct range_list *(*orig_custom_fn)(struct expression *expr);
usr/src/tools/smatch/src/smatch_math.c
1574
if (get_value_literal(expr, res_sval))
usr/src/tools/smatch/src/smatch_math.c
158
static bool handle_bitwise_negate(struct expression *expr, int implied, int *recurse_cnt, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
1582
if (expr == cached_results[i].expr) {
usr/src/tools/smatch/src/smatch_math.c
1593
get_rl_sval(expr, RL_EXACT, &recurse_cnt, NULL, &sval);
usr/src/tools/smatch/src/smatch_math.c
1597
cached_results[cache_idx].expr = expr;
usr/src/tools/smatch/src/smatch_math.c
1608
static bool get_implied_value_internal(struct expression *expr, int *recurse_cnt, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
1614
if (!get_rl_sval(expr, RL_IMPLIED, recurse_cnt, &rl, res_sval))
usr/src/tools/smatch/src/smatch_math.c
1621
int get_implied_value(struct expression *expr, sval_t *sval)
usr/src/tools/smatch/src/smatch_math.c
1625
if (!get_rl_helper(expr, RL_IMPLIED, &rl) ||
usr/src/tools/smatch/src/smatch_math.c
163
if (!get_rl_sval(expr->unop, implied, recurse_cnt, &rl, &sval))
usr/src/tools/smatch/src/smatch_math.c
1631
int get_implied_value_fast(struct expression *expr, sval_t *sval)
usr/src/tools/smatch/src/smatch_math.c
1642
if (get_rl_helper(expr, RL_IMPLIED, &rl) &&
usr/src/tools/smatch/src/smatch_math.c
1651
int get_implied_min(struct expression *expr, sval_t *sval)
usr/src/tools/smatch/src/smatch_math.c
1655
if (!get_rl_helper(expr, RL_IMPLIED, &rl) || !rl)
usr/src/tools/smatch/src/smatch_math.c
1661
int get_implied_max(struct expression *expr, sval_t *sval)
usr/src/tools/smatch/src/smatch_math.c
1665
if (!get_rl_helper(expr, RL_IMPLIED, &rl) || !rl)
usr/src/tools/smatch/src/smatch_math.c
1671
int get_implied_rl(struct expression *expr, struct range_list **rl)
usr/src/tools/smatch/src/smatch_math.c
1673
if (!get_rl_helper(expr, RL_IMPLIED, rl) || !*rl)
usr/src/tools/smatch/src/smatch_math.c
1678
static int get_absolute_rl_internal(struct expression *expr, struct range_list **rl, int *recurse_cnt)
usr/src/tools/smatch/src/smatch_math.c
168
sval_cast(get_type(expr->unop), sval);
usr/src/tools/smatch/src/smatch_math.c
1681
get_rl_internal(expr, RL_ABSOLUTE, recurse_cnt, rl);
usr/src/tools/smatch/src/smatch_math.c
1683
*rl = alloc_whole_rl(get_type(expr));
usr/src/tools/smatch/src/smatch_math.c
1687
int get_absolute_rl(struct expression *expr, struct range_list **rl)
usr/src/tools/smatch/src/smatch_math.c
1690
get_rl_helper(expr, RL_ABSOLUTE, rl);
usr/src/tools/smatch/src/smatch_math.c
1692
*rl = alloc_whole_rl(get_type(expr));
usr/src/tools/smatch/src/smatch_math.c
1696
int get_real_absolute_rl(struct expression *expr, struct range_list **rl)
usr/src/tools/smatch/src/smatch_math.c
1699
get_rl_helper(expr, RL_REAL_ABSOLUTE, rl);
usr/src/tools/smatch/src/smatch_math.c
1701
*rl = alloc_whole_rl(get_type(expr));
usr/src/tools/smatch/src/smatch_math.c
1705
int custom_get_absolute_rl(struct expression *expr,
usr/src/tools/smatch/src/smatch_math.c
1706
struct range_list *(*fn)(struct expression *expr),
usr/src/tools/smatch/src/smatch_math.c
1713
ret = get_rl_helper(expr, RL_REAL_ABSOLUTE, rl);
usr/src/tools/smatch/src/smatch_math.c
1729
int get_hard_max(struct expression *expr, sval_t *sval)
usr/src/tools/smatch/src/smatch_math.c
173
static bool untrusted_type_min(struct expression *expr)
usr/src/tools/smatch/src/smatch_math.c
1733
if (!get_rl_helper(expr, RL_HARD, &rl) || !rl)
usr/src/tools/smatch/src/smatch_math.c
1739
int get_fuzzy_min(struct expression *expr, sval_t *sval)
usr/src/tools/smatch/src/smatch_math.c
1744
if (!get_rl_helper(expr, RL_FUZZY, &rl) || !rl)
usr/src/tools/smatch/src/smatch_math.c
1753
int get_fuzzy_max(struct expression *expr, sval_t *sval)
usr/src/tools/smatch/src/smatch_math.c
1758
if (!get_rl_helper(expr, RL_FUZZY, &rl) || !rl)
usr/src/tools/smatch/src/smatch_math.c
1767
int get_absolute_min(struct expression *expr, sval_t *sval)
usr/src/tools/smatch/src/smatch_math.c
177
rl = var_user_rl(expr);
usr/src/tools/smatch/src/smatch_math.c
1772
type = get_type(expr);
usr/src/tools/smatch/src/smatch_math.c
1776
get_rl_helper(expr, RL_REAL_ABSOLUTE, &rl);
usr/src/tools/smatch/src/smatch_math.c
1787
int get_absolute_max(struct expression *expr, sval_t *sval)
usr/src/tools/smatch/src/smatch_math.c
1792
type = get_type(expr);
usr/src/tools/smatch/src/smatch_math.c
1796
get_rl_helper(expr, RL_REAL_ABSOLUTE, &rl);
usr/src/tools/smatch/src/smatch_math.c
1807
int known_condition_true(struct expression *expr)
usr/src/tools/smatch/src/smatch_math.c
181
static bool handle_minus_preop(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
1811
if (!expr)
usr/src/tools/smatch/src/smatch_math.c
1814
if (__inline_fn && get_param_num(expr) >= 0) {
usr/src/tools/smatch/src/smatch_math.c
1815
if (get_implied_value(expr, &tmp) && tmp.value)
usr/src/tools/smatch/src/smatch_math.c
1820
if (get_value(expr, &tmp) && tmp.value)
usr/src/tools/smatch/src/smatch_math.c
1826
int known_condition_false(struct expression *expr)
usr/src/tools/smatch/src/smatch_math.c
1830
if (!expr)
usr/src/tools/smatch/src/smatch_math.c
1833
if (__inline_fn && get_param_num(expr) >= 0) {
usr/src/tools/smatch/src/smatch_math.c
1834
if (get_implied_value(expr, &tmp) && tmp.value == 0)
usr/src/tools/smatch/src/smatch_math.c
1839
if (expr_is_zero(expr))
usr/src/tools/smatch/src/smatch_math.c
1845
int implied_condition_true(struct expression *expr)
usr/src/tools/smatch/src/smatch_math.c
1849
if (!expr)
usr/src/tools/smatch/src/smatch_math.c
1852
if (known_condition_true(expr))
usr/src/tools/smatch/src/smatch_math.c
1854
if (get_implied_value(expr, &tmp) && tmp.value)
usr/src/tools/smatch/src/smatch_math.c
1857
if (expr->type == EXPR_POSTOP)
usr/src/tools/smatch/src/smatch_math.c
1858
return implied_condition_true(expr->unop);
usr/src/tools/smatch/src/smatch_math.c
1860
if (expr->type == EXPR_PREOP && expr->op == SPECIAL_DECREMENT)
usr/src/tools/smatch/src/smatch_math.c
1861
return implied_not_equal(expr->unop, 1);
usr/src/tools/smatch/src/smatch_math.c
1862
if (expr->type == EXPR_PREOP && expr->op == SPECIAL_INCREMENT)
usr/src/tools/smatch/src/smatch_math.c
1863
return implied_not_equal(expr->unop, -1);
usr/src/tools/smatch/src/smatch_math.c
1865
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_math.c
1866
switch (expr->type) {
usr/src/tools/smatch/src/smatch_math.c
1868
if (do_comparison(expr) == 1)
usr/src/tools/smatch/src/smatch_math.c
1872
if (expr->op == '!') {
usr/src/tools/smatch/src/smatch_math.c
1873
if (implied_condition_false(expr->unop))
usr/src/tools/smatch/src/smatch_math.c
1879
if (implied_not_equal(expr, 0) == 1)
usr/src/tools/smatch/src/smatch_math.c
1886
int implied_condition_false(struct expression *expr)
usr/src/tools/smatch/src/smatch_math.c
1891
if (!expr)
usr/src/tools/smatch/src/smatch_math.c
1894
if (known_condition_false(expr))
usr/src/tools/smatch/src/smatch_math.c
1897
switch (expr->type) {
usr/src/tools/smatch/src/smatch_math.c
1899
if (do_comparison(expr) == 2)
usr/src/tools/smatch/src/smatch_math.c
1902
if (expr->op == '!') {
usr/src/tools/smatch/src/smatch_math.c
1903
if (implied_condition_true(expr->unop))
usr/src/tools/smatch/src/smatch_math.c
1907
tmp = strip_expr(expr);
usr/src/tools/smatch/src/smatch_math.c
1908
if (tmp != expr)
usr/src/tools/smatch/src/smatch_math.c
1912
if (get_implied_value(expr, &sval) && sval.value == 0)
usr/src/tools/smatch/src/smatch_math.c
193
if (!get_rl_sval(expr->unop, implied, recurse_cnt, &rl, &sval))
usr/src/tools/smatch/src/smatch_math.c
227
if (untrusted_type_min(expr))
usr/src/tools/smatch/src/smatch_math.c
23
static bool get_rl_sval(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *sval_res);
usr/src/tools/smatch/src/smatch_math.c
24
static bool get_rl_internal(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res);
usr/src/tools/smatch/src/smatch_math.c
25
static bool handle_variable(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *res_sval);
usr/src/tools/smatch/src/smatch_math.c
252
static bool handle_preop_rl(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
254
switch (expr->op) {
usr/src/tools/smatch/src/smatch_math.c
256
return handle_ampersand_rl(expr, implied, recurse_cnt, res, res_sval);
usr/src/tools/smatch/src/smatch_math.c
258
return handle_negate_rl(expr, implied, recurse_cnt, res, res_sval);
usr/src/tools/smatch/src/smatch_math.c
26
static struct range_list *(*custom_handle_variable)(struct expression *expr);
usr/src/tools/smatch/src/smatch_math.c
260
return handle_bitwise_negate(expr, implied, recurse_cnt, res_sval);
usr/src/tools/smatch/src/smatch_math.c
262
return handle_minus_preop(expr, implied, recurse_cnt, res, res_sval);
usr/src/tools/smatch/src/smatch_math.c
264
return handle_variable(expr, implied, recurse_cnt, res, res_sval);
usr/src/tools/smatch/src/smatch_math.c
266
return handle_expression_statement_rl(expr, implied, recurse_cnt, res, res_sval);
usr/src/tools/smatch/src/smatch_math.c
272
static bool handle_divide_rl(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res)
usr/src/tools/smatch/src/smatch_math.c
278
type = get_type(expr);
usr/src/tools/smatch/src/smatch_math.c
28
static bool get_implied_value_internal(struct expression *expr, int *recurse_cnt, sval_t *res_sval);
usr/src/tools/smatch/src/smatch_math.c
280
get_rl_internal(expr->left, implied, recurse_cnt, &left_rl);
usr/src/tools/smatch/src/smatch_math.c
282
get_rl_internal(expr->right, implied, recurse_cnt, &right_rl);
usr/src/tools/smatch/src/smatch_math.c
29
static int get_absolute_rl_internal(struct expression *expr, struct range_list **rl, int *recurse_cnt);
usr/src/tools/smatch/src/smatch_math.c
297
static int handle_offset_subtraction(struct expression *expr)
usr/src/tools/smatch/src/smatch_math.c
304
type = get_type(expr);
usr/src/tools/smatch/src/smatch_math.c
311
left = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_math.c
312
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_math.c
359
static bool handle_subtract_rl(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res)
usr/src/tools/smatch/src/smatch_math.c
368
type = get_type(expr);
usr/src/tools/smatch/src/smatch_math.c
370
offset = handle_offset_subtraction(expr);
usr/src/tools/smatch/src/smatch_math.c
379
comparison = get_comparison(expr->left, expr->right);
usr/src/tools/smatch/src/smatch_math.c
382
get_rl_internal(expr->left, implied, recurse_cnt, &left_orig);
usr/src/tools/smatch/src/smatch_math.c
385
get_rl_internal(expr->right, implied, recurse_cnt, &right_orig);
usr/src/tools/smatch/src/smatch_math.c
453
static bool handle_mod_rl(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res)
usr/src/tools/smatch/src/smatch_math.c
459
if (!get_implied_value(expr->right, &right))
usr/src/tools/smatch/src/smatch_math.c
461
if (!get_implied_value(expr->left, &left))
usr/src/tools/smatch/src/smatch_math.c
468
if (!get_implied_value_internal(expr->right, recurse_cnt, &right))
usr/src/tools/smatch/src/smatch_math.c
471
right = sval_cast(get_type(expr), right);
usr/src/tools/smatch/src/smatch_math.c
474
if (get_rl_internal(expr->left, implied, recurse_cnt, &rl) && rl &&
usr/src/tools/smatch/src/smatch_math.c
482
static bool handle_bitwise_AND(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res)
usr/src/tools/smatch/src/smatch_math.c
491
type = get_type(expr);
usr/src/tools/smatch/src/smatch_math.c
493
if (!get_rl_internal(expr->left, implied, recurse_cnt, &left_rl))
usr/src/tools/smatch/src/smatch_math.c
500
if (!get_rl_internal(expr->right, implied, &new_recurse, &right_rl))
usr/src/tools/smatch/src/smatch_math.c
509
static bool use_rl_binop(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res)
usr/src/tools/smatch/src/smatch_math.c
517
type = get_type(expr);
usr/src/tools/smatch/src/smatch_math.c
519
get_absolute_rl_internal(expr->left, &left_rl, recurse_cnt);
usr/src/tools/smatch/src/smatch_math.c
520
get_absolute_rl_internal(expr->right, &right_rl, recurse_cnt);
usr/src/tools/smatch/src/smatch_math.c
526
*res = rl_binop(left_rl, expr->op, right_rl);
usr/src/tools/smatch/src/smatch_math.c
530
static bool handle_right_shift(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res)
usr/src/tools/smatch/src/smatch_math.c
538
if (get_rl_internal(expr->left, implied, recurse_cnt, &left_rl)) {
usr/src/tools/smatch/src/smatch_math.c
544
max = sval_type_max(get_type(expr->left));
usr/src/tools/smatch/src/smatch_math.c
545
min = sval_type_val(get_type(expr->left), 0);
usr/src/tools/smatch/src/smatch_math.c
548
if (get_rl_internal(expr->right, implied, recurse_cnt, &right_rl) &&
usr/src/tools/smatch/src/smatch_math.c
563
static bool handle_left_shift(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res)
usr/src/tools/smatch/src/smatch_math.c
571
if (!get_implied_value_internal(expr->right, recurse_cnt, &right))
usr/src/tools/smatch/src/smatch_math.c
573
if (!get_rl_internal(expr->left, implied, recurse_cnt, &left_rl)) {
usr/src/tools/smatch/src/smatch_math.c
576
left_rl = alloc_whole_rl(get_type(expr->left));
usr/src/tools/smatch/src/smatch_math.c
586
static bool handle_known_binop(struct expression *expr, sval_t *res)
usr/src/tools/smatch/src/smatch_math.c
590
if (!get_value(expr->left, &left))
usr/src/tools/smatch/src/smatch_math.c
592
if (!get_value(expr->right, &right))
usr/src/tools/smatch/src/smatch_math.c
594
*res = sval_binop(left, expr->op, right);
usr/src/tools/smatch/src/smatch_math.c
640
static bool handle_binop_rl_helper(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
648
type = get_promoted_type(get_type(expr->left), get_type(expr->right));
usr/src/tools/smatch/src/smatch_math.c
649
get_rl_internal(expr->left, implied, recurse_cnt, &left_rl);
usr/src/tools/smatch/src/smatch_math.c
651
get_rl_internal(expr->right, implied, recurse_cnt, &right_rl);
usr/src/tools/smatch/src/smatch_math.c
656
rl = handle_implied_binop(left_rl, expr->op, right_rl);
usr/src/tools/smatch/src/smatch_math.c
66
struct expression *expr;
usr/src/tools/smatch/src/smatch_math.c
662
switch (expr->op) {
usr/src/tools/smatch/src/smatch_math.c
664
return handle_mod_rl(expr, implied, recurse_cnt, res);
usr/src/tools/smatch/src/smatch_math.c
666
return handle_bitwise_AND(expr, implied, recurse_cnt, res);
usr/src/tools/smatch/src/smatch_math.c
669
return use_rl_binop(expr, implied, recurse_cnt, res);
usr/src/tools/smatch/src/smatch_math.c
671
return handle_right_shift(expr, implied, recurse_cnt, res);
usr/src/tools/smatch/src/smatch_math.c
673
return handle_left_shift(expr, implied, recurse_cnt, res);
usr/src/tools/smatch/src/smatch_math.c
675
return handle_subtract_rl(expr, implied, recurse_cnt, res);
usr/src/tools/smatch/src/smatch_math.c
677
return handle_divide_rl(expr, implied, recurse_cnt, res);
usr/src/tools/smatch/src/smatch_math.c
683
if (sval_binop_overflows(rl_min(left_rl), expr->op, rl_min(right_rl)))
usr/src/tools/smatch/src/smatch_math.c
685
if (sval_binop_overflows(rl_max(left_rl), expr->op, rl_max(right_rl)))
usr/src/tools/smatch/src/smatch_math.c
688
min = sval_binop(rl_min(left_rl), expr->op, rl_min(right_rl));
usr/src/tools/smatch/src/smatch_math.c
689
max = sval_binop(rl_max(left_rl), expr->op, rl_max(right_rl));
usr/src/tools/smatch/src/smatch_math.c
696
static bool handle_binop_rl(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
702
if (handle_known_binop(expr, &val)) {
usr/src/tools/smatch/src/smatch_math.c
710
rl = custom_handle_variable(expr);
usr/src/tools/smatch/src/smatch_math.c
717
state = get_extra_state(expr);
usr/src/tools/smatch/src/smatch_math.c
725
return handle_binop_rl_helper(expr, implied, recurse_cnt, res, res_sval);
usr/src/tools/smatch/src/smatch_math.c
728
static int do_comparison(struct expression *expr)
usr/src/tools/smatch/src/smatch_math.c
735
type = get_type(expr);
usr/src/tools/smatch/src/smatch_math.c
736
get_absolute_rl(expr->left, &left_ranges);
usr/src/tools/smatch/src/smatch_math.c
737
get_absolute_rl(expr->right, &right_ranges);
usr/src/tools/smatch/src/smatch_math.c
742
poss_true = possibly_true_rl(left_ranges, expr->op, right_ranges);
usr/src/tools/smatch/src/smatch_math.c
743
poss_false = possibly_false_rl(left_ranges, expr->op, right_ranges);
usr/src/tools/smatch/src/smatch_math.c
75
expr = stmt->label_statement->expression;
usr/src/tools/smatch/src/smatch_math.c
754
static bool handle_comparison_rl(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
759
if (expr->op == SPECIAL_EQUAL && expr->left->type == EXPR_TYPE) {
usr/src/tools/smatch/src/smatch_math.c
762
if (expr->right->type != EXPR_TYPE)
usr/src/tools/smatch/src/smatch_math.c
765
left = get_real_base_type(expr->left->symbol);
usr/src/tools/smatch/src/smatch_math.c
766
right = get_real_base_type(expr->right->symbol);
usr/src/tools/smatch/src/smatch_math.c
775
if (get_value(expr->left, &left) && get_value(expr->right, &right)) {
usr/src/tools/smatch/src/smatch_math.c
782
if (true_comparison_range(&tmp_left, expr->op, &tmp_right))
usr/src/tools/smatch/src/smatch_math.c
79
expr = stmt->expression;
usr/src/tools/smatch/src/smatch_math.c
792
cmp = do_comparison(expr);
usr/src/tools/smatch/src/smatch_math.c
806
static bool handle_logical_rl(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
813
if (get_value(expr->left, &left))
usr/src/tools/smatch/src/smatch_math.c
815
if (get_value(expr->right, &right))
usr/src/tools/smatch/src/smatch_math.c
818
if (get_implied_value_internal(expr->left, recurse_cnt, &left))
usr/src/tools/smatch/src/smatch_math.c
820
if (get_implied_value_internal(expr->right, recurse_cnt, &right))
usr/src/tools/smatch/src/smatch_math.c
824
switch (expr->op) {
usr/src/tools/smatch/src/smatch_math.c
83
return get_rl_sval(expr, implied, recurse_cnt, res, res_sval);
usr/src/tools/smatch/src/smatch_math.c
858
static bool handle_conditional_rl(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
86
static bool handle_expression_statement_rl(struct expression *expr, int implied,
usr/src/tools/smatch/src/smatch_math.c
865
cond_true = expr->cond_true;
usr/src/tools/smatch/src/smatch_math.c
867
cond_true = expr->conditional;
usr/src/tools/smatch/src/smatch_math.c
869
if (known_condition_true(expr->conditional))
usr/src/tools/smatch/src/smatch_math.c
871
if (known_condition_false(expr->conditional))
usr/src/tools/smatch/src/smatch_math.c
872
return get_rl_sval(expr->cond_false, implied, recurse_cnt, res, res_sval);
usr/src/tools/smatch/src/smatch_math.c
877
if (implied_condition_true(expr->conditional))
usr/src/tools/smatch/src/smatch_math.c
879
if (implied_condition_false(expr->conditional))
usr/src/tools/smatch/src/smatch_math.c
880
return get_rl_sval(expr->cond_false, implied, recurse_cnt, res, res_sval);
usr/src/tools/smatch/src/smatch_math.c
886
type = get_type(expr);
usr/src/tools/smatch/src/smatch_math.c
89
return last_stmt_rl(get_expression_statement(expr), implied, recurse_cnt, res, res_sval);
usr/src/tools/smatch/src/smatch_math.c
890
__split_whole_condition(expr->conditional);
usr/src/tools/smatch/src/smatch_math.c
896
get_rl_internal(expr->cond_false, implied, recurse_cnt, &false_rl);
usr/src/tools/smatch/src/smatch_math.c
910
static bool get_fuzzy_max_helper(struct expression *expr, sval_t *max)
usr/src/tools/smatch/src/smatch_math.c
915
if (get_hard_max(expr, &sval)) {
usr/src/tools/smatch/src/smatch_math.c
92
static bool handle_address(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
920
state = get_extra_state(expr);
usr/src/tools/smatch/src/smatch_math.c
923
*max = sval_cast(get_type(expr), estate_get_fuzzy_max(state));
usr/src/tools/smatch/src/smatch_math.c
927
static bool get_fuzzy_min_helper(struct expression *expr, sval_t *min)
usr/src/tools/smatch/src/smatch_math.c
932
state = get_extra_state(expr);
usr/src/tools/smatch/src/smatch_math.c
943
*min = sval_cast(get_type(expr), sval);
usr/src/tools/smatch/src/smatch_math.c
947
int get_const_value(struct expression *expr, sval_t *sval)
usr/src/tools/smatch/src/smatch_math.c
952
if (expr->type != EXPR_SYMBOL || !expr->symbol)
usr/src/tools/smatch/src/smatch_math.c
954
sym = expr->symbol;
usr/src/tools/smatch/src/smatch_math.c
958
*sval = sval_cast(get_type(expr), right);
usr/src/tools/smatch/src/smatch_math.c
964
struct range_list *var_to_absolute_rl(struct expression *expr)
usr/src/tools/smatch/src/smatch_math.c
969
state = get_extra_state(expr);
usr/src/tools/smatch/src/smatch_math.c
971
state = get_real_absolute_state(expr);
usr/src/tools/smatch/src/smatch_math.c
974
if (get_mtag_rl(expr, &rl))
usr/src/tools/smatch/src/smatch_math.c
976
if (get_db_type_rl(expr, &rl) && !is_whole_rl(rl))
usr/src/tools/smatch/src/smatch_math.c
978
return alloc_whole_rl(get_type(expr));
usr/src/tools/smatch/src/smatch_math.c
982
return alloc_whole_rl(get_type(expr));
usr/src/tools/smatch/src/smatch_math.c
986
static bool handle_variable(struct expression *expr, int implied, int *recurse_cnt, struct range_list **res, sval_t *res_sval)
usr/src/tools/smatch/src/smatch_math.c
993
if (get_const_value(expr, &sval)) {
usr/src/tools/smatch/src/smatch_modification_hooks.c
141
static void call_modification_hooks(struct expression *expr, struct expression *mod_expr, int late)
usr/src/tools/smatch/src/smatch_modification_hooks.c
146
name = expr_to_known_chunk_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_modification_hooks.c
154
static void db_param_add(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_modification_hooks.c
160
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_modification_hooks.c
161
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_modification_hooks.c
162
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_modification_hooks.c
165
arg = get_argument_from_call_expr(expr->args, param);
usr/src/tools/smatch/src/smatch_modification_hooks.c
174
call_modification_hooks_name_sym(name, sym, expr, BOTH);
usr/src/tools/smatch/src/smatch_modification_hooks.c
180
call_modification_hooks_name_sym(other_name, other_sym, expr, BOTH);
usr/src/tools/smatch/src/smatch_modification_hooks.c
189
static void match_assign(struct expression *expr, int late)
usr/src/tools/smatch/src/smatch_modification_hooks.c
191
call_modification_hooks(expr->left, expr, late);
usr/src/tools/smatch/src/smatch_modification_hooks.c
194
static void unop_expr(struct expression *expr, int late)
usr/src/tools/smatch/src/smatch_modification_hooks.c
196
if (expr->op != SPECIAL_DECREMENT && expr->op != SPECIAL_INCREMENT)
usr/src/tools/smatch/src/smatch_modification_hooks.c
199
call_modification_hooks(expr->unop, expr, late);
usr/src/tools/smatch/src/smatch_modification_hooks.c
202
static void match_call(struct expression *expr)
usr/src/tools/smatch/src/smatch_modification_hooks.c
210
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/smatch_modification_hooks.c
213
call_modification_hooks(tmp->unop, expr, BOTH);
usr/src/tools/smatch/src/smatch_modification_hooks.c
215
call_modification_hooks(deref_expression(tmp), expr, BOTH);
usr/src/tools/smatch/src/smatch_modification_hooks.c
221
struct expression *expr;
usr/src/tools/smatch/src/smatch_modification_hooks.c
223
FOR_EACH_PTR(stmt->asm_outputs, expr) {
usr/src/tools/smatch/src/smatch_modification_hooks.c
224
if (expr->type != EXPR_ASM_OPERAND)
usr/src/tools/smatch/src/smatch_modification_hooks.c
226
call_modification_hooks(expr->expr, NULL, late);
usr/src/tools/smatch/src/smatch_modification_hooks.c
227
} END_FOR_EACH_PTR(expr);
usr/src/tools/smatch/src/smatch_modification_hooks.c
230
static void match_assign_early(struct expression *expr)
usr/src/tools/smatch/src/smatch_modification_hooks.c
232
match_assign(expr, EARLY);
usr/src/tools/smatch/src/smatch_modification_hooks.c
235
static void unop_expr_early(struct expression *expr)
usr/src/tools/smatch/src/smatch_modification_hooks.c
237
unop_expr(expr, EARLY);
usr/src/tools/smatch/src/smatch_modification_hooks.c
245
static void match_assign_late(struct expression *expr)
usr/src/tools/smatch/src/smatch_modification_hooks.c
247
match_assign(expr, LATE);
usr/src/tools/smatch/src/smatch_modification_hooks.c
250
static void unop_expr_late(struct expression *expr)
usr/src/tools/smatch/src/smatch_modification_hooks.c
252
unop_expr(expr, LATE);
usr/src/tools/smatch/src/smatch_modification_hooks.c
260
struct smatch_state *get_modification_state(struct expression *expr)
usr/src/tools/smatch/src/smatch_modification_hooks.c
262
return get_state_expr(my_id, expr);
usr/src/tools/smatch/src/smatch_modification_hooks.c
49
static struct smatch_state *alloc_my_state(struct expression *expr, struct smatch_state *prev)
usr/src/tools/smatch/src/smatch_modification_hooks.c
55
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_modification_hooks.c
56
name = expr_to_str(expr);
usr/src/tools/smatch/src/smatch_modification_hooks.c
66
data->cur = expr;
usr/src/tools/smatch/src/smatch_mtag.c
104
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_mtag.c
105
if (expr->type != EXPR_CALL ||
usr/src/tools/smatch/src/smatch_mtag.c
106
!expr->fn ||
usr/src/tools/smatch/src/smatch_mtag.c
107
expr->fn->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_mtag.c
109
return expr_to_str(expr->fn);
usr/src/tools/smatch/src/smatch_mtag.c
112
static void update_mtag_info(struct expression *expr, mtag_t tag,
usr/src/tools/smatch/src/smatch_mtag.c
120
allocator = get_allocator_info(expr, state);
usr/src/tools/smatch/src/smatch_mtag.c
125
struct smatch_state *get_mtag_return(struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_mtag.c
135
if (!expr || expr->type != EXPR_ASSIGNMENT || expr->op != '=')
usr/src/tools/smatch/src/smatch_mtag.c
137
if (!is_fresh_alloc(expr->right))
usr/src/tools/smatch/src/smatch_mtag.c
142
left = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_mtag.c
143
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_mtag.c
160
update_mtag_info(expr, tag, left_name, buf, state);
usr/src/tools/smatch/src/smatch_mtag.c
168
int get_string_mtag(struct expression *expr, mtag_t *tag)
usr/src/tools/smatch/src/smatch_mtag.c
172
if (expr->type != EXPR_STRING || !expr->string)
usr/src/tools/smatch/src/smatch_mtag.c
177
*tag = str_to_mtag(expr->string->data);
usr/src/tools/smatch/src/smatch_mtag.c
232
static int get_array_mtag_offset(struct expression *expr, mtag_t *tag, int *offset)
usr/src/tools/smatch/src/smatch_mtag.c
239
if (!is_array(expr))
usr/src/tools/smatch/src/smatch_mtag.c
242
array = get_array_base(expr);
usr/src/tools/smatch/src/smatch_mtag.c
255
offset_expr = get_array_offset(expr);
usr/src/tools/smatch/src/smatch_mtag.c
263
struct range_list *swap_mtag_seed(struct expression *expr, struct range_list *rl)
usr/src/tools/smatch/src/smatch_mtag.c
275
name = expr_to_str(expr);
usr/src/tools/smatch/src/smatch_mtag.c
283
int create_mtag_alias(mtag_t tag, struct expression *expr, mtag_t *new)
usr/src/tools/smatch/src/smatch_mtag.c
299
lines_from_start = expr->pos.line - cur_func_sym->pos.line;
usr/src/tools/smatch/src/smatch_mtag.c
300
str = expr_to_str(expr);
usr/src/tools/smatch/src/smatch_mtag.c
310
static int get_implied_mtag_offset(struct expression *expr, mtag_t *tag, int *offset)
usr/src/tools/smatch/src/smatch_mtag.c
316
type = get_type(expr);
usr/src/tools/smatch/src/smatch_mtag.c
319
state = get_extra_state(expr);
usr/src/tools/smatch/src/smatch_mtag.c
341
int expr_to_mtag_offset(struct expression *expr, mtag_t *tag, int *offset)
usr/src/tools/smatch/src/smatch_mtag.c
349
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_mtag.c
350
if (!expr)
usr/src/tools/smatch/src/smatch_mtag.c
353
if (is_array(expr))
usr/src/tools/smatch/src/smatch_mtag.c
354
return get_array_mtag_offset(expr, tag, offset);
usr/src/tools/smatch/src/smatch_mtag.c
356
if (expr->type == EXPR_PREOP && expr->op == '*') {
usr/src/tools/smatch/src/smatch_mtag.c
357
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_mtag.c
358
return get_implied_mtag_offset(expr, tag, offset);
usr/src/tools/smatch/src/smatch_mtag.c
359
} else if (expr->type == EXPR_DEREF) {
usr/src/tools/smatch/src/smatch_mtag.c
362
while (expr->type == EXPR_DEREF) {
usr/src/tools/smatch/src/smatch_mtag.c
363
tmp = get_member_offset_from_deref(expr);
usr/src/tools/smatch/src/smatch_mtag.c
367
expr = strip_expr(expr->deref);
usr/src/tools/smatch/src/smatch_mtag.c
370
if (expr->type == EXPR_PREOP && expr->op == '*') {
usr/src/tools/smatch/src/smatch_mtag.c
371
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_mtag.c
373
if (get_implied_mtag_offset(expr, tag, &tmp_offset)) {
usr/src/tools/smatch/src/smatch_mtag.c
380
} else if (expr->type == EXPR_SYMBOL) {
usr/src/tools/smatch/src/smatch_mtag.c
381
return get_symbol_mtag(expr->symbol, tag);
usr/src/tools/smatch/src/smatch_mtag.c
384
} else if (expr->type == EXPR_SYMBOL) {
usr/src/tools/smatch/src/smatch_mtag.c
385
return get_symbol_mtag(expr->symbol, tag);
usr/src/tools/smatch/src/smatch_mtag.c
404
int get_mtag_sval(struct expression *expr, sval_t *sval)
usr/src/tools/smatch/src/smatch_mtag.c
413
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_mtag.c
415
type = get_type(expr);
usr/src/tools/smatch/src/smatch_mtag.c
427
if (expr->type == EXPR_STRING && get_string_mtag(expr, &tag))
usr/src/tools/smatch/src/smatch_mtag.c
430
if (expr->type == EXPR_SYMBOL &&
usr/src/tools/smatch/src/smatch_mtag.c
432
get_toplevel_mtag(expr->symbol, &tag))
usr/src/tools/smatch/src/smatch_mtag.c
435
if (expr->type == EXPR_PREOP && expr->op == '&') {
usr/src/tools/smatch/src/smatch_mtag.c
436
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_mtag.c
437
if (expr_to_mtag_offset(expr, &tag, &offset))
usr/src/tools/smatch/src/smatch_mtag.c
442
if (get_implied_mtag_offset(expr, &tag, &offset))
usr/src/tools/smatch/src/smatch_mtag.c
95
static char *get_allocator_info(struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_mtag.c
99
if (expr->type != EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_mtag_data.c
146
static bool parent_is_fresh_alloc(struct expression *expr)
usr/src/tools/smatch/src/smatch_mtag_data.c
150
sym = expr_to_sym(expr);
usr/src/tools/smatch/src/smatch_mtag_data.c
156
void update_mtag_data(struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_mtag_data.c
164
if (!expr)
usr/src/tools/smatch/src/smatch_mtag_data.c
166
if (is_local_variable(expr))
usr/src/tools/smatch/src/smatch_mtag_data.c
168
if (is_ignored_macro(expr))
usr/src/tools/smatch/src/smatch_mtag_data.c
170
if (is_head_next(expr))
usr/src/tools/smatch/src/smatch_mtag_data.c
172
name = expr_to_var(expr);
usr/src/tools/smatch/src/smatch_mtag_data.c
179
if (!expr_to_mtag_offset(expr, &tag, &offset))
usr/src/tools/smatch/src/smatch_mtag_data.c
182
type = get_type(expr);
usr/src/tools/smatch/src/smatch_mtag_data.c
186
if (parent_is_fresh_alloc(expr))
usr/src/tools/smatch/src/smatch_mtag_data.c
194
static void match_global_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_mtag_data.c
201
if (is_ignored_macro(expr))
usr/src/tools/smatch/src/smatch_mtag_data.c
203
if (is_head_next(expr->left))
usr/src/tools/smatch/src/smatch_mtag_data.c
205
name = expr_to_var(expr->left);
usr/src/tools/smatch/src/smatch_mtag_data.c
212
if (!expr_to_mtag_offset(expr->left, &tag, &offset))
usr/src/tools/smatch/src/smatch_mtag_data.c
215
get_absolute_rl(expr->right, &rl);
usr/src/tools/smatch/src/smatch_mtag_data.c
313
int get_mtag_rl(struct expression *expr, struct range_list **rl)
usr/src/tools/smatch/src/smatch_mtag_data.c
319
if (is_local_variable(expr))
usr/src/tools/smatch/src/smatch_mtag_data.c
321
if (!expr_to_mtag_offset(expr, &tag, &offset))
usr/src/tools/smatch/src/smatch_mtag_data.c
326
type = get_type(expr);
usr/src/tools/smatch/src/smatch_mtag_data.c
72
static bool is_ignored_macro(struct expression *expr)
usr/src/tools/smatch/src/smatch_mtag_data.c
76
macro = get_macro_name(expr->pos);
usr/src/tools/smatch/src/smatch_mtag_data.c
84
static bool is_head_next(struct expression *expr)
usr/src/tools/smatch/src/smatch_mtag_data.c
93
if (expr->type != EXPR_DEREF)
usr/src/tools/smatch/src/smatch_mtag_data.c
95
if (!expr->member || !expr->member->name ||
usr/src/tools/smatch/src/smatch_mtag_data.c
96
strcmp(expr->member->name, "next") != 0)
usr/src/tools/smatch/src/smatch_mtag_data.c
99
type = get_type(expr->deref);
usr/src/tools/smatch/src/smatch_mtag_map.c
29
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_mtag_map.c
36
if (expr->op != '=')
usr/src/tools/smatch/src/smatch_mtag_map.c
39
left = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_mtag_map.c
40
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_nul_terminator.c
112
static void match_string_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_nul_terminator.c
116
if (expr->op != '=')
usr/src/tools/smatch/src/smatch_nul_terminator.c
118
state = get_terminated_state(expr->right);
usr/src/tools/smatch/src/smatch_nul_terminator.c
121
set_terminated(expr->left, state);
usr/src/tools/smatch/src/smatch_nul_terminator.c
152
static void match_call_info(struct expression *expr)
usr/src/tools/smatch/src/smatch_nul_terminator.c
159
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/smatch_nul_terminator.c
165
sql_insert_caller_info(expr, TERMINATED, i, "$",
usr/src/tools/smatch/src/smatch_nul_terminator.c
184
static void split_return_info(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_nul_terminator.c
213
returned_sym = expr_to_sym(expr);
usr/src/tools/smatch/src/smatch_nul_terminator.c
231
static void return_info_terminated(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_nul_terminator.c
238
arg = expr->left;
usr/src/tools/smatch/src/smatch_nul_terminator.c
240
struct expression *call = expr;
usr/src/tools/smatch/src/smatch_nul_terminator.c
268
bool is_nul_terminated(struct expression *expr)
usr/src/tools/smatch/src/smatch_nul_terminator.c
270
if (get_terminated_state(expr) == &terminated)
usr/src/tools/smatch/src/smatch_nul_terminator.c
275
static void match_strnlen_test(struct expression *expr)
usr/src/tools/smatch/src/smatch_nul_terminator.c
280
if (expr->type != EXPR_COMPARE)
usr/src/tools/smatch/src/smatch_nul_terminator.c
282
if (expr->op != SPECIAL_EQUAL && expr->op != SPECIAL_NOTEQUAL)
usr/src/tools/smatch/src/smatch_nul_terminator.c
285
left = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_nul_terminator.c
299
(expr->op == SPECIAL_EQUAL) ? &terminated : NULL,
usr/src/tools/smatch/src/smatch_nul_terminator.c
300
(expr->op == SPECIAL_NOTEQUAL) ? &terminated : NULL);
usr/src/tools/smatch/src/smatch_nul_terminator.c
303
(expr->op == SPECIAL_EQUAL) ? &terminated : NULL,
usr/src/tools/smatch/src/smatch_nul_terminator.c
304
(expr->op == SPECIAL_NOTEQUAL) ? &terminated : NULL);
usr/src/tools/smatch/src/smatch_nul_terminator.c
35
static void set_terminated(struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_nul_terminator.c
40
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_nul_terminator.c
47
static void match_nul_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_nul_terminator.c
53
if (expr->op != '=')
usr/src/tools/smatch/src/smatch_nul_terminator.c
56
if (!get_value(expr->right, &sval) || sval.value != 0)
usr/src/tools/smatch/src/smatch_nul_terminator.c
59
array = get_array_base(expr->left);
usr/src/tools/smatch/src/smatch_nul_terminator.c
90
static struct smatch_state *get_terminated_state(struct expression *expr)
usr/src/tools/smatch/src/smatch_nul_terminator.c
94
if (!expr)
usr/src/tools/smatch/src/smatch_nul_terminator.c
96
if (expr->type == EXPR_STRING)
usr/src/tools/smatch/src/smatch_nul_terminator.c
98
sm = get_sm_state_expr(my_id, expr);
usr/src/tools/smatch/src/smatch_param_cleared.c
136
static void match_usb_control_msg(const char *fn, struct expression *expr, void *_size_arg)
usr/src/tools/smatch/src/smatch_param_cleared.c
141
inout = get_argument_from_call_expr(expr->args, 3);
usr/src/tools/smatch/src/smatch_param_cleared.c
146
db_param_cleared(expr, 6, (char *)"$", (char *)"");
usr/src/tools/smatch/src/smatch_param_cleared.c
149
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_param_cleared.c
157
type = get_type(expr->left);
usr/src/tools/smatch/src/smatch_param_cleared.c
160
set_state_expr(my_id, expr->left, &cleared);
usr/src/tools/smatch/src/smatch_param_cleared.c
163
static void match_array_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_param_cleared.c
167
if (!is_array(expr->left))
usr/src/tools/smatch/src/smatch_param_cleared.c
170
array_expr = get_array_base(expr->left);
usr/src/tools/smatch/src/smatch_param_cleared.c
38
static void db_param_cleared(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_param_cleared.c
44
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_param_cleared.c
45
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_param_cleared.c
46
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_param_cleared.c
49
arg = get_argument_from_call_expr(expr->args, param);
usr/src/tools/smatch/src/smatch_param_cleared.c
63
static void match_memset(const char *fn, struct expression *expr, void *arg)
usr/src/tools/smatch/src/smatch_param_cleared.c
65
db_param_cleared(expr, PTR_INT(arg), (char *)"$", (char *)"0");
usr/src/tools/smatch/src/smatch_param_cleared.c
68
static void match_memcpy(const char *fn, struct expression *expr, void *arg)
usr/src/tools/smatch/src/smatch_param_cleared.c
70
db_param_cleared(expr, PTR_INT(arg), (char *)"$", (char *)"");
usr/src/tools/smatch/src/smatch_param_cleared.c
73
static void print_return_value_param(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_param_compare_limit.c
174
static void print_return_comparison(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_param_compare_limit.c
306
static void db_return_comparison(struct expression *expr, int left_param, char *key, char *value)
usr/src/tools/smatch/src/smatch_param_compare_limit.c
318
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_param_compare_limit.c
319
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_param_compare_limit.c
320
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_param_compare_limit.c
326
left_arg = get_argument_from_call_expr(expr->args, left_param);
usr/src/tools/smatch/src/smatch_param_compare_limit.c
330
right_arg = get_argument_from_call_expr(expr->args, right_param);
usr/src/tools/smatch/src/smatch_param_filter.c
159
static void print_return_value_param(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_param_filter.c
50
static void match_save_states(struct expression *expr)
usr/src/tools/smatch/src/smatch_param_filter.c
56
static void match_restore_states(struct expression *expr)
usr/src/tools/smatch/src/smatch_param_filter.c
93
static void extra_mod_hook(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_param_limit.c
133
static void print_return_value_param(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_param_limit.c
169
static void extra_mod_hook(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_param_limit.c
182
static void match_save_states(struct expression *expr)
usr/src/tools/smatch/src/smatch_param_limit.c
188
static void match_restore_states(struct expression *expr)
usr/src/tools/smatch/src/smatch_param_set.c
111
if (!is_array(expr->left))
usr/src/tools/smatch/src/smatch_param_set.c
113
array = get_array_base(expr->left);
usr/src/tools/smatch/src/smatch_param_set.c
114
offset = get_array_offset(expr->left);
usr/src/tools/smatch/src/smatch_param_set.c
124
get_absolute_rl(expr->right, &rl);
usr/src/tools/smatch/src/smatch_param_set.c
125
rl = cast_rl(get_type(expr->left), rl);
usr/src/tools/smatch/src/smatch_param_set.c
175
static void print_return_value_param_helper(int return_id, char *return_ranges, struct expression *expr, int limit)
usr/src/tools/smatch/src/smatch_param_set.c
258
static void print_return_value_param(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_param_set.c
260
print_return_value_param_helper(return_id, return_ranges, expr, 0);
usr/src/tools/smatch/src/smatch_param_set.c
263
void print_limited_param_set(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_param_set.c
265
print_return_value_param_helper(return_id, return_ranges, expr, 1000);
usr/src/tools/smatch/src/smatch_param_set.c
313
int param_was_set(struct expression *expr)
usr/src/tools/smatch/src/smatch_param_set.c
319
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_param_set.c
86
static void extra_mod_hook(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_param_set.c
99
static void match_array_assignment(struct expression *expr)
usr/src/tools/smatch/src/smatch_param_to_mtag_data.c
106
set_state_expr(my_id, expr->right, alloc_tag_data_state(tag, name, offset));
usr/src/tools/smatch/src/smatch_param_to_mtag_data.c
110
static void propogate_assignment(struct expression *expr, mtag_t tag, int offset, int param, char *key)
usr/src/tools/smatch/src/smatch_param_to_mtag_data.c
118
arg = get_argument_from_call_expr(expr->args, param);
usr/src/tools/smatch/src/smatch_param_to_mtag_data.c
135
static void assign_to_alias(struct expression *expr, int param, mtag_t tag, int offset, char *key)
usr/src/tools/smatch/src/smatch_param_to_mtag_data.c
143
arg = get_argument_from_call_expr(expr->args, param);
usr/src/tools/smatch/src/smatch_param_to_mtag_data.c
153
if (!create_mtag_alias(tag, expr, &alias))
usr/src/tools/smatch/src/smatch_param_to_mtag_data.c
164
static void call_does_mtag_assign(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_param_to_mtag_data.c
170
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_param_to_mtag_data.c
171
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_param_to_mtag_data.c
172
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_param_to_mtag_data.c
182
propogate_assignment(expr, tag, offset, param, key);
usr/src/tools/smatch/src/smatch_param_to_mtag_data.c
183
assign_to_alias(expr, param, tag, offset, key);
usr/src/tools/smatch/src/smatch_param_to_mtag_data.c
186
static void print_stored_to_mtag(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_param_to_mtag_data.c
79
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_param_to_mtag_data.c
88
if (expr->op != '=')
usr/src/tools/smatch/src/smatch_param_to_mtag_data.c
90
left = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_param_to_mtag_data.c
93
right_sym = expr_to_sym(expr->right);
usr/src/tools/smatch/src/smatch_param_used.c
105
static void match_restore_states(struct expression *expr)
usr/src/tools/smatch/src/smatch_param_used.c
99
static void match_save_states(struct expression *expr)
usr/src/tools/smatch/src/smatch_parse_call_math.c
268
static int get_arg_number(struct expression *expr)
usr/src/tools/smatch/src/smatch_parse_call_math.c
274
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_parse_call_math.c
275
if (expr->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_parse_call_math.c
277
sym = expr->symbol;
usr/src/tools/smatch/src/smatch_parse_call_math.c
325
static int format_variable_helper(char *buf, int remaining, struct expression *expr)
usr/src/tools/smatch/src/smatch_parse_call_math.c
330
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_parse_call_math.c
336
static int format_call_to_param_mapping(char *buf, int remaining, struct expression *expr)
usr/src/tools/smatch/src/smatch_parse_call_math.c
341
name = map_call_to_param_name_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_parse_call_math.c
357
static int format_expr_helper(char *buf, int remaining, struct expression *expr)
usr/src/tools/smatch/src/smatch_parse_call_math.c
363
if (!expr)
usr/src/tools/smatch/src/smatch_parse_call_math.c
368
if (expr->type == EXPR_BINOP) {
usr/src/tools/smatch/src/smatch_parse_call_math.c
369
ret = format_expr_helper(cur, remaining, expr->left);
usr/src/tools/smatch/src/smatch_parse_call_math.c
377
ret = snprintf(cur, remaining, " %s ", show_special(expr->op));
usr/src/tools/smatch/src/smatch_parse_call_math.c
383
ret = format_expr_helper(cur, remaining, expr->right);
usr/src/tools/smatch/src/smatch_parse_call_math.c
393
if (!param_was_set(expr) && get_implied_value(expr, &sval) && !is_mtag_sval(sval)) {
usr/src/tools/smatch/src/smatch_parse_call_math.c
401
if (expr->type == EXPR_CALL)
usr/src/tools/smatch/src/smatch_parse_call_math.c
402
return format_call_to_param_mapping(cur, remaining, expr);
usr/src/tools/smatch/src/smatch_parse_call_math.c
404
return format_variable_helper(cur, remaining, expr);
usr/src/tools/smatch/src/smatch_parse_call_math.c
407
static char *format_expr(struct expression *expr)
usr/src/tools/smatch/src/smatch_parse_call_math.c
412
ret = format_expr_helper(buf, sizeof(buf), expr);
usr/src/tools/smatch/src/smatch_parse_call_math.c
419
char *get_value_in_terms_of_parameter_math(struct expression *expr)
usr/src/tools/smatch/src/smatch_parse_call_math.c
426
tmp = get_assigned_expr(expr);
usr/src/tools/smatch/src/smatch_parse_call_math.c
428
expr = tmp;
usr/src/tools/smatch/src/smatch_parse_call_math.c
429
if (param_was_set(expr))
usr/src/tools/smatch/src/smatch_parse_call_math.c
432
if (get_implied_value(expr, &dummy))
usr/src/tools/smatch/src/smatch_parse_call_math.c
435
ret = format_expr_helper(buf, sizeof(buf), expr);
usr/src/tools/smatch/src/smatch_parse_call_math.c
444
struct expression *tmp, *expr;
usr/src/tools/smatch/src/smatch_parse_call_math.c
450
expr = get_assigned_expr_name_sym(name, sym);
usr/src/tools/smatch/src/smatch_parse_call_math.c
451
if (!expr)
usr/src/tools/smatch/src/smatch_parse_call_math.c
453
while ((tmp = get_assigned_expr(expr))) {
usr/src/tools/smatch/src/smatch_parse_call_math.c
454
expr = strip_expr(tmp);
usr/src/tools/smatch/src/smatch_parse_call_math.c
459
if (get_implied_value(expr, &sval))
usr/src/tools/smatch/src/smatch_parse_call_math.c
462
ret = format_expr_helper(buf, sizeof(buf), expr);
usr/src/tools/smatch/src/smatch_parse_call_math.c
470
static void match_alloc(const char *fn, struct expression *expr, void *_size_arg)
usr/src/tools/smatch/src/smatch_parse_call_math.c
477
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_parse_call_math.c
483
set_state_expr(my_id, expr->left, alloc_state_sname(sname));
usr/src/tools/smatch/src/smatch_parse_call_math.c
552
static char *get_allocation_recipe_from_call(struct expression *expr)
usr/src/tools/smatch/src/smatch_parse_call_math.c
558
if (is_fake_call(expr))
usr/src/tools/smatch/src/smatch_parse_call_math.c
560
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_parse_call_math.c
561
if (expr->fn->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_parse_call_math.c
563
sym = expr->fn->symbol;
usr/src/tools/smatch/src/smatch_parse_call_math.c
573
return swap_format(expr, buf_size_recipe);
usr/src/tools/smatch/src/smatch_parse_call_math.c
594
return swap_format(expr, buf_size_recipe);
usr/src/tools/smatch/src/smatch_parse_call_math.c
597
static void match_call_assignment(struct expression *expr)
usr/src/tools/smatch/src/smatch_parse_call_math.c
601
sname = get_allocation_recipe_from_call(expr->right);
usr/src/tools/smatch/src/smatch_parse_call_math.c
604
set_state_expr(my_id, expr->left, alloc_state_sname(sname));
usr/src/tools/smatch/src/smatch_parse_call_math.c
607
const char *get_allocation_math(struct expression *expr)
usr/src/tools/smatch/src/smatch_parse_call_math.c
613
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_parse_call_math.c
614
while ((tmp = get_assigned_expr(expr))) {
usr/src/tools/smatch/src/smatch_parse_call_math.c
617
expr = strip_expr(tmp);
usr/src/tools/smatch/src/smatch_parse_call_math.c
619
if (!expr)
usr/src/tools/smatch/src/smatch_parse_call_math.c
622
if (expr->type == EXPR_CALL)
usr/src/tools/smatch/src/smatch_parse_call_math.c
623
return get_allocation_recipe_from_call(expr);
usr/src/tools/smatch/src/smatch_parse_call_math.c
625
state = get_state_expr(my_id, expr);
usr/src/tools/smatch/src/smatch_parsed_conditions.c
48
void record_condition(struct expression *expr)
usr/src/tools/smatch/src/smatch_parsed_conditions.c
53
if (get_value(expr, &val))
usr/src/tools/smatch/src/smatch_parsed_conditions.c
59
snprintf(name, sizeof(name), "condition %p", expr);
usr/src/tools/smatch/src/smatch_parsed_conditions.c
87
struct sm_state *parsed_condition_implication_hook(struct expression *expr,
usr/src/tools/smatch/src/smatch_parsed_conditions.c
96
snprintf(name, sizeof(name), "condition %p", expr);
usr/src/tools/smatch/src/smatch_passes_array_size.c
21
static int find_param_eq(struct expression *expr, int size)
usr/src/tools/smatch/src/smatch_passes_array_size.c
28
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/smatch_passes_array_size.c
39
static void match_call(struct expression *expr)
usr/src/tools/smatch/src/smatch_passes_array_size.c
53
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/smatch_passes_array_size.c
58
arg_type = get_arg_type(expr->fn, i);
usr/src/tools/smatch/src/smatch_passes_array_size.c
64
nr = find_param_eq(expr, size);
usr/src/tools/smatch/src/smatch_passes_array_size.c
67
sql_insert_caller_info(expr, ELEM_COUNT, i, buf, elem_count);
usr/src/tools/smatch/src/smatch_passes_array_size.c
73
nr = find_param_eq(expr, bytes);
usr/src/tools/smatch/src/smatch_passes_array_size.c
76
sql_insert_caller_info(expr, BYTE_COUNT, i, buf, byte_count);
usr/src/tools/smatch/src/smatch_ranges.c
687
void call_results_to_rl(struct expression *expr, struct symbol *type, const char *value, struct range_list **rl)
usr/src/tools/smatch/src/smatch_ranges.c
691
str_to_dinfo(strip_expr(expr), type, value, &dinfo);
usr/src/tools/smatch/src/smatch_real_absolute.c
104
if (expr->op != '=')
usr/src/tools/smatch/src/smatch_real_absolute.c
106
if (is_fake_call(expr->right))
usr/src/tools/smatch/src/smatch_real_absolute.c
111
get_real_absolute_rl(expr->right, &rl);
usr/src/tools/smatch/src/smatch_real_absolute.c
113
type = get_type(expr->left);
usr/src/tools/smatch/src/smatch_real_absolute.c
121
if (is_whole_rl(rl) && !get_state_expr(my_id, expr->left))
usr/src/tools/smatch/src/smatch_real_absolute.c
124
if (rl_to_sval(rl, &sval) && !get_state_expr(my_id, expr->left))
usr/src/tools/smatch/src/smatch_real_absolute.c
127
set_state_expr(my_id, expr->left, alloc_estate_rl(clone_rl(rl)));
usr/src/tools/smatch/src/smatch_real_absolute.c
130
struct smatch_state *get_real_absolute_state(struct expression *expr)
usr/src/tools/smatch/src/smatch_real_absolute.c
132
return get_state_expr(my_id, expr);
usr/src/tools/smatch/src/smatch_real_absolute.c
39
void set_real_absolute(struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_real_absolute.c
41
set_state_expr(my_id, expr, clone_estate(state));
usr/src/tools/smatch/src/smatch_real_absolute.c
44
static void extra_mod_hook(const char *name, struct symbol *sym, struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_real_absolute.c
98
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_recurse.c
101
ret = recurse(expr->init_expr, func, param, nr);
usr/src/tools/smatch/src/smatch_recurse.c
114
static int has_symbol_helper(struct expression *expr, void *_sym)
usr/src/tools/smatch/src/smatch_recurse.c
118
if (!expr || expr->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_recurse.c
120
if (expr->symbol == sym)
usr/src/tools/smatch/src/smatch_recurse.c
125
int has_symbol(struct expression *expr, struct symbol *sym)
usr/src/tools/smatch/src/smatch_recurse.c
127
return recurse(expr, has_symbol_helper, sym, 0);
usr/src/tools/smatch/src/smatch_recurse.c
131
struct expression *expr;
usr/src/tools/smatch/src/smatch_recurse.c
136
static int has_var_helper(struct expression *expr, void *_var)
usr/src/tools/smatch/src/smatch_recurse.c
143
if (!expr)
usr/src/tools/smatch/src/smatch_recurse.c
145
if (expr->type != xns->expr->type)
usr/src/tools/smatch/src/smatch_recurse.c
148
if (expr->op != xns->expr->op)
usr/src/tools/smatch/src/smatch_recurse.c
151
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_recurse.c
161
int has_variable(struct expression *expr, struct expression *var)
usr/src/tools/smatch/src/smatch_recurse.c
166
xns.expr = var;
usr/src/tools/smatch/src/smatch_recurse.c
170
ret = recurse(expr, has_var_helper, &xns, 0);
usr/src/tools/smatch/src/smatch_recurse.c
176
static int has_inc_dec_helper(struct expression *expr, void *unused)
usr/src/tools/smatch/src/smatch_recurse.c
178
if (!expr)
usr/src/tools/smatch/src/smatch_recurse.c
180
if (expr->type != EXPR_PREOP && expr->type != EXPR_POSTOP)
usr/src/tools/smatch/src/smatch_recurse.c
182
if (expr->op == SPECIAL_INCREMENT || expr->op == SPECIAL_DECREMENT)
usr/src/tools/smatch/src/smatch_recurse.c
187
int has_inc_dec(struct expression *expr)
usr/src/tools/smatch/src/smatch_recurse.c
189
return recurse(expr, has_inc_dec_helper, NULL, 0);
usr/src/tools/smatch/src/smatch_recurse.c
22
static int recurse(struct expression *expr,
usr/src/tools/smatch/src/smatch_recurse.c
23
int (func)(struct expression *expr, void *p),
usr/src/tools/smatch/src/smatch_recurse.c
28
if (!expr)
usr/src/tools/smatch/src/smatch_recurse.c
31
ret = func(expr, param);
usr/src/tools/smatch/src/smatch_recurse.c
39
switch (expr->type) {
usr/src/tools/smatch/src/smatch_recurse.c
41
ret = recurse(expr->unop, func, param, nr);
usr/src/tools/smatch/src/smatch_recurse.c
44
ret = recurse(expr->unop, func, param, nr);
usr/src/tools/smatch/src/smatch_recurse.c
53
ret = recurse(expr->left, func, param, nr);
usr/src/tools/smatch/src/smatch_recurse.c
56
ret = recurse(expr->right, func, param, nr);
usr/src/tools/smatch/src/smatch_recurse.c
59
ret = recurse(expr->right, func, param, nr);
usr/src/tools/smatch/src/smatch_recurse.c
62
ret = recurse(expr->left, func, param, nr);
usr/src/tools/smatch/src/smatch_recurse.c
65
ret = recurse(expr->deref, func, param, nr);
usr/src/tools/smatch/src/smatch_recurse.c
68
ret = recurse(expr->base, func, param, nr);
usr/src/tools/smatch/src/smatch_recurse.c
72
ret = recurse(expr->cast_expression, func, param, nr);
usr/src/tools/smatch/src/smatch_recurse.c
80
ret = recurse(expr->conditional, func, param, nr);
usr/src/tools/smatch/src/smatch_recurse.c
83
ret = recurse(expr->cond_true, func, param, nr);
usr/src/tools/smatch/src/smatch_recurse.c
86
ret = recurse(expr->cond_false, func, param, nr);
usr/src/tools/smatch/src/smatch_recurse.c
95
ret = recurse(expr->ident_expression, func, param, nr);
usr/src/tools/smatch/src/smatch_recurse.c
98
ret = recurse(expr->idx_expression, func, param, nr);
usr/src/tools/smatch/src/smatch_return_to_param.c
121
char *map_call_to_param_name_sym(struct expression *expr, struct symbol **sym)
usr/src/tools/smatch/src/smatch_return_to_param.c
129
name = expr_to_str_sym(expr, &start_sym);
usr/src/tools/smatch/src/smatch_return_to_param.c
132
if (expr->type == EXPR_CALL)
usr/src/tools/smatch/src/smatch_return_to_param.c
133
start_sym = expr_to_sym(expr->fn);
usr/src/tools/smatch/src/smatch_return_to_param.c
188
void __add_return_to_param_mapping(struct expression *expr, const char *return_string)
usr/src/tools/smatch/src/smatch_return_to_param.c
194
if (expr->type == EXPR_ASSIGNMENT) {
usr/src/tools/smatch/src/smatch_return_to_param.c
195
left_name = expr_to_var_sym(expr->left, &left_sym);
usr/src/tools/smatch/src/smatch_return_to_param.c
199
call = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_return_to_param.c
207
if (expr->type == EXPR_CALL &&
usr/src/tools/smatch/src/smatch_return_to_param.c
208
expr_get_parent_stmt(expr) &&
usr/src/tools/smatch/src/smatch_return_to_param.c
209
expr_get_parent_stmt(expr)->type == STMT_RETURN) {
usr/src/tools/smatch/src/smatch_return_to_param.c
210
call = strip_expr(expr);
usr/src/tools/smatch/src/smatch_returns.c
71
static void match_return(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_returns.c
90
static void match_save_states(struct expression *expr)
usr/src/tools/smatch/src/smatch_returns.c
99
static void match_restore_states(struct expression *expr)
usr/src/tools/smatch/src/smatch_start_states.c
36
static void match_save_states(struct expression *expr)
usr/src/tools/smatch/src/smatch_start_states.c
42
static void match_restore_states(struct expression *expr)
usr/src/tools/smatch/src/smatch_statement_count.c
58
static void insert_return_info(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_statement_count.c
68
static void select_return_info(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_states.c
187
struct sm_state *set_state_expr(int owner, struct expression *expr, struct smatch_state *state)
usr/src/tools/smatch/src/smatch_states.c
193
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_states.c
194
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_states.c
382
struct smatch_state *get_state_expr(int owner, struct expression *expr)
usr/src/tools/smatch/src/smatch_states.c
388
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_states.c
389
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_states.c
408
struct state_list *get_possible_states_expr(int owner, struct expression *expr)
usr/src/tools/smatch/src/smatch_states.c
414
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_states.c
415
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_states.c
435
struct sm_state *get_sm_state_expr(int owner, struct expression *expr)
usr/src/tools/smatch/src/smatch_states.c
441
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_states.c
442
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_states.c
461
void delete_state_expr(int owner, struct expression *expr)
usr/src/tools/smatch/src/smatch_states.c
466
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_states.c
467
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_states.c
586
void set_true_false_states_expr(int owner, struct expression *expr,
usr/src/tools/smatch/src/smatch_states.c
593
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_states.c
594
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_states.c
647
void __match_nullify_path_hook(const char *fn, struct expression *expr,
usr/src/tools/smatch/src/smatch_stored_conditions.c
104
FOR_EACH_PTR(list, expr) {
usr/src/tools/smatch/src/smatch_stored_conditions.c
105
insert_expression(&expr_list, expr);
usr/src/tools/smatch/src/smatch_stored_conditions.c
106
} END_FOR_EACH_PTR(expr);
usr/src/tools/smatch/src/smatch_stored_conditions.c
141
static struct smatch_state *alloc_state(struct expression *expr, int is_true)
usr/src/tools/smatch/src/smatch_stored_conditions.c
150
state->data = expr;
usr/src/tools/smatch/src/smatch_stored_conditions.c
154
static void store_all_links(struct expression *expr, struct expression *condition)
usr/src/tools/smatch/src/smatch_stored_conditions.c
159
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_stored_conditions.c
161
if (is_array(expr)) {
usr/src/tools/smatch/src/smatch_stored_conditions.c
162
var = expr_to_known_chunk_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_stored_conditions.c
167
switch (expr->type) {
usr/src/tools/smatch/src/smatch_stored_conditions.c
170
store_all_links(expr->left, condition);
usr/src/tools/smatch/src/smatch_stored_conditions.c
171
store_all_links(expr->right, condition);
usr/src/tools/smatch/src/smatch_stored_conditions.c
177
var = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_stored_conditions.c
185
static int condition_too_complicated(struct expression *expr)
usr/src/tools/smatch/src/smatch_stored_conditions.c
187
if (get_complication_score(expr) > 2)
usr/src/tools/smatch/src/smatch_stored_conditions.c
192
void __stored_condition(struct expression *expr)
usr/src/tools/smatch/src/smatch_stored_conditions.c
198
if (get_value(expr, &val))
usr/src/tools/smatch/src/smatch_stored_conditions.c
201
if (condition_too_complicated(expr))
usr/src/tools/smatch/src/smatch_stored_conditions.c
204
name = expr_to_str(expr);
usr/src/tools/smatch/src/smatch_stored_conditions.c
207
true_state = alloc_state(expr, TRUE);
usr/src/tools/smatch/src/smatch_stored_conditions.c
208
false_state = alloc_state(expr, FALSE);
usr/src/tools/smatch/src/smatch_stored_conditions.c
210
store_all_links(expr, expr);
usr/src/tools/smatch/src/smatch_stored_conditions.c
214
struct smatch_state *get_stored_condition(struct expression *expr)
usr/src/tools/smatch/src/smatch_stored_conditions.c
219
name = expr_to_str(expr);
usr/src/tools/smatch/src/smatch_stored_conditions.c
228
struct expression_list *get_conditions(struct expression *expr)
usr/src/tools/smatch/src/smatch_stored_conditions.c
232
state = get_state_expr(link_id, expr);
usr/src/tools/smatch/src/smatch_stored_conditions.c
278
struct sm_state *stored_condition_implication_hook(struct expression *expr,
usr/src/tools/smatch/src/smatch_stored_conditions.c
289
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_stored_conditions.c
291
name = expr_to_str(expr);
usr/src/tools/smatch/src/smatch_stored_conditions.c
75
struct expression *expr;
usr/src/tools/smatch/src/smatch_stored_conditions.c
77
FOR_EACH_PTR(list, expr) {
usr/src/tools/smatch/src/smatch_stored_conditions.c
78
add_ptr_list(&ret, expr);
usr/src/tools/smatch/src/smatch_stored_conditions.c
79
} END_FOR_EACH_PTR(expr);
usr/src/tools/smatch/src/smatch_stored_conditions.c
84
static void insert_expression(struct expression_list **list, struct expression *expr)
usr/src/tools/smatch/src/smatch_stored_conditions.c
89
if (tmp == expr)
usr/src/tools/smatch/src/smatch_stored_conditions.c
93
add_ptr_list(list, expr);
usr/src/tools/smatch/src/smatch_stored_conditions.c
99
struct expression *expr;
usr/src/tools/smatch/src/smatch_strings.c
103
sm = get_sm_state_expr(my_id, expr);
usr/src/tools/smatch/src/smatch_strings.c
110
static void match_assignment(struct expression *expr)
usr/src/tools/smatch/src/smatch_strings.c
115
if (expr->op != '=')
usr/src/tools/smatch/src/smatch_strings.c
118
slist = get_strings(strip_expr(expr->right));
usr/src/tools/smatch/src/smatch_strings.c
124
set_state_expr(my_id, expr->left, sm->state);
usr/src/tools/smatch/src/smatch_strings.c
129
static void match_string(struct expression *expr)
usr/src/tools/smatch/src/smatch_strings.c
133
if (expr->type != EXPR_STRING || !expr->string->data)
usr/src/tools/smatch/src/smatch_strings.c
135
if (expr->string->length > 255)
usr/src/tools/smatch/src/smatch_strings.c
138
if (!get_string_mtag(expr, &tag))
usr/src/tools/smatch/src/smatch_strings.c
142
tag, 0, STRING_VALUE, escape_newlines(expr->string->data));
usr/src/tools/smatch/src/smatch_strings.c
61
static void match_strcpy(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/smatch_strings.c
65
dest = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/smatch_strings.c
66
src = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/smatch_strings.c
72
struct state_list *get_strings(struct expression *expr)
usr/src/tools/smatch/src/smatch_strings.c
78
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_strings.c
79
if (expr->type == EXPR_STRING) {
usr/src/tools/smatch/src/smatch_strings.c
80
state = alloc_state_str(expr->string->data);
usr/src/tools/smatch/src/smatch_strings.c
81
sm = alloc_sm_state(my_id, expr->string->data, NULL, state);
usr/src/tools/smatch/src/smatch_strings.c
86
if (expr->type == EXPR_CONDITIONAL ||
usr/src/tools/smatch/src/smatch_strings.c
87
expr->type == EXPR_SELECT) {
usr/src/tools/smatch/src/smatch_strings.c
91
if (known_condition_true(expr->conditional))
usr/src/tools/smatch/src/smatch_strings.c
92
return get_strings(expr->cond_true);
usr/src/tools/smatch/src/smatch_strings.c
93
if (known_condition_false(expr->conditional))
usr/src/tools/smatch/src/smatch_strings.c
94
return get_strings(expr->cond_false);
usr/src/tools/smatch/src/smatch_strings.c
96
true_strings = get_strings(expr->cond_true);
usr/src/tools/smatch/src/smatch_strings.c
97
false_strings = get_strings(expr->cond_false);
usr/src/tools/smatch/src/smatch_strlen.c
107
if (expr->type != EXPR_COMPARE)
usr/src/tools/smatch/src/smatch_strlen.c
110
left = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_strlen.c
111
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_strlen.c
127
op = expr->op;
usr/src/tools/smatch/src/smatch_strlen.c
165
static void match_snprintf(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/smatch_strlen.c
171
dest = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/smatch_strlen.c
172
dest_size_expr = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/smatch_strlen.c
183
static void match_strlcpycat(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/smatch_strlen.c
191
dest = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/smatch_strlen.c
192
src = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/smatch_strlen.c
193
limit_expr = get_argument_from_call_expr(expr->args, 2);
usr/src/tools/smatch/src/smatch_strlen.c
207
static void match_strcpy(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/smatch_strlen.c
213
dest = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/smatch_strlen.c
214
src = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/smatch_strlen.c
223
static int get_strlen_from_string(struct expression *expr, struct range_list **rl)
usr/src/tools/smatch/src/smatch_strlen.c
228
len = expr->string->length;
usr/src/tools/smatch/src/smatch_strlen.c
235
static int get_strlen_from_state(struct expression *expr, struct range_list **rl)
usr/src/tools/smatch/src/smatch_strlen.c
239
state = get_state_expr(my_strlen_id, expr);
usr/src/tools/smatch/src/smatch_strlen.c
246
static int get_strlen_from_equiv(struct expression *expr, struct range_list **rl)
usr/src/tools/smatch/src/smatch_strlen.c
250
state = get_state_expr(my_equiv_id, expr);
usr/src/tools/smatch/src/smatch_strlen.c
261
int get_implied_strlen(struct expression *expr, struct range_list **rl)
usr/src/tools/smatch/src/smatch_strlen.c
266
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_strlen.c
267
if (expr->type == EXPR_STRING)
usr/src/tools/smatch/src/smatch_strlen.c
268
return get_strlen_from_string(expr, rl);
usr/src/tools/smatch/src/smatch_strlen.c
270
if (get_strlen_from_state(expr, rl))
usr/src/tools/smatch/src/smatch_strlen.c
272
if (get_strlen_from_equiv(expr, rl))
usr/src/tools/smatch/src/smatch_strlen.c
277
int get_size_from_strlen(struct expression *expr)
usr/src/tools/smatch/src/smatch_strlen.c
282
if (!get_implied_strlen(expr, &rl))
usr/src/tools/smatch/src/smatch_strlen.c
309
static void match_call(struct expression *expr)
usr/src/tools/smatch/src/smatch_strlen.c
316
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/smatch_strlen.c
320
sql_insert_caller_info(expr, STR_LEN, i, "$", show_rl(rl));
usr/src/tools/smatch/src/smatch_strlen.c
61
static void match_string_assignment(struct expression *expr)
usr/src/tools/smatch/src/smatch_strlen.c
65
if (expr->op != '=')
usr/src/tools/smatch/src/smatch_strlen.c
67
if (!get_implied_strlen(expr->right, &rl))
usr/src/tools/smatch/src/smatch_strlen.c
69
set_state_expr(my_strlen_id, expr->left, alloc_estate_rl(clone_rl(rl)));
usr/src/tools/smatch/src/smatch_strlen.c
72
static void match_strlen(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/smatch_strlen.c
80
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_strlen.c
82
len_expr = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_strlen.c
95
static void match_strlen_condition(struct expression *expr)
usr/src/tools/smatch/src/smatch_struct_assignment.c
113
static struct expression *remove_addr(struct expression *expr)
usr/src/tools/smatch/src/smatch_struct_assignment.c
117
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_struct_assignment.c
118
if (!expr)
usr/src/tools/smatch/src/smatch_struct_assignment.c
121
if (expr->type == EXPR_PREOP && expr->op == '&')
usr/src/tools/smatch/src/smatch_struct_assignment.c
122
return strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_struct_assignment.c
123
type = get_type(expr);
usr/src/tools/smatch/src/smatch_struct_assignment.c
125
return expr;
usr/src/tools/smatch/src/smatch_struct_assignment.c
127
return expr;
usr/src/tools/smatch/src/smatch_struct_assignment.c
129
return deref_expression(expr);
usr/src/tools/smatch/src/smatch_struct_assignment.c
140
static void split_fake_expr(struct expression *expr)
usr/src/tools/smatch/src/smatch_struct_assignment.c
144
__split_expr(expr);
usr/src/tools/smatch/src/smatch_struct_assignment.c
310
static int returns_zeroed_mem(struct expression *expr)
usr/src/tools/smatch/src/smatch_struct_assignment.c
314
if (expr->type != EXPR_CALL || expr->fn->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_struct_assignment.c
316
fn = expr_to_var(expr->fn);
usr/src/tools/smatch/src/smatch_struct_assignment.c
365
static int handle_param_offsets(struct expression *expr)
usr/src/tools/smatch/src/smatch_struct_assignment.c
370
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_struct_assignment.c
381
return copy_containter_states(expr->left, right, sval.value);
usr/src/tools/smatch/src/smatch_struct_assignment.c
384
static void returns_container_of(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_struct_assignment.c
389
if (expr->type != EXPR_ASSIGNMENT || expr->op != '=')
usr/src/tools/smatch/src/smatch_struct_assignment.c
391
call = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_struct_assignment.c
403
copy_containter_states(expr->left, arg, -offset);
usr/src/tools/smatch/src/smatch_struct_assignment.c
406
void __fake_struct_member_assignments(struct expression *expr)
usr/src/tools/smatch/src/smatch_struct_assignment.c
410
if (expr->op != '=')
usr/src/tools/smatch/src/smatch_struct_assignment.c
413
if (expr_is_zero(expr->right))
usr/src/tools/smatch/src/smatch_struct_assignment.c
416
left_type = get_type(expr->left);
usr/src/tools/smatch/src/smatch_struct_assignment.c
422
if (handle_param_offsets(expr))
usr/src/tools/smatch/src/smatch_struct_assignment.c
425
if (returns_zeroed_mem(expr->right))
usr/src/tools/smatch/src/smatch_struct_assignment.c
426
__struct_members_copy(COPY_MEMSET, expr, expr->left, zero_expr());
usr/src/tools/smatch/src/smatch_struct_assignment.c
428
__struct_members_copy(COPY_NORMAL, expr, expr->left, expr->right);
usr/src/tools/smatch/src/smatch_struct_assignment.c
431
static void match_memset(const char *fn, struct expression *expr, void *_size_arg)
usr/src/tools/smatch/src/smatch_struct_assignment.c
436
buf = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/smatch_struct_assignment.c
437
val = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/smatch_struct_assignment.c
440
__struct_members_copy(COPY_MEMSET, expr, remove_addr(buf), val);
usr/src/tools/smatch/src/smatch_struct_assignment.c
443
static void match_memcpy(const char *fn, struct expression *expr, void *_arg)
usr/src/tools/smatch/src/smatch_struct_assignment.c
448
dest = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/smatch_struct_assignment.c
449
src = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/smatch_struct_assignment.c
451
__struct_members_copy(COPY_MEMCPY, expr, remove_addr(dest), remove_addr(src));
usr/src/tools/smatch/src/smatch_struct_assignment.c
455
struct expression *expr, void *_unused)
usr/src/tools/smatch/src/smatch_struct_assignment.c
459
if (!expr || expr->type != EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_struct_assignment.c
462
left = strip_expr(expr->left);
usr/src/tools/smatch/src/smatch_struct_assignment.c
463
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_struct_assignment.c
468
__struct_members_copy(COPY_MEMCPY, expr, left, arg);
usr/src/tools/smatch/src/smatch_struct_assignment.c
471
static void match_memcpy_unknown(const char *fn, struct expression *expr, void *_arg)
usr/src/tools/smatch/src/smatch_struct_assignment.c
475
dest = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/smatch_struct_assignment.c
476
__struct_members_copy(COPY_MEMCPY, expr, remove_addr(dest), NULL);
usr/src/tools/smatch/src/smatch_struct_assignment.c
479
static void match_sscanf(const char *fn, struct expression *expr, void *unused)
usr/src/tools/smatch/src/smatch_struct_assignment.c
485
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/smatch_struct_assignment.c
488
__struct_members_copy(COPY_MEMCPY, expr, remove_addr(arg), NULL);
usr/src/tools/smatch/src/smatch_struct_assignment.c
492
static void unop_expr(struct expression *expr)
usr/src/tools/smatch/src/smatch_struct_assignment.c
494
if (expr->op != SPECIAL_INCREMENT &&
usr/src/tools/smatch/src/smatch_struct_assignment.c
495
expr->op != SPECIAL_DECREMENT)
usr/src/tools/smatch/src/smatch_struct_assignment.c
498
if (!is_pointer(expr))
usr/src/tools/smatch/src/smatch_struct_assignment.c
500
faked_expression = expr;
usr/src/tools/smatch/src/smatch_struct_assignment.c
501
__struct_members_copy(COPY_MEMCPY, expr, expr->unop, NULL);
usr/src/tools/smatch/src/smatch_struct_assignment.c
537
static void db_param_cleared(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_struct_assignment.c
541
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_struct_assignment.c
542
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_struct_assignment.c
543
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_struct_assignment.c
554
arg = get_argument_from_call_expr(expr->args, param);
usr/src/tools/smatch/src/smatch_struct_assignment.c
559
__struct_members_copy(COPY_MEMSET, expr, remove_addr(arg), zero_expr());
usr/src/tools/smatch/src/smatch_struct_assignment.c
561
__struct_members_copy(COPY_MEMCPY, expr, remove_addr(arg), NULL);
usr/src/tools/smatch/src/smatch_struct_assignment.c
69
static struct symbol *get_struct_type(struct expression *expr)
usr/src/tools/smatch/src/smatch_struct_assignment.c
73
type = get_type(expr);
usr/src/tools/smatch/src/smatch_sval.c
103
ret = sval_cast(get_type(expr), ret);
usr/src/tools/smatch/src/smatch_sval.c
53
sval_t sval_blank(struct expression *expr)
usr/src/tools/smatch/src/smatch_sval.c
57
ret.type = get_type(expr);
usr/src/tools/smatch/src/smatch_sval.c
86
sval_t sval_from_val(struct expression *expr, long long val)
usr/src/tools/smatch/src/smatch_sval.c
90
ret = sval_blank(expr);
usr/src/tools/smatch/src/smatch_sval.c
92
ret = sval_cast(get_type(expr), ret);
usr/src/tools/smatch/src/smatch_sval.c
97
sval_t sval_from_fval(struct expression *expr, long double fval)
usr/src/tools/smatch/src/smatch_tracker.c
44
void add_tracker_expr(struct tracker_list **list, int owner, struct expression *expr)
usr/src/tools/smatch/src/smatch_tracker.c
49
name = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_type.c
115
static struct symbol *get_type_symbol(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
117
if (!expr || expr->type != EXPR_SYMBOL || !expr->symbol)
usr/src/tools/smatch/src/smatch_type.c
120
return get_real_base_type(expr->symbol);
usr/src/tools/smatch/src/smatch_type.c
142
static struct symbol *get_symbol_from_deref(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
147
if (!expr || expr->type != EXPR_DEREF)
usr/src/tools/smatch/src/smatch_type.c
150
member = expr->member;
usr/src/tools/smatch/src/smatch_type.c
151
sym = get_type(expr->deref);
usr/src/tools/smatch/src/smatch_type.c
164
static struct symbol *handle__builtin_choose_expr(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
169
const_expr = get_argument_from_call_expr(expr->args, 0);
usr/src/tools/smatch/src/smatch_type.c
170
expr1 = get_argument_from_call_expr(expr->args, 1);
usr/src/tools/smatch/src/smatch_type.c
171
expr2 = get_argument_from_call_expr(expr->args, 2);
usr/src/tools/smatch/src/smatch_type.c
181
static struct symbol *get_return_type(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
185
if (sym_name_is("__builtin_choose_expr", expr->fn))
usr/src/tools/smatch/src/smatch_type.c
186
return handle__builtin_choose_expr(expr);
usr/src/tools/smatch/src/smatch_type.c
188
tmp = get_type(expr->fn);
usr/src/tools/smatch/src/smatch_type.c
209
static struct symbol *get_select_type(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
213
one = get_type(expr->cond_true);
usr/src/tools/smatch/src/smatch_type.c
214
two = get_type(expr->cond_false);
usr/src/tools/smatch/src/smatch_type.c
227
struct symbol *get_pointer_type(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
231
sym = get_type(expr);
usr/src/tools/smatch/src/smatch_type.c
244
static struct symbol *fake_pointer_sym(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
249
sym = alloc_symbol(expr->pos, SYM_PTR);
usr/src/tools/smatch/src/smatch_type.c
250
expr = expr->unop;
usr/src/tools/smatch/src/smatch_type.c
251
base = get_type(expr);
usr/src/tools/smatch/src/smatch_type.c
258
static struct symbol *get_type_helper(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
262
expr = strip_parens(expr);
usr/src/tools/smatch/src/smatch_type.c
263
if (!expr)
usr/src/tools/smatch/src/smatch_type.c
266
if (expr->ctype)
usr/src/tools/smatch/src/smatch_type.c
267
return expr->ctype;
usr/src/tools/smatch/src/smatch_type.c
269
switch (expr->type) {
usr/src/tools/smatch/src/smatch_type.c
274
ret = get_type_symbol(expr);
usr/src/tools/smatch/src/smatch_type.c
277
ret = get_symbol_from_deref(expr);
usr/src/tools/smatch/src/smatch_type.c
281
if (expr->op == '&')
usr/src/tools/smatch/src/smatch_type.c
282
ret = fake_pointer_sym(expr);
usr/src/tools/smatch/src/smatch_type.c
283
else if (expr->op == '*')
usr/src/tools/smatch/src/smatch_type.c
284
ret = get_pointer_type(expr->unop);
usr/src/tools/smatch/src/smatch_type.c
286
ret = get_type(expr->unop);
usr/src/tools/smatch/src/smatch_type.c
289
ret = get_type(expr->left);
usr/src/tools/smatch/src/smatch_type.c
294
ret = get_real_base_type(expr->cast_type);
usr/src/tools/smatch/src/smatch_type.c
298
ret = get_binop_type(expr);
usr/src/tools/smatch/src/smatch_type.c
301
ret = get_return_type(expr);
usr/src/tools/smatch/src/smatch_type.c
304
ret = get_expr_stmt_type(expr->statement);
usr/src/tools/smatch/src/smatch_type.c
308
ret = get_select_type(expr);
usr/src/tools/smatch/src/smatch_type.c
326
expr->ctype = ret;
usr/src/tools/smatch/src/smatch_type.c
330
static struct symbol *get_final_type_helper(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
340
expr = strip_parens(expr);
usr/src/tools/smatch/src/smatch_type.c
341
if (!expr)
usr/src/tools/smatch/src/smatch_type.c
344
if (expr->type == EXPR_COMPARE)
usr/src/tools/smatch/src/smatch_type.c
350
struct symbol *get_type(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
352
return get_type_helper(expr);
usr/src/tools/smatch/src/smatch_type.c
355
struct symbol *get_final_type(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
359
ret = get_final_type_helper(expr);
usr/src/tools/smatch/src/smatch_type.c
362
return get_type_helper(expr);
usr/src/tools/smatch/src/smatch_type.c
391
int expr_unsigned(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
395
sym = get_type(expr);
usr/src/tools/smatch/src/smatch_type.c
403
int expr_signed(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
407
sym = get_type(expr);
usr/src/tools/smatch/src/smatch_type.c
426
int is_pointer(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
428
return type_is_ptr(get_type(expr));
usr/src/tools/smatch/src/smatch_type.c
508
int nr_bits(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
512
type = get_type(expr);
usr/src/tools/smatch/src/smatch_type.c
518
int is_void_pointer(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
522
type = get_type(expr);
usr/src/tools/smatch/src/smatch_type.c
531
int is_char_pointer(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
535
type = get_type(expr);
usr/src/tools/smatch/src/smatch_type.c
544
int is_string(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
546
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_type.c
547
if (!expr || expr->type != EXPR_STRING)
usr/src/tools/smatch/src/smatch_type.c
549
if (expr->string)
usr/src/tools/smatch/src/smatch_type.c
564
int is_static(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
570
name = expr_to_str_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_type.c
581
bool is_local_variable(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
585
if (!expr || expr->type != EXPR_SYMBOL || !expr->symbol)
usr/src/tools/smatch/src/smatch_type.c
587
sym = expr->symbol;
usr/src/tools/smatch/src/smatch_type.c
62
static struct symbol *get_binop_type(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
66
left = get_type(expr->left);
usr/src/tools/smatch/src/smatch_type.c
70
if (expr->op == SPECIAL_LEFTSHIFT ||
usr/src/tools/smatch/src/smatch_type.c
71
expr->op == SPECIAL_RIGHTSHIFT) {
usr/src/tools/smatch/src/smatch_type.c
712
struct symbol *get_member_type_from_key(struct expression *expr, const char *key)
usr/src/tools/smatch/src/smatch_type.c
719
return get_type(expr);
usr/src/tools/smatch/src/smatch_type.c
722
sym = get_type(expr);
usr/src/tools/smatch/src/smatch_type.c
728
sym = get_type(expr);
usr/src/tools/smatch/src/smatch_type.c
76
right = get_type(expr->right);
usr/src/tools/smatch/src/smatch_type.c
773
int is_struct(struct expression *expr)
usr/src/tools/smatch/src/smatch_type.c
777
type = get_type(expr);
usr/src/tools/smatch/src/smatch_type.c
98
if (expr->op == '-' &&
usr/src/tools/smatch/src/smatch_type_links.c
50
static void match_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_type_links.c
54
if (!is_void_pointer(expr->left))
usr/src/tools/smatch/src/smatch_type_links.c
57
type = get_type(expr->right);
usr/src/tools/smatch/src/smatch_type_links.c
64
sql_insert_data_info(expr->left, TYPE_LINK, type_to_str(type));
usr/src/tools/smatch/src/smatch_type_val.c
102
member = get_member_name(expr);
usr/src/tools/smatch/src/smatch_type_val.c
107
cached_results[res_idx].expr = expr;
usr/src/tools/smatch/src/smatch_type_val.c
115
type = get_type(expr);
usr/src/tools/smatch/src/smatch_type_val.c
187
struct expression *expr;
usr/src/tools/smatch/src/smatch_type_val.c
192
expr = get_faked_expression();
usr/src/tools/smatch/src/smatch_type_val.c
193
if (!expr || expr->type != EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_type_val.c
195
if (!is_void_pointer(expr->right))
usr/src/tools/smatch/src/smatch_type_val.c
197
member_name = get_member_name(expr->right);
usr/src/tools/smatch/src/smatch_type_val.c
201
type = get_type(expr->left);
usr/src/tools/smatch/src/smatch_type_val.c
217
struct expression *expr;
usr/src/tools/smatch/src/smatch_type_val.c
220
expr = get_faked_expression();
usr/src/tools/smatch/src/smatch_type_val.c
221
if (!expr || expr->type != EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_type_val.c
224
offset = get_offset_from_container_of(expr->right);
usr/src/tools/smatch/src/smatch_type_val.c
233
struct expression *expr;
usr/src/tools/smatch/src/smatch_type_val.c
238
expr = get_faked_expression();
usr/src/tools/smatch/src/smatch_type_val.c
239
if (!expr || expr->type != EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_type_val.c
242
if (expr == prev_expr)
usr/src/tools/smatch/src/smatch_type_val.c
244
prev_expr = expr;
usr/src/tools/smatch/src/smatch_type_val.c
246
name = expr_to_str(expr->right);
usr/src/tools/smatch/src/smatch_type_val.c
265
struct expression *expr;
usr/src/tools/smatch/src/smatch_type_val.c
268
expr = get_faked_expression();
usr/src/tools/smatch/src/smatch_type_val.c
269
if (!expr || expr->type != EXPR_ASSIGNMENT || expr->op != '=')
usr/src/tools/smatch/src/smatch_type_val.c
271
name = get_macro_name(expr->right->pos);
usr/src/tools/smatch/src/smatch_type_val.c
305
struct expression *expr;
usr/src/tools/smatch/src/smatch_type_val.c
307
expr = get_faked_expression();
usr/src/tools/smatch/src/smatch_type_val.c
308
if (!expr || expr->type != EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_type_val.c
310
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_type_val.c
311
if (!expr || expr->type != EXPR_CALL || expr->fn->type != EXPR_SYMBOL)
usr/src/tools/smatch/src/smatch_type_val.c
314
if (sym_name_is("kmalloc", expr->fn))
usr/src/tools/smatch/src/smatch_type_val.c
316
if (sym_name_is("vmalloc", expr->fn))
usr/src/tools/smatch/src/smatch_type_val.c
318
if (sym_name_is("kvmalloc", expr->fn))
usr/src/tools/smatch/src/smatch_type_val.c
320
if (sym_name_is("kmalloc_array", expr->fn))
usr/src/tools/smatch/src/smatch_type_val.c
322
if (sym_name_is("vmalloc_array", expr->fn))
usr/src/tools/smatch/src/smatch_type_val.c
324
if (sym_name_is("kvmalloc_array", expr->fn))
usr/src/tools/smatch/src/smatch_type_val.c
327
if (sym_name_is("mmu_memory_cache_alloc", expr->fn))
usr/src/tools/smatch/src/smatch_type_val.c
329
if (sym_name_is("kmem_alloc", expr->fn))
usr/src/tools/smatch/src/smatch_type_val.c
331
if (sym_name_is("alloc_pages", expr->fn))
usr/src/tools/smatch/src/smatch_type_val.c
334
if (sym_name_is("netdev_priv", expr->fn))
usr/src/tools/smatch/src/smatch_type_val.c
336
if (sym_name_is("dev_get_drvdata", expr->fn))
usr/src/tools/smatch/src/smatch_type_val.c
338
if (sym_name_is("i2c_get_clientdata", expr->fn))
usr/src/tools/smatch/src/smatch_type_val.c
340
if (sym_name_is("idr_find", expr->fn))
usr/src/tools/smatch/src/smatch_type_val.c
348
struct expression *expr;
usr/src/tools/smatch/src/smatch_type_val.c
351
expr = get_faked_expression();
usr/src/tools/smatch/src/smatch_type_val.c
352
if (!expr)
usr/src/tools/smatch/src/smatch_type_val.c
354
if (expr->type == EXPR_PREOP || expr->type == EXPR_POSTOP) {
usr/src/tools/smatch/src/smatch_type_val.c
355
if (expr->op == SPECIAL_INCREMENT || expr->op == SPECIAL_DECREMENT)
usr/src/tools/smatch/src/smatch_type_val.c
358
if (expr->type != EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_type_val.c
360
left_type = get_type(expr->left);
usr/src/tools/smatch/src/smatch_type_val.c
361
right_type = get_type(expr->right);
usr/src/tools/smatch/src/smatch_type_val.c
420
struct expression *expr, *right;
usr/src/tools/smatch/src/smatch_type_val.c
428
expr = get_faked_expression();
usr/src/tools/smatch/src/smatch_type_val.c
430
if (expr == prev_expr)
usr/src/tools/smatch/src/smatch_type_val.c
432
prev_expr = expr;
usr/src/tools/smatch/src/smatch_type_val.c
435
if (!expr || expr->type != EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_type_val.c
437
left_type = get_type(expr->left);
usr/src/tools/smatch/src/smatch_type_val.c
445
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_type_val.c
461
static void match_assign_value(struct expression *expr)
usr/src/tools/smatch/src/smatch_type_val.c
470
type = get_type(expr->left);
usr/src/tools/smatch/src/smatch_type_val.c
473
member = get_member_name(expr->left);
usr/src/tools/smatch/src/smatch_type_val.c
478
right_member = get_member_name(expr->right);
usr/src/tools/smatch/src/smatch_type_val.c
482
if (is_fake_call(expr->right)) {
usr/src/tools/smatch/src/smatch_type_val.c
495
add_fake_type_val(member, alloc_whole_rl(get_type(expr->left)), is_ignored_fake_assignment());
usr/src/tools/smatch/src/smatch_type_val.c
499
if (expr->op == '=') {
usr/src/tools/smatch/src/smatch_type_val.c
500
get_absolute_rl(expr->right, &rl);
usr/src/tools/smatch/src/smatch_type_val.c
507
get_absolute_rl(expr->left, &rl);
usr/src/tools/smatch/src/smatch_type_val.c
519
static void match_assign_pointer(struct expression *expr)
usr/src/tools/smatch/src/smatch_type_val.c
526
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_type_val.c
53
static void match_inline_start(struct expression *expr)
usr/src/tools/smatch/src/smatch_type_val.c
540
static void match_global_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_type_val.c
546
type = get_type(expr->left);
usr/src/tools/smatch/src/smatch_type_val.c
549
member = get_member_name(expr->left);
usr/src/tools/smatch/src/smatch_type_val.c
552
get_absolute_rl(expr->right, &rl);
usr/src/tools/smatch/src/smatch_type_val.c
558
static void unop_expr(struct expression *expr)
usr/src/tools/smatch/src/smatch_type_val.c
563
if (expr->op != SPECIAL_DECREMENT && expr->op != SPECIAL_INCREMENT)
usr/src/tools/smatch/src/smatch_type_val.c
566
expr = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_type_val.c
567
member = get_member_name(expr);
usr/src/tools/smatch/src/smatch_type_val.c
570
rl = alloc_whole_rl(get_type(expr));
usr/src/tools/smatch/src/smatch_type_val.c
577
struct expression *expr;
usr/src/tools/smatch/src/smatch_type_val.c
581
FOR_EACH_PTR(stmt->asm_outputs, expr) {
usr/src/tools/smatch/src/smatch_type_val.c
582
member = get_member_name(expr->expr);
usr/src/tools/smatch/src/smatch_type_val.c
585
rl = alloc_whole_rl(get_type(expr->expr));
usr/src/tools/smatch/src/smatch_type_val.c
588
} END_FOR_EACH_PTR(expr);
usr/src/tools/smatch/src/smatch_type_val.c
59
static void match_inline_end(struct expression *expr)
usr/src/tools/smatch/src/smatch_type_val.c
591
static void db_param_add(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_type_val.c
601
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_type_val.c
602
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_type_val.c
603
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_type_val.c
606
arg = get_argument_from_call_expr(expr->args, param);
usr/src/tools/smatch/src/smatch_type_val.c
631
call_results_to_rl(expr, type, value, &rl);
usr/src/tools/smatch/src/smatch_type_val.c
66
struct expression *expr;
usr/src/tools/smatch/src/smatch_type_val.c
72
static int get_cached(struct expression *expr, struct range_list **rl, int *ret)
usr/src/tools/smatch/src/smatch_type_val.c
79
if (expr == cached_results[i].expr) {
usr/src/tools/smatch/src/smatch_type_val.c
91
int get_db_type_rl(struct expression *expr, struct range_list **rl)
usr/src/tools/smatch/src/smatch_type_val.c
99
if (get_cached(expr, rl, &ret))
usr/src/tools/smatch/src/smatch_unknown_value.c
62
struct expression *unknown_value_expression(struct expression *expr)
usr/src/tools/smatch/src/smatch_unknown_value.c
69
int is_fake_call(struct expression *expr)
usr/src/tools/smatch/src/smatch_unknown_value.c
71
return expr == &fake_call;
usr/src/tools/smatch/src/smatch_untracked_param.c
105
static void mark_untracked_lost(struct expression *expr, int param, const char *key, int type)
usr/src/tools/smatch/src/smatch_untracked_param.c
110
while (expr->type == EXPR_ASSIGNMENT)
usr/src/tools/smatch/src/smatch_untracked_param.c
111
expr = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_untracked_param.c
112
if (expr->type != EXPR_CALL)
usr/src/tools/smatch/src/smatch_untracked_param.c
115
name = return_state_to_var_sym(expr, param, key, &sym);
usr/src/tools/smatch/src/smatch_untracked_param.c
117
name = get_array_from_key(expr, param, key, &sym);
usr/src/tools/smatch/src/smatch_untracked_param.c
123
call_lost_callbacks(expr, param);
usr/src/tools/smatch/src/smatch_untracked_param.c
124
call_untracked_callbacks(expr, param);
usr/src/tools/smatch/src/smatch_untracked_param.c
131
void mark_untracked(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_untracked_param.c
133
mark_untracked_lost(expr, param, key, UNTRACKED_PARAM);
usr/src/tools/smatch/src/smatch_untracked_param.c
136
void mark_lost(struct expression *expr, int param, char *key, char *value)
usr/src/tools/smatch/src/smatch_untracked_param.c
138
mark_untracked_lost(expr, param, key, LOST_PARAM);
usr/src/tools/smatch/src/smatch_untracked_param.c
141
static int lost_in_va_args(struct expression *expr)
usr/src/tools/smatch/src/smatch_untracked_param.c
147
fn = get_type(expr->fn);
usr/src/tools/smatch/src/smatch_untracked_param.c
152
name = expr_to_var(expr->fn);
usr/src/tools/smatch/src/smatch_untracked_param.c
160
static void match_after_call(struct expression *expr)
usr/src/tools/smatch/src/smatch_untracked_param.c
166
if (lost_in_va_args(expr))
usr/src/tools/smatch/src/smatch_untracked_param.c
175
FOR_EACH_PTR(expr->args, arg) {
usr/src/tools/smatch/src/smatch_untracked_param.c
182
call_untracked_callbacks(expr, i);
usr/src/tools/smatch/src/smatch_untracked_param.c
205
void mark_all_params_untracked(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_untracked_param.c
210
void mark_all_params_lost(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_untracked_param.c
215
static void print_untracked_params(int return_id, char *return_ranges, struct expression *expr)
usr/src/tools/smatch/src/smatch_untracked_param.c
246
static void match_param_assign(struct expression *expr)
usr/src/tools/smatch/src/smatch_untracked_param.c
255
right = strip_expr(expr->right);
usr/src/tools/smatch/src/smatch_untracked_param.c
271
struct expression *tmp, *expr;
usr/src/tools/smatch/src/smatch_untracked_param.c
276
expr = strip_expr(tmp->expr);
usr/src/tools/smatch/src/smatch_untracked_param.c
277
type = get_type(expr);
usr/src/tools/smatch/src/smatch_untracked_param.c
280
param = get_param_num(expr);
usr/src/tools/smatch/src/smatch_untracked_param.c
283
set_state_expr(my_id, expr, &untracked);
usr/src/tools/smatch/src/smatch_untracked_param.c
287
static void match_inline_start(struct expression *expr)
usr/src/tools/smatch/src/smatch_untracked_param.c
292
static void match_inline_end(struct expression *expr)
usr/src/tools/smatch/src/smatch_untracked_param.c
58
static void call_untracked_callbacks(struct expression *expr, int param)
usr/src/tools/smatch/src/smatch_untracked_param.c
63
(*fn)(expr, param);
usr/src/tools/smatch/src/smatch_untracked_param.c
74
static void call_lost_callbacks(struct expression *expr, int param)
usr/src/tools/smatch/src/smatch_untracked_param.c
79
(*fn)(expr, param);
usr/src/tools/smatch/src/smatch_untracked_param.c
88
static char *get_array_from_key(struct expression *expr, int param, const char *key, struct symbol **sym)
usr/src/tools/smatch/src/smatch_untracked_param.c
92
arg = get_argument_from_call_expr(expr->args, param);
usr/src/tools/smatch/src/smatch_var_sym.c
127
void add_var_sym_expr(struct var_sym_list **list, struct expression *expr)
usr/src/tools/smatch/src/smatch_var_sym.c
132
var = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/smatch_var_sym.c
32
struct var_sym_list *expr_to_vsl(struct expression *expr)
usr/src/tools/smatch/src/smatch_var_sym.c
39
expr = strip_expr(expr);
usr/src/tools/smatch/src/smatch_var_sym.c
40
if (!expr)
usr/src/tools/smatch/src/smatch_var_sym.c
43
if ((expr->type == EXPR_PREOP && expr->op == '*')) {
usr/src/tools/smatch/src/smatch_var_sym.c
44
unop = strip_expr(expr->unop);
usr/src/tools/smatch/src/smatch_var_sym.c
51
if (expr->type == EXPR_BINOP ||
usr/src/tools/smatch/src/smatch_var_sym.c
52
expr->type == EXPR_LOGICAL ||
usr/src/tools/smatch/src/smatch_var_sym.c
53
expr->type == EXPR_COMPARE) {
usr/src/tools/smatch/src/smatch_var_sym.c
56
left = expr_to_vsl(expr->left);
usr/src/tools/smatch/src/smatch_var_sym.c
57
right = expr_to_vsl(expr->right);
usr/src/tools/smatch/src/smatch_var_sym.c
64
if (expr->type == EXPR_DEREF)
usr/src/tools/smatch/src/smatch_var_sym.c
65
return expr_to_vsl(expr->deref);
usr/src/tools/smatch/src/smatch_var_sym.c
68
var = expr_to_var_sym(expr, &sym);
usr/src/tools/smatch/src/sparse-llvm.c
288
struct expression *expr;
usr/src/tools/smatch/src/sparse-llvm.c
292
expr = sym->initializer;
usr/src/tools/smatch/src/sparse-llvm.c
293
if (expr && !sym->ident) {
usr/src/tools/smatch/src/sparse-llvm.c
294
switch (expr->type) {
usr/src/tools/smatch/src/sparse-llvm.c
296
const char *s = expr->string->data;
usr/src/tools/smatch/src/symbol.c
290
static int count_array_initializer(struct symbol *t, struct expression *expr)
usr/src/tools/smatch/src/symbol.c
305
switch (expr->type) {
usr/src/tools/smatch/src/symbol.c
310
FOR_EACH_PTR(expr->expr_list, entry) {
usr/src/tools/smatch/src/symbol.c
342
struct expression *e = expr;
usr/src/tools/smatch/src/symbol.c
346
expr = e;
usr/src/tools/smatch/src/symbol.c
349
nr = expr->string->length;
usr/src/ucbcmd/expr/expr.y
56
expression: expr NOARG {
usr/src/ucbcmd/expr/expr.y
63
expr: '(' expr ')' { $$ = $2; }
usr/src/ucbcmd/expr/expr.y
64
| expr OR expr { $$ = conj(OR, $1, $3); }
usr/src/ucbcmd/expr/expr.y
65
| expr AND expr { $$ = conj(AND, $1, $3); }
usr/src/ucbcmd/expr/expr.y
66
| expr EQ expr { $$ = rel(EQ, $1, $3); }
usr/src/ucbcmd/expr/expr.y
67
| expr GT expr { $$ = rel(GT, $1, $3); }
usr/src/ucbcmd/expr/expr.y
68
| expr GEQ expr { $$ = rel(GEQ, $1, $3); }
usr/src/ucbcmd/expr/expr.y
69
| expr LT expr { $$ = rel(LT, $1, $3); }
usr/src/ucbcmd/expr/expr.y
70
| expr LEQ expr { $$ = rel(LEQ, $1, $3); }
usr/src/ucbcmd/expr/expr.y
71
| expr NEQ expr { $$ = rel(NEQ, $1, $3); }
usr/src/ucbcmd/expr/expr.y
72
| expr ADD expr { $$ = arith(ADD, $1, $3); }
usr/src/ucbcmd/expr/expr.y
73
| expr SUBT expr { $$ = arith(SUBT, $1, $3); }
usr/src/ucbcmd/expr/expr.y
74
| expr MULT expr { $$ = arith(MULT, $1, $3); }
usr/src/ucbcmd/expr/expr.y
75
| expr DIV expr { $$ = arith(DIV, $1, $3); }
usr/src/ucbcmd/expr/expr.y
76
| expr REM expr { $$ = arith(REM, $1, $3); }
usr/src/ucbcmd/expr/expr.y
77
| expr MCH expr { $$ = match($1, $3); }
usr/src/ucbcmd/expr/expr.y
78
| MATCH expr expr { $$ = match($2, $3); }
usr/src/ucbcmd/expr/expr.y
79
| SUBSTR expr expr expr { $$ = substr($2, $3, $4); }
usr/src/ucbcmd/expr/expr.y
80
| LENGTH expr { $$ = length($2); }
usr/src/ucbcmd/expr/expr.y
81
| INDEX expr expr { $$ = index($2, $3); }
usr/src/uts/common/dtrace/dtrace.c
2424
intptr_t offset, dtrace_buffer_t *buf, uint64_t expr, uint64_t arg)
usr/src/uts/common/dtrace/dtrace.c
2587
agg->dtag_aggregate((uint64_t *)(kdata + size), expr, arg);
usr/src/uts/common/dtrace/dtrace.c
2669
agg->dtag_aggregate((uint64_t *)(key->dtak_data + size), expr, arg);
usr/src/uts/common/fs/dev/sdev_profile.c
125
char *expr = nvpair_name(nvp);
usr/src/uts/common/fs/dev/sdev_profile.c
126
if (!gmatch(name, expr))
usr/src/uts/common/fs/dev/sdev_profile.c
367
char *expr;
usr/src/uts/common/fs/dev/sdev_profile.c
376
if (gmatch(name, margp->expr)) {
usr/src/uts/common/fs/dev/sdev_profile.c
405
marg.expr = kmem_alloc(MAXNAMELEN, KM_SLEEP);
usr/src/uts/common/fs/dev/sdev_profile.c
406
(void) pn_getcomponent(&pn, marg.expr);
usr/src/uts/common/fs/dev/sdev_profile.c
411
kmem_free(marg.expr, MAXNAMELEN);
usr/src/uts/common/fs/dev/sdev_profile.c
423
char *expr;
usr/src/uts/common/fs/dev/sdev_profile.c
431
expr = nvpair_name(nvp);
usr/src/uts/common/fs/dev/sdev_profile.c
440
if (gmatch(name, expr))
usr/src/uts/common/fs/dev/sdev_profile.c
443
match = gmatch(name, expr);
usr/src/uts/common/fs/dev/sdev_profile.c
455
expr = nvpair_name(nvp);
usr/src/uts/common/fs/dev/sdev_profile.c
456
if (gmatch(name, expr) == 0)
usr/src/uts/common/fs/dev/sdev_profile.c
746
apply_dir_pattern(struct sdev_node *dir, char *expr, char *pathleft, int type)
usr/src/uts/common/fs/dev/sdev_profile.c
754
(void) sdev_cleandir(dir, expr, SDEV_ENFORCE);
usr/src/uts/common/fs/dev/sdev_profile.c
762
if (gmatch(dv->sdev_name, expr) == 0 ||
usr/src/uts/common/fs/dev/sdev_subr.c
2146
sdev_cleandir(struct sdev_node *ddv, char *expr, uint_t flags)
usr/src/uts/common/fs/dev/sdev_subr.c
2166
if (expr && gmatch(dv->sdev_name, expr) == 0)
usr/src/uts/common/fs/zfs/lua/lparser.c
1171
expr(ls, &v); /* read condition */
usr/src/uts/common/fs/zfs/lua/lparser.c
1274
expr(ls, &e);
usr/src/uts/common/fs/zfs/lua/lparser.c
1380
expr(ls, &v); /* read condition */
usr/src/uts/common/fs/zfs/lua/lparser.c
56
static void expr (LexState *ls, expdesc *v);
usr/src/uts/common/fs/zfs/lua/lparser.c
629
expr(ls, v);
usr/src/uts/common/fs/zfs/lua/lparser.c
666
expr(ls, &val);
usr/src/uts/common/fs/zfs/lua/lparser.c
700
expr(ls, &cc->v);
usr/src/uts/common/fs/zfs/lua/lparser.c
812
expr(ls, v);
usr/src/uts/common/fs/zfs/lua/lparser.c
815
expr(ls, v);
usr/src/uts/common/fs/zfs/lua/lparser.c
882
expr(ls, v);
usr/src/uts/common/fs/zfs/sys/zfs_context.h
78
#define _zfs_expect(expr, value) (__builtin_expect((expr), (value)))
usr/src/uts/common/fs/zfs/sys/zfs_context.h
80
#define _zfs_expect(expr, value) (expr)
usr/src/uts/common/io/qede/579xx/drivers/ecore/bcm_osal.h
63
#define likely(expr) (expr)
usr/src/uts/common/io/qede/579xx/drivers/ecore/bcm_osal.h
67
#define unlikely(expr) (expr)
usr/src/uts/common/sys/va_list.h
81
#define __va_void(expr) ((void)expr)
usr/src/uts/sun4v/io/vds.c
3573
#define RNDSIZE(expr) P2ROUNDUP(sizeof (expr), sizeof (uint64_t))