File tree Expand file tree Collapse file tree 1 file changed +14
-12
lines changed
go/ql/lib/semmle/go/dataflow/internal Expand file tree Collapse file tree 1 file changed +14
-12
lines changed Original file line number Diff line number Diff line change @@ -807,22 +807,24 @@ module Public {
807807 abstract Node getPreUpdateNode ( ) ;
808808 }
809809
810+ predicate hasPostUpdateNode ( Node preupd ) {
811+ preupd instanceof AddressOperationNode
812+ or
813+ preupd = any ( AddressOperationNode addr ) .getOperand ( )
814+ or
815+ preupd = any ( PointerDereferenceNode deref ) .getOperand ( )
816+ or
817+ preupd = getAWrittenNode ( )
818+ or
819+ preupd = any ( ArgumentNode arg ) .getACorrespondingSyntacticArgument ( ) and
820+ mutableType ( preupd .getType ( ) )
821+ }
822+
810823 private class DefaultPostUpdateNode extends PostUpdateNode {
811824 Node preupd ;
812825
813826 DefaultPostUpdateNode ( ) {
814- (
815- preupd instanceof AddressOperationNode
816- or
817- preupd = any ( AddressOperationNode addr ) .getOperand ( )
818- or
819- preupd = any ( PointerDereferenceNode deref ) .getOperand ( )
820- or
821- preupd = getAWrittenNode ( )
822- or
823- preupd = any ( ArgumentNode arg ) .getACorrespondingSyntacticArgument ( ) and
824- mutableType ( preupd .getType ( ) )
825- ) and
827+ hasPostUpdateNode ( preupd ) and
826828 (
827829 preupd = this .( SsaNode ) .getAUse ( )
828830 or
You can’t perform that action at this time.
0 commit comments