Commit Graph

6 Commits

Author SHA1 Message Date
Matthew Olsson
5740f93ef4 ClangPlugins: Check for strong root fields in GC allocated objects
GC-allocated objects should never have JS::SafeFunction/JS::Handle
fields.

For now the plugin only emits warnings here, as there are many cases
of this occurring in the codebase that aren't trivial to fix. It is also
behind a CMake flag since it is a _very_ loud warning.
2024-05-30 09:29:20 -06:00
Matthew Olsson
36d032b208 ClangPlugin: Emit diagnostics for incorrect usage of JS_CELL-like macros 2024-05-30 09:29:20 -06:00
Matthew Olsson
54fffef902 ClangPlugin: Add a PPCallbacks instance to collect JS_CELL-like macros 2024-05-30 09:29:20 -06:00
Matthew Olsson
d74838f44d ClangPlugins: Use underscores instead of dashes in plugin names
This allows arguments to be passed to them from the command line
2024-05-30 09:29:20 -06:00
Matthew Olsson
6a4938a524 ClangPlugins: Convert all warnings to errors
Now that the lambda capture plugin isn't full of false-positives, we can
make the jump and start halting builds for these errors. It also allows
these plugins to be useful in CI.
2024-05-22 21:55:34 -06:00
Matthew Olsson
c3ed1a7995 Lagom: Add ClangPlugins
This is a more general and robust replacement of the LibJSGCVerifier.
We want to add more generic static analysis, and this new plugin will
be built in a way that integrates into the rest of the system.
2024-05-13 16:50:54 -06:00