Project Name | CID | Checker | Category | Developer Description |
---|---|---|---|---|
msoos/cryptominisat | 1306223 | COPY_PASTE_ERROR | Incorrect expression | Prototypical copy-paste error. I used code by someone else that I didn't fully understand (MIT licensed), and Coverity caught a bug I didn't even half understand but the fix was obviously right. Pretty good job I say. |
267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 |
if (pnr_var_mean > 0) { pnr_var_mean /= 1.0 * numVars; } if (horn_mean > 0) { horn_mean /= 1.0 * numVars; } vcg_var_spread = vcg_var_max - vcg_var_min; pnr_var_spread = pnr_var_max - pnr_var_min; horn_spread = horn_max - horn_min; auto func2 = [&](unsigned size, unsigned pos_vars, unsigned) -> void { if ( size == 0 ) { return; } double _size = (double)size / (1.0 * numVars); vcg_cls_std += (vcg_cls_mean - _size) * (vcg_cls_mean - _size); double _pnr = 0.5 + ((2.0 * (double)pos_vars - (double)size) / (2.0 * (double)size)); pnr_cls_std += (pnr_cls_mean - _pnr) * (pnr_cls_mean - _pnr); }; for_all_clauses(func2, empty_func); |
<< "this->vcg_cls_mean" looks like the original copy.
291 292 293 294 295 |
if ( vcg_cls_std > eps && vcg_cls_mean > eps ) { vcg_cls_std = sqrt(vcg_cls_std / (1.0 * numClauses)) / vcg_cls_mean; } else { vcg_cls_std = 0; } |
<<< CID 1306223: Incorrect expression COPY_PASTE_ERROR <<< "vcg_cls_mean" in "this->vcg_cls_mean" looks like a copy-paste error.
< Should it say "pnr_cls_mean" instead?
296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 |
if ( pnr_cls_std > eps && vcg_cls_mean > eps ) { pnr_cls_std = sqrt(pnr_cls_std / (1.0 * numClauses)) / pnr_cls_mean; } else { pnr_cls_std = 0; } for ( int vv = 0; vv < (int)myVars.size(); vv++ ) { if ( myVars[vv].size == 0 ) { continue; } double _size = myVars[vv].size / (1.0 * numClauses); vcg_var_std += (vcg_var_mean - _size) * (vcg_var_mean - _size); double _pnr = 0.5 + ((2.0 * myVars[vv].numPos - myVars[vv].size) / (2.0 * myVars[vv].size)); pnr_var_std += (pnr_var_mean - _pnr) * (pnr_var_mean - _pnr); double _horn = myVars[vv].horn / (1.0 * numClauses); horn_std += (horn_mean - _horn) * (horn_mean - _horn); } if ( vcg_var_std > eps && vcg_var_mean > eps ) { vcg_var_std = sqrt(vcg_var_std / (1.0 * numVars)) / vcg_var_mean; } else { vcg_var_std = 0; } if ( pnr_var_std > eps && pnr_var_mean > eps ) { |
original | features_fast.cpp:291 | |
remediation | features_fast.cpp:296 | |
copy_paste_error | features_fast.cpp:296 |