@@ -336,6 +336,7 @@ class LocalSourceParameterNode extends ExtractedParameterNode, LocalSourceNode {
336336ExtractedParameterNode parameterNode ( Parameter p ) { result .getParameter ( ) = p }
337337
338338/** A data flow node that represents a call argument. */
339+ overlay [ global]
339340abstract class ArgumentNode extends Node {
340341 /** Holds if this argument occurs at the given position in the given call. */
341342 abstract predicate argumentOf ( DataFlowCall call , ArgumentPosition pos ) ;
@@ -347,11 +348,12 @@ abstract class ArgumentNode extends Node {
347348/**
348349 * A data flow node that represents a call argument found in the source code.
349350 */
351+ overlay [ global]
350352class ExtractedArgumentNode extends ArgumentNode {
351353 ExtractedArgumentNode ( ) {
352354 // for resolved calls, we need to allow all argument nodes
353- getCallArg ( _, _, _, this , _)
354- or
355+ // getCallArg(_, _, _, this, _)
356+ // or
355357 // for potential summaries we allow all normal call arguments
356358 normalCallArg ( _, this , _)
357359 or
@@ -436,6 +438,7 @@ class ModuleVariableNode extends Node, TModuleVariableNode {
436438 GlobalVariable getVariable ( ) { result = var }
437439
438440 /** Gets a node that reads this variable. */
441+ overlay [ global]
439442 Node getARead ( ) {
440443 result .asCfgNode ( ) = var .getALoad ( ) .getAFlowNode ( ) and
441444 // Ignore reads that happen when the module is imported. These are only executed once.
@@ -463,12 +466,12 @@ class ModuleVariableNode extends Node, TModuleVariableNode {
463466 override Location getLocation ( ) { result = mod .getLocation ( ) }
464467}
465468
466- private predicate isAccessedThroughImportStar ( Module m ) { m = ImportStar:: getStarImported ( _) }
467-
469+ overlay [ global]
468470private ModuleVariableNode import_star_read ( Node n ) {
469471 resolved_import_star_module ( result .getModule ( ) , result .getVariable ( ) .getId ( ) , n )
470472}
471473
474+ overlay [ global]
472475pragma [ nomagic]
473476private predicate resolved_import_star_module ( Module m , string name , Node n ) {
474477 exists ( NameNode nn | nn = n .asCfgNode ( ) |
@@ -594,6 +597,7 @@ signature predicate guardChecksSig(GuardNode g, ControlFlowNode node, boolean br
594597 * This is expected to be used in `isBarrier`/`isSanitizer` definitions
595598 * in data flow and taint tracking.
596599 */
600+ overlay [ global]
597601module BarrierGuard< guardChecksSig / 3 guardChecks> {
598602 /** Gets a node that is safely guarded by the given guard check. */
599603 ExprNode getABarrierNode ( ) {
0 commit comments