mirror of
https://github.com/github/codeql.git
synced 2026-05-02 20:25:13 +02:00
Merge pull request #21661 from jketema/autoconf
C++: Add heuristic for GNU autoconf config files
This commit is contained in:
4
cpp/ql/lib/change-notes/2026-04-07-autoconf.md
Normal file
4
cpp/ql/lib/change-notes/2026-04-07-autoconf.md
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
category: feature
|
||||||
|
---
|
||||||
|
* Added a subclass `AutoconfConfigureTestFile` of `ConfigurationTestFile` that represents files created by GNU autoconf configure scripts to test the build configuration.
|
||||||
@@ -42,3 +42,10 @@ class MesonPrivateTestFile extends ConfigurationTestFile {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A file created by a GNU autoconf configure script to test the system configuration.
|
||||||
|
*/
|
||||||
|
class AutoconfConfigureTestFile extends ConfigurationTestFile {
|
||||||
|
AutoconfConfigureTestFile() { this.getBaseName().regexpMatch("conftest[0-9]*\\.c(pp)?") }
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
| conftest.c.c:4:3:4:8 | call to strlen | This expression has no effect (because $@ has no external side effects). | conftest.h:3:8:3:13 | strlen | strlen |
|
||||||
|
| conftest_abc.c:4:3:4:8 | call to strlen | This expression has no effect (because $@ has no external side effects). | conftest.h:3:8:3:13 | strlen | strlen |
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
Likely Bugs/Likely Typos/ExprHasNoEffect.ql
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#include "conftest.h"
|
||||||
|
|
||||||
|
int main2() {
|
||||||
|
strlen(""); // GOOD: conftest files are ignored
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#include "conftest.h"
|
||||||
|
|
||||||
|
int main3() {
|
||||||
|
strlen(""); // BAD: not a `conftest` file, as `conftest` is not directly followed by the extension or a sequence of numbers.
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#include "conftest.h"
|
||||||
|
|
||||||
|
int main4() {
|
||||||
|
strlen(""); // GOOD: conftest files are ignored
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
typedef long long size_t;
|
||||||
|
|
||||||
|
size_t strlen(const char *s);
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#include "conftest.h"
|
||||||
|
|
||||||
|
int main5() {
|
||||||
|
strlen(""); // GOOD: conftest files are ignored
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#include "conftest.h"
|
||||||
|
|
||||||
|
int main1() {
|
||||||
|
strlen(""); // BAD: not a `conftest` file, as `conftest` is not directly followed by the extension or a sequence of numbers.
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user