CPP: Restrict to #elif, #else, #endif.

This commit is contained in:
Geoffrey White
2019-04-11 15:14:21 +01:00
parent 2dad62acf4
commit 1e0e3192bb
2 changed files with 14 additions and 1 deletions

View File

@@ -49,10 +49,21 @@ private predicate looksLikeCode(string line) {
/**
* Holds if there is a preprocessor directive on the line indicated by
* `f` and `line`.
* `f` and `line` that we permit code comments besides. For example this
* is considered acceptable:
* ```
* #ifdef MYMACRO
* ...
* #endif // #ifdef MYMACRO
* ```
*/
private predicate preprocLine(File f, int line) {
exists(PreprocessorDirective pd, Location l |
(
pd instanceof PreprocessorElse or
pd instanceof PreprocessorElif or
pd instanceof PreprocessorEndif
) and
pd.getLocation() = l and
l.getFile() = f and
l.getStartLine() = line