Print this page
12166 resync smatch to 0.6.1-rc1-il-3

Split Close
Expand all
Collapse all
          --- old/usr/src/tools/smatch/src/smatch_helper.c
          +++ new/usr/src/tools/smatch/src/smatch_helper.c
↓ open down ↓ 291 lines elided ↑ open up ↑
 292  292                  sval_t sval = {};
 293  293                  char tmp[25];
 294  294  
 295  295                  *complicated = 1;
 296  296                  if (!get_value(expr, &sval))
 297  297                          return;
 298  298                  snprintf(tmp, 25, "%s", sval_to_numstr(sval));
 299  299                  append(buf, tmp, len);
 300  300                  return;
 301  301          }
      302 +        case EXPR_FVALUE: {
      303 +                sval_t sval = {};
      304 +                char tmp[25];
      305 +
      306 +                *complicated = 1;
      307 +                if (!get_value(expr, &sval))
      308 +                        return;
      309 +                snprintf(tmp, 25, "%s", sval_to_numstr(sval));
      310 +                append(buf, tmp, len);
      311 +                return;
      312 +        }
 302  313          case EXPR_STRING:
 303  314                  append(buf, "\"", len);
 304  315                  if (expr->string)
 305  316                          append(buf, expr->string->data, len);
 306  317                  append(buf, "\"", len);
 307  318                  return;
 308  319          case EXPR_CALL: {
 309  320                  struct expression *tmp;
 310  321                  int i;
 311  322  
↓ open down ↓ 747 lines elided ↑ open up ↑
1059 1070  
1060 1071          if (!cur_func_sym)
1061 1072                  return -1;
1062 1073          name = expr_to_var_sym(expr, &sym);
1063 1074          free_string(name);
1064 1075          if (!sym)
1065 1076                  return -1;
1066 1077          return get_param_num_from_sym(sym);
1067 1078  }
1068 1079  
     1080 +struct symbol *get_param_sym_from_num(int num)
     1081 +{
     1082 +        struct symbol *sym;
     1083 +        int i;
     1084 +
     1085 +        if (!cur_func_sym)
     1086 +                return NULL;
     1087 +
     1088 +        i = 0;
     1089 +        FOR_EACH_PTR(cur_func_sym->ctype.base_type->arguments, sym) {
     1090 +                if (i++ == num)
     1091 +                        return sym;
     1092 +        } END_FOR_EACH_PTR(sym);
     1093 +        return NULL;
     1094 +}
     1095 +
1069 1096  int ms_since(struct timeval *start)
1070 1097  {
1071 1098          struct timeval end;
1072 1099          double diff;
1073 1100  
1074 1101          gettimeofday(&end, NULL);
1075 1102          diff = (end.tv_sec - start->tv_sec) * 1000.0;
1076 1103          diff += (end.tv_usec - start->tv_usec) / 1000.0;
1077 1104          return (int)diff;
1078 1105  }
↓ open down ↓ 137 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX