- Add a new predicate
getAnIndirectBarrier
to the parameterized moduleInstructionBarrierGuard
insemmle.code.cpp.dataflow.new.DataFlow
for computing indirect dataflow nodes that are guarded by a given instruction. This predicate is similar to thegetAnIndirectBarrier
predicate on the parameterized moduleBarrierGuard
. - A new predicate
getDecltype
was added to theProxyClass
class, which yields the decltype for the proxy class. - Template classes that are of
struct
type are now also instances of theStruct
class. - Template classes that are of
union
type are now also instances of theUnion
class. - A new abstract class
ConfigurationTestFile
(semmle.code.cpp.ConfigurationTestFile.ConfigurationTestFile
) was introduced, which represents files created to test the build configuration. A subclassCmakeTryCompileFile
ofConfigurationTestFile
was also introduced, which represents files created by CMake to test the build configuration. - New predicates
getARequiresClause
,getTemplateRequiresClause
andgetFunctionRequiresClause
were added to theFunctionDeclarationEntry
class, which yield the requires clauses when the entry represents a function template declaration with requires clauses. - A new predicate
getRequiresClause
was added to theTypeDeclarationEntry
class, which yields the requires clause when the entry represents a class template declaration with a requires clause. - A new predicate
getRequiresClause
was added to theVariableDeclarationEntry
class, which yields the requires clause when the entry represents a variable template declaration with a requires clause. - A new predicate
getTypeConstraint
was added to theTypeTemplateParameter
class, which yields the type constraint of the parameter if it exists. - A new class
VariableTemplateSpecialization
was introduced, which represents explicit specializations of variable templates. - A new predicate
isSpecialization
was added to theVariable
class, which holds if the variable is a template specialization. - A new class
ConceptIdExpr
was introduced, which represents C++20 concept id expressions. - A new class
Concept
was introduced, which represents C++20 concepts. - The
getTemplateArgumentType
andgetTemplateArgumentValue
predicates of theDeclaration
class now also yield template arguments of concepts. - A new class
ConstevalIfStmt
was introduced, which represents the C++23if consteval
andif ! consteval
statements.
DefaultOptions::exits
now holds for C23 functions with the_Noreturn
or___Noreturn__
attribute.