File tree Expand file tree Collapse file tree 1 file changed +3
-1
lines changed
cpp/ql/src/semmle/code/cpp Expand file tree Collapse file tree 1 file changed +3
-1
lines changed Original file line number Diff line number Diff line change @@ -397,7 +397,7 @@ class StaticStorageDurationVariable extends Variable {
397
397
*/
398
398
private predicate runtimeExprInStaticInitializer ( Expr e ) {
399
399
inStaticInitializer ( e ) and
400
- if e instanceof AggregateLiteral
400
+ if e instanceof AggregateLiteral // in sync with the cast in `inStaticInitializer`
401
401
then runtimeExprInStaticInitializer ( e .getAChild ( ) )
402
402
else not e .getFullyConverted ( ) .isConstant ( )
403
403
}
@@ -409,6 +409,8 @@ private predicate runtimeExprInStaticInitializer(Expr e) {
409
409
private predicate inStaticInitializer ( Expr e ) {
410
410
exists ( StaticStorageDurationVariable var | e = var .getInitializer ( ) .getExpr ( ) )
411
411
or
412
+ // The cast to `AggregateLiteral` ensures we only compute what'll later be
413
+ // needed by `runtimeExprInStaticInitializer`.
412
414
inStaticInitializer ( e .getParent ( ) .( AggregateLiteral ) )
413
415
}
414
416
You can’t perform that action at this time.
0 commit comments