File tree Expand file tree Collapse file tree 6 files changed +60
-0
lines changed Expand file tree Collapse file tree 6 files changed +60
-0
lines changed Original file line number Diff line number Diff line change
1
+ // header.h
2
+
3
+ #ifndef HEADER_H
4
+ #define HEADER_H
5
+
6
+ // ...
7
+
8
+ #endif // HEADER_H
Original file line number Diff line number Diff line change
1
+ // preprocblock.cpp
2
+
3
+ #include " header.h"
4
+ #define GREEN
5
+
6
+ #ifdef RED
7
+ #elif defined GREEN
8
+ #include " header.h"
9
+
10
+ #ifndef BLUE
11
+ #include " header.h"
12
+ #endif
13
+
14
+ #if 0
15
+ #include "header.h" // not reached
16
+ #else
17
+ #include " header.h"
18
+ #endif
19
+
20
+ #include " header.h"
21
+ #else
22
+
23
+ // ...
24
+
25
+ #endif
Original file line number Diff line number Diff line change
1
+ | #elif defined GREEN | preprocblock.cpp:10:0:11:0 | #ifndef BLUE |
2
+ | #elif defined GREEN | preprocblock.cpp:14:0:15:0 | #if 0 |
3
+ | #elif defined GREEN | preprocblock.cpp:16:0:17:0 | #else |
4
+ | (no parent) | file://:0:0:0:0 | |
5
+ | (no parent) | header.h:0:0:8:0 | header.h |
6
+ | (no parent) | preprocblock.cpp:0:0:25:0 | preprocblock.cpp |
7
+ | header.h | header.h:3:0:7:0 | #ifndef HEADER_H |
8
+ | preprocblock.cpp | preprocblock.cpp:6:0:6:0 | #ifdef RED |
9
+ | preprocblock.cpp | preprocblock.cpp:7:0:20:0 | #elif defined GREEN |
10
+ | preprocblock.cpp | preprocblock.cpp:21:0:24:0 | #else |
Original file line number Diff line number Diff line change
1
+ import cpp
2
+ import semmle.code.cpp.headers.PreprocBlock
3
+
4
+ from PreprocessorBlock b , string parent
5
+ where if exists ( b .getParent ( ) ) then parent = b .getParent ( ) .toString ( ) else parent = "(no parent)"
6
+ select parent , b
Original file line number Diff line number Diff line change
1
+ | preprocblock.cpp:3:1:3:19 | #include "header.h" | preprocblock.cpp:0:0:25:0 | preprocblock.cpp |
2
+ | preprocblock.cpp:8:2:8:20 | #include "header.h" | preprocblock.cpp:7:0:20:0 | #elif defined GREEN |
3
+ | preprocblock.cpp:11:3:11:21 | #include "header.h" | preprocblock.cpp:10:0:11:0 | #ifndef BLUE |
4
+ | preprocblock.cpp:17:3:17:21 | #include "header.h" | preprocblock.cpp:16:0:17:0 | #else |
5
+ | preprocblock.cpp:20:2:20:20 | #include "header.h" | preprocblock.cpp:7:0:20:0 | #elif defined GREEN |
Original file line number Diff line number Diff line change
1
+ import cpp
2
+ import semmle.code.cpp.headers.PreprocBlock
3
+
4
+ from PreprocessorBlock b , Include i
5
+ where b .getAnInclude ( ) = i
6
+ select i , b
You can’t perform that action at this time.
0 commit comments