|
| 1 | +## 3.2.0 |
| 2 | + |
| 3 | +### New Features |
| 4 | + |
| 5 | +* Add a new predicate `getAnIndirectBarrier` to the parameterized module `InstructionBarrierGuard` in `semmle.code.cpp.dataflow.new.DataFlow` for computing indirect dataflow nodes that are guarded by a given instruction. This predicate is similar to the `getAnIndirectBarrier` predicate on the parameterized module `BarrierGuard`. |
| 6 | +* A new predicate `getDecltype` was added to the `ProxyClass` class, which yields the decltype for the proxy class. |
| 7 | +* Template classes that are of `struct` type are now also instances of the `Struct` class. |
| 8 | +* Template classes that are of `union` type are now also instances of the `Union` class. |
| 9 | +* A new abstract class `ConfigurationTestFile` (`semmle.code.cpp.ConfigurationTestFile.ConfigurationTestFile`) was introduced, which represents files created to test the build configuration. A subclass `CmakeTryCompileFile` of `ConfigurationTestFile` was also introduced, which represents files created by CMake to test the build configuration. |
| 10 | +* New predicates `getARequiresClause`, `getTemplateRequiresClause` and `getFunctionRequiresClause` were added to the `FunctionDeclarationEntry` class, which yield the requires clauses when the entry represents a function template declaration with requires clauses. |
| 11 | +* A new predicate `getRequiresClause` was added to the `TypeDeclarationEntry` class, which yields the requires clause when the entry represents a class template declaration with a requires clause. |
| 12 | +* A new predicate `getRequiresClause` was added to the `VariableDeclarationEntry` class, which yields the requires clause when the entry represents a variable template declaration with a requires clause. |
| 13 | +* A new predicate `getTypeConstraint` was added to the `TypeTemplateParameter` class, which yields the type constraint of the parameter if it exists. |
| 14 | +* A new class `VariableTemplateSpecialization` was introduced, which represents explicit specializations of variable templates. |
| 15 | +* A new predicate `isSpecialization` was added to the `Variable` class, which holds if the variable is a template specialization. |
| 16 | +* A new class `ConceptIdExpr` was introduced, which represents C++20 concept id expressions. |
| 17 | +* A new class `Concept` was introduced, which represents C++20 concepts. |
| 18 | +* The `getTemplateArgumentType` and `getTemplateArgumentValue` predicates of the `Declaration` class now also yield template arguments of concepts. |
| 19 | +* A new class `ConstevalIfStmt` was introduced, which represents the C++23 `if consteval` and `if ! consteval` statements. |
| 20 | + |
| 21 | +### Minor Analysis Improvements |
| 22 | + |
| 23 | +* `DefaultOptions::exits` now holds for C23 functions with the `_Noreturn` or `___Noreturn__` attribute. |
| 24 | + |
1 | 25 | ## 3.1.0 |
2 | 26 |
|
3 | 27 | ### Deprecated APIs |
|
0 commit comments