trailofbits / multiplier

Code auditing productivity multiplier.
Apache License 2.0
437 stars 27 forks source link

Move attributes, empty macro expansions, and macros expanding to attributes into floating fragments #558

Open pgoodman opened 4 months ago

pgoodman commented 4 months ago

This is a big issue, with the purpose of addressing database bloat in V8 indexes due to the V8_EXPORT macro. In different translation units, this macro expands differently, resulting in the same classes, or class templates, "looking" different to multiplier's AST/code-based deduplication logic. As a result, there can be two or more copies of many classes stored in the database. This has knock-on effects for the methods, especially method templates.