noplate
static-analysis
noplate | static-analysis | |
---|---|---|
4 | 15 | |
41 | 12,959 | |
- | 1.8% | |
5.5 | 9.4 | |
12 days ago | 5 days ago | |
C | Rust | |
BSD 3-clause "New" or "Revised" License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
noplate
-
Polymorphic Types in C [pdf]
Hi Martin, thank you for writing this proposal. This is just my two cents, but one-off void* functions, like qsort, are less of a pain point relative to generic containers. With generic containers it's common to have a collection of void* functions that must be consistently invoked with identical type T. Correct me if I'm wrong, but this proposal cannot genericize a struct field, i.e. it can genericize type 'T' but not 'T->someField'. The latter would be useful for something like 'vec_push(v,p)' where 'v->data[]' is the type T needed to determine if 'p' is a compatible type.
Tangentially related, the macro-based containers you've written here [1] are the best answer for type-generic containers I've come across. One "gotcha" is the container name must be a valid C identifier otherwise it doesn't token paste correctly (see Example #2 of your REAMDE where you typedef'd string* as string_ptr to workaround this). Would you give consideration to a new preprocessor mechanism for concatenating a list of tokens into a single valid C identifier? i.e. Something like CONCAT(struct Foo *) would produce struct_Foo_Ptr? The result is guaranteed token paste-able.
[1] https://github.com/uecker/noplate
- Neverflow: Set of C macros that guard against buffer overflows
-
New C features in GCC 13
I am exploring way on how to implement this in C (with some extensions) as a library:
https://github.com/uecker/noplate
Certainly not production ready.
- Checked C
static-analysis
-
Static Analysis Tools for C
Readers should also peruse the 'Multiple languages' section, many of the big names, Coverity, Klocwork et al. are listed there.
see https://github.com/analysis-tools-dev/static-analysis#multip...
- Static-analysis – A curated list of static analysis (SAST) tools and linters
- Are you in favor of small functions/clean code or opposed to it?
-
Looking for feedback on our new website for Code Analysis Tools
this is Matthias from https://analysis-tools.dev.
-
Beating a dead horse?
Not an area I've had to deal with much unfortunately. Here is also a curated list of SAST tools grouped by technology. It can take quite some time to properly vet tools like this, but you might find something valuable in there.
-
Checked C
https://github.com/analysis-tools-dev/static-analysis
-
From Novice to contributor to Linux Kernel and/or other Low-Level projects
You can for example rely on static analyzers and scan the repositories (just please take care of making sure that any fix you make actually makes sense, sometimes people will just make whatever causes the reports to go away without understanding them). This site lists a bunch of them for different languages -> https://analysis-tools.dev/
-
What's the best free security scan tool for C/C++ files?
There's a bunch on https://github.com/analysis-tools-dev/static-analysis
-
Does anyone know of any tool for calculating the cyclomatic complexity of pascal-based source code?
https://github.com/analysis-tools-dev/static-analysis - general list of SAST
What are some alternatives?
archive-program - The GitHub Archive Program & Arctic Code Vault
solana - Web-Scale Blockchain for fast, secure, scalable, decentralized apps and marketplaces.
CodeHawk-C - CodeHawk C Analyzer: sound static analysis of memory safety (undefined behavior)
awesome-rust - A curated list of Rust code and resources.
neverflow - Set of macros that guard against buffer overflows. Based on C99 VLA feature.
find-sec-bugs - The SpotBugs plugin for security audits of Java web applications and Android applications. (Also work with Kotlin, Groovy and Scala projects)
checkedc-llvm-project - This repo contains a version of clang that is modified to support Checked C. Checked C is an extension to C that lets programmers write C code with bounds checking and improved type-safety.
rust-blog - Educational blog posts for Rust beginners
ikos - Static analyzer for C/C++ based on the theory of Abstract Interpretation.
awesome-linters - A community-driven list of awesome linters.
codeql - CodeQL: the libraries and queries that power security researchers around the world, as well as code scanning in GitHub Advanced Security
dynamic-analysis - ⚙️ A curated list of dynamic analysis tools and linters for all programming languages, binaries, and more.