@@ -346,7 +346,7 @@ const Token * CheckNullPointer::nullPointerByDeRefAndCheck(const Token *start, c
346
346
/* Garbage code */
347
347
return end;
348
348
}
349
- tok = tok->next ()-> linkAt (3 ); /* Skip condition */
349
+ tok = tok->linkAt (4 ); /* Skip condition */
350
350
if (!tok || !tok->next () || !tok->next ()->link ()) {
351
351
/* Garbage code */
352
352
return end;
@@ -368,25 +368,21 @@ const Token * CheckNullPointer::nullPointerByDeRefAndCheck(const Token *start, c
368
368
}
369
369
const Token *condTok = ifTok->next ()->astOperand2 ();
370
370
const Token *condStartTok = ifTok->next ();
371
- const Token *condEndTok = ifTok-> next () ->link ();
371
+ const Token *condEndTok = condStartTok ->link ();
372
372
if (!Token::simpleMatch (condStartTok, " (" ) || !Token::simpleMatch (condEndTok, " )" )) {
373
373
/* Garbage code */
374
374
return end;
375
375
}
376
376
tok = nullPointerByDeRefAndCheck (condStartTok, condEndTok, printInconclusive);
377
- if (!tok || !tok->next () || !tok->next ()-> link ( )) {
377
+ if (!tok || !tok->next () || !tok->linkAt ( 1 )) {
378
378
/* Garbage code */
379
379
return end;
380
380
}
381
381
382
382
prevBranchTaken = prevBranchTaken || (condTok->hasKnownIntValue () && condTok->getKnownIntValue ());
383
383
if (condTok->hasKnownIntValue () && condTok->getKnownIntValue () == 0 ) {
384
- if (!tok->next ()->link ()) {
385
- /* Garbage code */
386
- return end;
387
- }
388
384
/* Skip body */
389
- tok = tok->next ()-> link ( );
385
+ tok = tok->linkAt ( 1 );
390
386
} else {
391
387
/* Analyze body */
392
388
const Token *elseIfBodyStartTok = tok->next ();
@@ -401,16 +397,16 @@ const Token * CheckNullPointer::nullPointerByDeRefAndCheck(const Token *start, c
401
397
/* Garbage code */
402
398
return end;
403
399
}
404
- } while (Token::simpleMatch (tok->next (), " else { if (" ) && Token::simpleMatch (tok->next ()-> linkAt (3 ), " ) {" ));
400
+ } while (Token::simpleMatch (tok->next (), " else { if (" ) && Token::simpleMatch (tok->linkAt (4 ), " ) {" ));
405
401
406
402
/* Handle final else branch */
407
403
if (prevBranchTaken && Token::simpleMatch (tok->next (), " else" )) {
408
404
/* Skip body */
409
- if (!tok->next () || !tok->next ()->next () || !tok->next ()-> next ()-> link ( )) {
405
+ if (!tok->next () || !tok->next ()->next () || !tok->linkAt ( 2 )) {
410
406
/* Garbage code */
411
407
return end;
412
408
}
413
- tok = tok->next ()-> next ()-> link ( );
409
+ tok = tok->linkAt ( 2 );
414
410
}
415
411
} else if (Token::simpleMatch (tok, " ?" ) && Token::simpleMatch (tok->astOperand2 (), " :" )) { // ternary operator
416
412
const Token *condTok = tok->astOperand1 ();
@@ -421,12 +417,12 @@ const Token * CheckNullPointer::nullPointerByDeRefAndCheck(const Token *start, c
421
417
}
422
418
} else {
423
419
if (isUnevaluated (tok)) {
424
- if (!tok->next () || !tok->next ()-> link ( )) {
420
+ if (!tok->next () || !tok->linkAt ( 1 )) {
425
421
/* Garbage code */
426
422
return end;
427
423
}
428
424
429
- tok = tok->next ()-> link ( );
425
+ tok = tok->linkAt ( 1 );
430
426
} else {
431
427
nullPointerByDeRefAndCheckToken (tok, printInconclusive);
432
428
}
0 commit comments