Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2b7cc15

Browse files
committed
Introduce base class for branching and conditional directives
1 parent e450b61 commit 2b7cc15

2 files changed

Lines changed: 5 additions & 2 deletions

File tree

csharp/ql/src/semmle/code/csharp/Preprocessor.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ class EndRegionDirective extends PreprocessorDirective, @directive_endregion {
255255
* A branching preprocessor directive, such as `IfDirective`, `ElifDirective`, or
256256
* `ElseDirective`.
257257
*/
258-
class BranchDirective extends PreprocessorDirective {
258+
class BranchDirective extends PreprocessorDirective, @branch_directive {
259259
/** Holds if the branch is taken by the preprocessor. */
260260
predicate branchTaken() { none() }
261261
}
@@ -264,7 +264,7 @@ class BranchDirective extends PreprocessorDirective {
264264
* A preprocessor directive with a branching condition, such as `IfDirective` or
265265
* `ElifDirective`.
266266
*/
267-
class ConditionalDirective extends BranchDirective {
267+
class ConditionalDirective extends BranchDirective, @conditional_directive {
268268
/** Gets the condition. */
269269
Expr getCondition() { result = this.getChild(0) }
270270

csharp/ql/src/semmlecode.csharp.dbscheme

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,9 @@ using_directive_location(
335335
| @directive_error | @directive_nullable | @directive_line | @directive_region | @directive_endregion | @directive_if
336336
| @directive_elif | @directive_else | @directive_endif;
337337

338+
@conditional_directive = @directive_if | @directive_elif;
339+
@branch_directive = @directive_if | @directive_elif | @directive_else;
340+
338341
directive_ifs(
339342
unique int id: @directive_if,
340343
int branchTaken: int ref, /* 0: false, 1: true */

0 commit comments

Comments
 (0)