Skip to content

Commit f2fb26d

Browse files
committed
C#: Document input/output stack restrictions
1 parent c5c8020 commit f2fb26d

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

csharp/ql/src/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,20 @@ module Public {
139139
*
140140
* `preservesValue` indicates whether this is a value-preserving step
141141
* or a taint-step.
142+
*
143+
* Input specications are restricted to stacks that end with
144+
* `SummaryComponent::argument(_)`, preceded by zero or more
145+
* `SummaryComponent::return(_)` or `SummaryComponent::content(_)` components.
146+
*
147+
* Output specications are restricted to stacks that end with
148+
* `SummaryComponent::return(_)` or `SummaryComponent::argument(_)`.
149+
*
150+
* Output stacks ending with `SummaryComponent::return(_)` can be preceded by zero
151+
* or more `SummaryComponent::content(_)` components.
152+
*
153+
* Output stacks ending with `SummaryComponent::argument(_)` can be preceded by an
154+
* optional `SummaryComponent::parameter(_)` component, which in turn can be preceded
155+
* by zero or more `SummaryComponent::content(_)` components.
142156
*/
143157
pragma[nomagic]
144158
predicate propagatesFlow(

0 commit comments

Comments
 (0)