C++: Add PreprocBlock tests.

This commit is contained in:
Geoffrey White
2024-01-30 16:47:35 +00:00
parent af17ae236f
commit 4ae8a9a6c4
6 changed files with 60 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
// header.h
#ifndef HEADER_H
#define HEADER_H
// ...
#endif // HEADER_H

View File

@@ -0,0 +1,25 @@
// preprocblock.cpp
#include "header.h"
#define GREEN
#ifdef RED
#elif defined GREEN
#include "header.h"
#ifndef BLUE
#include "header.h"
#endif
#if 0
#include "header.h" // not reached
#else
#include "header.h"
#endif
#include "header.h"
#else
// ...
#endif

View File

@@ -0,0 +1,10 @@
| #elif defined GREEN | preprocblock.cpp:10:0:11:0 | #ifndef BLUE |
| #elif defined GREEN | preprocblock.cpp:14:0:15:0 | #if 0 |
| #elif defined GREEN | preprocblock.cpp:16:0:17:0 | #else |
| (no parent) | file://:0:0:0:0 | |
| (no parent) | header.h:0:0:8:0 | header.h |
| (no parent) | preprocblock.cpp:0:0:25:0 | preprocblock.cpp |
| header.h | header.h:3:0:7:0 | #ifndef HEADER_H |
| preprocblock.cpp | preprocblock.cpp:6:0:6:0 | #ifdef RED |
| preprocblock.cpp | preprocblock.cpp:7:0:20:0 | #elif defined GREEN |
| preprocblock.cpp | preprocblock.cpp:21:0:24:0 | #else |

View File

@@ -0,0 +1,6 @@
import cpp
import semmle.code.cpp.headers.PreprocBlock
from PreprocessorBlock b, string parent
where if exists(b.getParent()) then parent = b.getParent().toString() else parent = "(no parent)"
select parent, b

View File

@@ -0,0 +1,5 @@
| preprocblock.cpp:3:1:3:19 | #include "header.h" | preprocblock.cpp:0:0:25:0 | preprocblock.cpp |
| preprocblock.cpp:8:2:8:20 | #include "header.h" | preprocblock.cpp:7:0:20:0 | #elif defined GREEN |
| preprocblock.cpp:11:3:11:21 | #include "header.h" | preprocblock.cpp:10:0:11:0 | #ifndef BLUE |
| preprocblock.cpp:17:3:17:21 | #include "header.h" | preprocblock.cpp:16:0:17:0 | #else |
| preprocblock.cpp:20:2:20:20 | #include "header.h" | preprocblock.cpp:7:0:20:0 | #elif defined GREEN |

View File

@@ -0,0 +1,6 @@
import cpp
import semmle.code.cpp.headers.PreprocBlock
from PreprocessorBlock b, Include i
where b.getAnInclude() = i
select i, b