Skip to content

Commit 4ae8a9a

Browse files
committed
C++: Add PreprocBlock tests.
1 parent af17ae2 commit 4ae8a9a

File tree

6 files changed

+60
-0
lines changed

6 files changed

+60
-0
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// header.h
2+
3+
#ifndef HEADER_H
4+
#define HEADER_H
5+
6+
// ...
7+
8+
#endif // HEADER_H
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
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
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
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 |
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
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
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
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 |
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
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

0 commit comments

Comments
 (0)