mirror of
https://github.com/github/codeql.git
synced 2025-12-20 10:46:30 +01:00
Zlaski/cpp386a (#1753)
* [CPP-386] Cumulative patch. * Restore dataflow libraries clobbered by my last commit.
This commit is contained in:
committed by
Jonas Jensen
parent
8cada4b154
commit
ce71b45649
@@ -802,6 +802,8 @@ class ClassDerivation extends Locatable, @derivation {
|
||||
Class getBaseClass() {
|
||||
result = getBaseType().getUnderlyingType()
|
||||
}
|
||||
|
||||
override string getCanonicalQLClass() { result = "ClassDerivation" }
|
||||
|
||||
/**
|
||||
* Gets the type from which we are deriving, without resolving any
|
||||
|
||||
@@ -187,6 +187,8 @@ class Folder extends Container, @folder {
|
||||
result.hasLocationInfo(_, 0, 0, 0, 0)
|
||||
}
|
||||
|
||||
override string getCanonicalQLClass() { result = "Folder" }
|
||||
|
||||
/**
|
||||
* DEPRECATED: Use `getLocation` instead.
|
||||
* Gets the URL of this folder.
|
||||
@@ -259,6 +261,8 @@ class File extends Container, @file {
|
||||
result = Container.super.toString()
|
||||
}
|
||||
|
||||
override string getCanonicalQLClass() { result = "File" }
|
||||
|
||||
override Location getLocation() {
|
||||
result.getContainer() = this and
|
||||
result.hasLocationInfo(_, 0, 0, 0, 0)
|
||||
@@ -458,6 +462,8 @@ class HeaderFile extends File {
|
||||
exists(Include i | i.getIncludedFile() = this)
|
||||
}
|
||||
|
||||
override string getCanonicalQLClass() { result = "HeaderFile" }
|
||||
|
||||
/**
|
||||
* Holds if this header file does not contain any declaration entries or top level
|
||||
* declarations. For example it might be:
|
||||
@@ -488,6 +494,7 @@ class CFile extends File {
|
||||
)
|
||||
}
|
||||
|
||||
override string getCanonicalQLClass() { result = "CFile" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -507,6 +514,7 @@ class CppFile extends File {
|
||||
)
|
||||
}
|
||||
|
||||
override string getCanonicalQLClass() { result = "CppFile" }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -21,6 +21,8 @@ class FriendDecl extends Declaration, @frienddecl {
|
||||
* use `getFriend`.
|
||||
*/
|
||||
override Location getADeclarationLocation() { result = this.getLocation() }
|
||||
|
||||
override string getCanonicalQLClass() { result = "FriendDecl" }
|
||||
|
||||
/**
|
||||
* Implements the abstract method `Declaration.getDefinitionLocation`. A
|
||||
|
||||
@@ -82,6 +82,8 @@ class MacroAccess extends Locatable, @macroinvocation {
|
||||
result = this.getOutermostMacroAccess().getActualLocation()
|
||||
}
|
||||
|
||||
override string getCanonicalQLClass() { result = "MacroAccess" }
|
||||
|
||||
/**
|
||||
* Gets the location of this macro access. For a nested access, where
|
||||
* `exists(this.getParentInvocation())`, this yields a location either inside
|
||||
@@ -158,6 +160,8 @@ class MacroInvocation extends MacroAccess {
|
||||
macroinvocations(underlyingElement(this),_,_,1)
|
||||
}
|
||||
|
||||
override string getCanonicalQLClass() { result = "MacroInvocation" }
|
||||
|
||||
/**
|
||||
* Gets an element that occurs in this macro invocation or a nested macro
|
||||
* invocation.
|
||||
|
||||
@@ -132,6 +132,8 @@ class NamespaceDeclarationEntry extends Locatable, @namespace_decl {
|
||||
* example: the "{ ... }" in "namespace N { ... }".
|
||||
*/
|
||||
Location getBodyLocation() { namespace_decls(underlyingElement(this),_,_,result) }
|
||||
|
||||
override string getCanonicalQLClass() { result = "NamespaceDeclarationEntry" }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -158,6 +158,8 @@ class PreprocessorIf extends PreprocessorBranch, @ppd_if {
|
||||
*/
|
||||
class PreprocessorIfdef extends PreprocessorBranch, @ppd_ifdef {
|
||||
override string toString() { result = "#ifdef " + this.getHead() }
|
||||
|
||||
override string getCanonicalQLClass() { result = "PreprocessorIfdef" }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -13,6 +13,8 @@ class Specifier extends Element, @specifier {
|
||||
result instanceof UnknownDefaultLocation
|
||||
}
|
||||
|
||||
override string getCanonicalQLClass() { result = "Specifier" }
|
||||
|
||||
/** Gets the name of this specifier. */
|
||||
string getName() { specifiers(underlyingElement(this),result) }
|
||||
|
||||
@@ -31,6 +33,7 @@ class FunctionSpecifier extends Specifier {
|
||||
this.hasName("virtual") or
|
||||
this.hasName("explicit")
|
||||
}
|
||||
override string getCanonicalQLClass() { result = "FunctionSpecifier)" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -45,6 +48,7 @@ class StorageClassSpecifier extends Specifier {
|
||||
this.hasName("extern") or
|
||||
this.hasName("mutable")
|
||||
}
|
||||
override string getCanonicalQLClass() { result = "StorageClassSpecifier" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -96,6 +100,7 @@ class AccessSpecifier extends Specifier {
|
||||
baseAccess.getName() >= this.getName() and result = this
|
||||
)
|
||||
}
|
||||
override string getCanonicalQLClass() { result = "AccessSpecifier" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -237,6 +242,7 @@ class FormatAttribute extends GnuAttribute {
|
||||
not val = 0 // indicates a `vprintf` style format function with arguments not directly available.
|
||||
)
|
||||
}
|
||||
override string getCanonicalQLClass() { result = "FormatAttribute" }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -798,6 +798,8 @@ class Decltype extends Type, @decltype {
|
||||
decltypes(underlyingElement(this), _, unresolveElement(result), _)
|
||||
}
|
||||
|
||||
override string getCanonicalQLClass() { result = "Decltype" }
|
||||
|
||||
/**
|
||||
* Whether an extra pair of parentheses around the expression would change the semantics of this decltype.
|
||||
*
|
||||
@@ -1064,6 +1066,8 @@ class GNUVectorType extends DerivedType {
|
||||
*/
|
||||
int getNumElements() { arraysizes(underlyingElement(this),result,_,_) }
|
||||
|
||||
override string getCanonicalQLClass() { result = "GNUVectorType" }
|
||||
|
||||
/**
|
||||
* Gets the size, in bytes, of this vector type.
|
||||
*
|
||||
|
||||
@@ -14,8 +14,6 @@ abstract class NullValue extends Expr
|
||||
class Zero extends NullValue
|
||||
{
|
||||
Zero() { this.(Literal).getValue() = "0" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "Zero" }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -150,6 +150,7 @@ class FieldAccess extends VariableAccess {
|
||||
* so this is equivalent to `(*obj).field`.
|
||||
*/
|
||||
class PointerFieldAccess extends FieldAccess {
|
||||
override string getCanonicalQLClass() { result = "PointerFieldAccess" }
|
||||
PointerFieldAccess() {
|
||||
exists (PointerType t
|
||||
| t = getQualifier().getFullyConverted().getUnspecifiedType() and
|
||||
@@ -164,6 +165,7 @@ class PointerFieldAccess extends FieldAccess {
|
||||
* distinguish whether or not the type of `obj` is a reference type.
|
||||
*/
|
||||
class DotFieldAccess extends FieldAccess {
|
||||
override string getCanonicalQLClass() { result = "DotFieldAccess" }
|
||||
DotFieldAccess() {
|
||||
exists (Class c
|
||||
| c = getQualifier().getFullyConverted().getUnspecifiedType())
|
||||
@@ -175,6 +177,7 @@ class DotFieldAccess extends FieldAccess {
|
||||
* reference to a class/struct/union.
|
||||
*/
|
||||
class ReferenceFieldAccess extends DotFieldAccess {
|
||||
override string getCanonicalQLClass() { result = "ReferenceFieldAccess" }
|
||||
ReferenceFieldAccess() {
|
||||
exprHasReferenceConversion(this.getQualifier())
|
||||
}
|
||||
@@ -185,6 +188,7 @@ class ReferenceFieldAccess extends DotFieldAccess {
|
||||
* class/struct/union (and not a reference).
|
||||
*/
|
||||
class ValueFieldAccess extends DotFieldAccess {
|
||||
override string getCanonicalQLClass() { result = "ValueFieldAccess" }
|
||||
ValueFieldAccess() {
|
||||
not exprHasReferenceConversion(this.getQualifier())
|
||||
}
|
||||
@@ -226,6 +230,7 @@ private predicate exprHasReferenceConversion(Expr e) {
|
||||
* `ImplicitThisFieldAccess`.
|
||||
*/
|
||||
class ImplicitThisFieldAccess extends FieldAccess {
|
||||
override string getCanonicalQLClass() { result = "ImplicitThisFieldAccess" }
|
||||
ImplicitThisFieldAccess() {
|
||||
not exists (this.getQualifier())
|
||||
}
|
||||
@@ -277,6 +282,7 @@ class ParamAccessForType extends Expr, @param_ref {
|
||||
* works on types directly rather than variables, expressions etc.
|
||||
*/
|
||||
class TypeName extends Expr, @type_operand {
|
||||
override string getCanonicalQLClass() { result = "TypeName" }
|
||||
override string toString() {
|
||||
result = this.getType().getName()
|
||||
}
|
||||
|
||||
@@ -74,6 +74,8 @@ class BuiltInIntAddr extends BuiltInOperation, @intaddrexpr {
|
||||
*/
|
||||
class BuiltInOperationHasAssign extends BuiltInOperation, @hasassignexpr {
|
||||
override string toString() { result = "__has_assign" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationHasAssign" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -81,6 +83,8 @@ class BuiltInOperationHasAssign extends BuiltInOperation, @hasassignexpr {
|
||||
*/
|
||||
class BuiltInOperationHasCopy extends BuiltInOperation, @hascopyexpr {
|
||||
override string toString() { result = "__has_copy" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationHasCopy" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -88,6 +92,8 @@ class BuiltInOperationHasCopy extends BuiltInOperation, @hascopyexpr {
|
||||
*/
|
||||
class BuiltInOperationHasNoThrowAssign extends BuiltInOperation, @hasnothrowassign {
|
||||
override string toString() { result = "__has_nothrow_assign" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationHasNoThrowAssign" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -95,6 +101,8 @@ class BuiltInOperationHasNoThrowAssign extends BuiltInOperation, @hasnothrowassi
|
||||
*/
|
||||
class BuiltInOperationHasNoThrowConstructor extends BuiltInOperation, @hasnothrowconstr {
|
||||
override string toString() { result = "__has_nothrow_constructor" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationHasNoThrowConstructor" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -102,6 +110,8 @@ class BuiltInOperationHasNoThrowConstructor extends BuiltInOperation, @hasnothro
|
||||
*/
|
||||
class BuiltInOperationHasNoThrowCopy extends BuiltInOperation, @hasnothrowcopy {
|
||||
override string toString() { result = "__has_nothrow_copy" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationHasNoThrowCopy" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -109,6 +119,8 @@ class BuiltInOperationHasNoThrowCopy extends BuiltInOperation, @hasnothrowcopy {
|
||||
*/
|
||||
class BuiltInOperationHasTrivialAssign extends BuiltInOperation, @hastrivialassign {
|
||||
override string toString() { result = "__has_trivial_assign" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationHasTrivialAssign" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -116,6 +128,8 @@ class BuiltInOperationHasTrivialAssign extends BuiltInOperation, @hastrivialassi
|
||||
*/
|
||||
class BuiltInOperationHasTrivialConstructor extends BuiltInOperation, @hastrivialconstr {
|
||||
override string toString() { result = "__has_trivial_constructor" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationHasTrivialConstructor" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -123,6 +137,8 @@ class BuiltInOperationHasTrivialConstructor extends BuiltInOperation, @hastrivia
|
||||
*/
|
||||
class BuiltInOperationHasTrivialCopy extends BuiltInOperation, @hastrivialcopy {
|
||||
override string toString() { result = "__has_trivial_copy" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationHasTrivialCopy" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -130,6 +146,8 @@ class BuiltInOperationHasTrivialCopy extends BuiltInOperation, @hastrivialcopy {
|
||||
*/
|
||||
class BuiltInOperationHasTrivialDestructor extends BuiltInOperation, @hastrivialdestructor {
|
||||
override string toString() { result = "__has_trivial_destructor" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationHasTrivialDestructor" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -137,6 +155,8 @@ class BuiltInOperationHasTrivialDestructor extends BuiltInOperation, @hastrivial
|
||||
*/
|
||||
class BuiltInOperationHasUserDestructor extends BuiltInOperation, @hasuserdestr {
|
||||
override string toString() { result = "__has_user_destructor" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationHasUserDestructor" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -144,6 +164,8 @@ class BuiltInOperationHasUserDestructor extends BuiltInOperation, @hasuserdestr
|
||||
*/
|
||||
class BuiltInOperationHasVirtualDestructor extends BuiltInOperation, @hasvirtualdestr {
|
||||
override string toString() { result = "__has_virtual_destructor" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationHasVirtualDestructor" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -151,6 +173,8 @@ class BuiltInOperationHasVirtualDestructor extends BuiltInOperation, @hasvirtual
|
||||
*/
|
||||
class BuiltInOperationIsAbstract extends BuiltInOperation, @isabstractexpr {
|
||||
override string toString() { result = "__is_abstract" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsAbstract" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -158,6 +182,8 @@ class BuiltInOperationIsAbstract extends BuiltInOperation, @isabstractexpr {
|
||||
*/
|
||||
class BuiltInOperationIsBaseOf extends BuiltInOperation, @isbaseofexpr {
|
||||
override string toString() { result = "__is_base_of" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsBaseOf" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -165,6 +191,8 @@ class BuiltInOperationIsBaseOf extends BuiltInOperation, @isbaseofexpr {
|
||||
*/
|
||||
class BuiltInOperationIsClass extends BuiltInOperation, @isclassexpr {
|
||||
override string toString() { result = "__is_class" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsClass" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -172,6 +200,8 @@ class BuiltInOperationIsClass extends BuiltInOperation, @isclassexpr {
|
||||
*/
|
||||
class BuiltInOperationIsConvertibleTo extends BuiltInOperation, @isconvtoexpr {
|
||||
override string toString() { result = "__is_convertible_to" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsConvertibleTo" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -179,6 +209,8 @@ class BuiltInOperationIsConvertibleTo extends BuiltInOperation, @isconvtoexpr {
|
||||
*/
|
||||
class BuiltInOperationIsEmpty extends BuiltInOperation, @isemptyexpr {
|
||||
override string toString() { result = "__is_empty" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsEmpty" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -186,6 +218,8 @@ class BuiltInOperationIsEmpty extends BuiltInOperation, @isemptyexpr {
|
||||
*/
|
||||
class BuiltInOperationIsEnum extends BuiltInOperation, @isenumexpr {
|
||||
override string toString() { result = "__is_enum" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsEnum" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -193,6 +227,8 @@ class BuiltInOperationIsEnum extends BuiltInOperation, @isenumexpr {
|
||||
*/
|
||||
class BuiltInOperationIsPod extends BuiltInOperation, @ispodexpr {
|
||||
override string toString() { result = "__is_pod" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsPod" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -200,6 +236,8 @@ class BuiltInOperationIsPod extends BuiltInOperation, @ispodexpr {
|
||||
*/
|
||||
class BuiltInOperationIsPolymorphic extends BuiltInOperation, @ispolyexpr {
|
||||
override string toString() { result = "__is_polymorphic" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsPolymorphic" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -207,6 +245,8 @@ class BuiltInOperationIsPolymorphic extends BuiltInOperation, @ispolyexpr {
|
||||
*/
|
||||
class BuiltInOperationIsUnion extends BuiltInOperation, @isunionexpr {
|
||||
override string toString() { result = "__is_union" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsUnion" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -226,6 +266,8 @@ class BuiltInOperationBuiltInTypesCompatibleP extends BuiltInOperation, @typesco
|
||||
*/
|
||||
class BuiltInOperationBuiltInShuffleVector extends BuiltInOperation, @builtinshufflevector {
|
||||
override string toString() { result = "__builtin_shufflevector" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationBuiltInShuffleVector" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -233,6 +275,8 @@ class BuiltInOperationBuiltInShuffleVector extends BuiltInOperation, @builtinshu
|
||||
*/
|
||||
class BuiltInOperationBuiltInConvertVector extends BuiltInOperation, @builtinconvertvector {
|
||||
override string toString() { result = "__builtin_convertvector" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationBuiltInConvertVector" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -256,6 +300,8 @@ class BuiltInOperationBuiltInAddressOf extends UnaryOperation, BuiltInOperation,
|
||||
*/
|
||||
class BuiltInOperationIsTriviallyConstructible extends BuiltInOperation, @istriviallyconstructibleexpr {
|
||||
override string toString() { result = "__is_trivially_constructible" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsTriviallyConstructible" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -263,6 +309,8 @@ class BuiltInOperationIsTriviallyConstructible extends BuiltInOperation, @istriv
|
||||
*/
|
||||
class BuiltInOperationIsDestructible extends BuiltInOperation, @isdestructibleexpr {
|
||||
override string toString() { result = "__is_destructible" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsDestructible" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -270,6 +318,8 @@ class BuiltInOperationIsDestructible extends BuiltInOperation, @isdestructibleex
|
||||
*/
|
||||
class BuiltInOperationIsNothrowDestructible extends BuiltInOperation, @isnothrowdestructibleexpr {
|
||||
override string toString() { result = "__is_nothrow_destructible" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsNothrowDestructible" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -277,6 +327,8 @@ class BuiltInOperationIsNothrowDestructible extends BuiltInOperation, @isnothrow
|
||||
*/
|
||||
class BuiltInOperationIsTriviallyDestructible extends BuiltInOperation, @istriviallydestructibleexpr {
|
||||
override string toString() { result = "__is_trivially_destructible" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsTriviallyDestructible" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -284,6 +336,8 @@ class BuiltInOperationIsTriviallyDestructible extends BuiltInOperation, @istrivi
|
||||
*/
|
||||
class BuiltInOperationIsTriviallyAssignable extends BuiltInOperation, @istriviallyassignableexpr {
|
||||
override string toString() { result = "__is_trivially_assignable" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsTriviallyAssignable" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -291,6 +345,8 @@ class BuiltInOperationIsTriviallyAssignable extends BuiltInOperation, @istrivial
|
||||
*/
|
||||
class BuiltInOperationIsNothrowAssignable extends BuiltInOperation, @isnothrowassignableexpr {
|
||||
override string toString() { result = "__is_nothrow_assignable" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsNothrowAssignable" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -298,6 +354,8 @@ class BuiltInOperationIsNothrowAssignable extends BuiltInOperation, @isnothrowas
|
||||
*/
|
||||
class BuiltInOperationIsStandardLayout extends BuiltInOperation, @isstandardlayoutexpr {
|
||||
override string toString() { result = "__is_standard_layout" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsStandardLayout" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -305,6 +363,8 @@ class BuiltInOperationIsStandardLayout extends BuiltInOperation, @isstandardlayo
|
||||
*/
|
||||
class BuiltInOperationIsTriviallyCopyable extends BuiltInOperation, @istriviallycopyableexpr {
|
||||
override string toString() { result = "__is_trivially_copyable" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsTriviallyCopyable" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -312,6 +372,8 @@ class BuiltInOperationIsTriviallyCopyable extends BuiltInOperation, @istrivially
|
||||
*/
|
||||
class BuiltInOperationIsLiteralType extends BuiltInOperation, @isliteraltypeexpr {
|
||||
override string toString() { result = "__is_literal_type" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsLiteralType" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -319,6 +381,8 @@ class BuiltInOperationIsLiteralType extends BuiltInOperation, @isliteraltypeexpr
|
||||
*/
|
||||
class BuiltInOperationHasTrivialMoveConstructor extends BuiltInOperation, @hastrivialmoveconstructorexpr {
|
||||
override string toString() { result = "__has_trivial_move_constructor" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationHasTrivialMoveConstructor" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -326,6 +390,8 @@ class BuiltInOperationHasTrivialMoveConstructor extends BuiltInOperation, @hastr
|
||||
*/
|
||||
class BuiltInOperationHasTrivialMoveAssign extends BuiltInOperation, @hastrivialmoveassignexpr {
|
||||
override string toString() { result = "__has_trivial_move_assign" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationHasTrivialMoveAssign" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -333,6 +399,8 @@ class BuiltInOperationHasTrivialMoveAssign extends BuiltInOperation, @hastrivial
|
||||
*/
|
||||
class BuiltInOperationHasNothrowMoveAssign extends BuiltInOperation, @hasnothrowmoveassignexpr {
|
||||
override string toString() { result = "__has_nothrow_move_assign" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationHasNothrowMoveAssign" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -340,6 +408,8 @@ class BuiltInOperationHasNothrowMoveAssign extends BuiltInOperation, @hasnothrow
|
||||
*/
|
||||
class BuiltInOperationIsConstructible extends BuiltInOperation, @isconstructibleexpr {
|
||||
override string toString() { result = "__is_constructible" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsConstructible" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -347,6 +417,8 @@ class BuiltInOperationIsConstructible extends BuiltInOperation, @isconstructible
|
||||
*/
|
||||
class BuiltInOperationIsNothrowConstructible extends BuiltInOperation, @isnothrowconstructibleexpr {
|
||||
override string toString() { result = "__is_nothrow_constructible" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsNothrowConstructible" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -354,6 +426,8 @@ class BuiltInOperationIsNothrowConstructible extends BuiltInOperation, @isnothro
|
||||
*/
|
||||
class BuiltInOperationHasFinalizer extends BuiltInOperation, @hasfinalizerexpr {
|
||||
override string toString() { result = "__has_finalizer" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationHasFinalizer" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -361,6 +435,8 @@ class BuiltInOperationHasFinalizer extends BuiltInOperation, @hasfinalizerexpr {
|
||||
*/
|
||||
class BuiltInOperationIsDelegate extends BuiltInOperation, @isdelegateexpr {
|
||||
override string toString() { result = "__is_delegate" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsDelegate" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -368,6 +444,8 @@ class BuiltInOperationIsDelegate extends BuiltInOperation, @isdelegateexpr {
|
||||
*/
|
||||
class BuiltInOperationIsInterfaceClass extends BuiltInOperation, @isinterfaceclassexpr {
|
||||
override string toString() { result = "__is_interface_class" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsInterfaceClass" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -375,6 +453,8 @@ class BuiltInOperationIsInterfaceClass extends BuiltInOperation, @isinterfacecla
|
||||
*/
|
||||
class BuiltInOperationIsRefArray extends BuiltInOperation, @isrefarrayexpr {
|
||||
override string toString() { result = "__is_ref_array" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsRefArray" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -382,6 +462,8 @@ class BuiltInOperationIsRefArray extends BuiltInOperation, @isrefarrayexpr {
|
||||
*/
|
||||
class BuiltInOperationIsRefClass extends BuiltInOperation, @isrefclassexpr {
|
||||
override string toString() { result = "__is_ref_class" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsRefClass" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -389,6 +471,8 @@ class BuiltInOperationIsRefClass extends BuiltInOperation, @isrefclassexpr {
|
||||
*/
|
||||
class BuiltInOperationIsSealed extends BuiltInOperation, @issealedexpr {
|
||||
override string toString() { result = "__is_sealed" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsSealed" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -396,6 +480,8 @@ class BuiltInOperationIsSealed extends BuiltInOperation, @issealedexpr {
|
||||
*/
|
||||
class BuiltInOperationIsSimpleValueClass extends BuiltInOperation, @issimplevalueclassexpr {
|
||||
override string toString() { result = "__is_simple_value_class" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsSimpleValueClass" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -403,6 +489,8 @@ class BuiltInOperationIsSimpleValueClass extends BuiltInOperation, @issimplevalu
|
||||
*/
|
||||
class BuiltInOperationIsValueClass extends BuiltInOperation, @isvalueclassexpr {
|
||||
override string toString() { result = "__is_value_class" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsValueClass" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -410,6 +498,8 @@ class BuiltInOperationIsValueClass extends BuiltInOperation, @isvalueclassexpr {
|
||||
*/
|
||||
class BuiltInOperationIsFinal extends BuiltInOperation, @isfinalexpr {
|
||||
override string toString() { result = "__is_final" }
|
||||
|
||||
override string getCanonicalQLClass() { result = "BuiltInOperationIsFinal" }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -456,6 +456,7 @@ class VacuousDestructorCall extends Expr, @vacuous_destructor_call {
|
||||
* of a constructor's explicit initializer list or implicit actions.
|
||||
*/
|
||||
class ConstructorInit extends Expr, @ctorinit {
|
||||
override string getCanonicalQLClass() { result = "ConstructorInit" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -463,6 +464,7 @@ class ConstructorInit extends Expr, @ctorinit {
|
||||
* initializer list or compiler-generated actions.
|
||||
*/
|
||||
class ConstructorBaseInit extends ConstructorInit, ConstructorCall {
|
||||
override string getCanonicalQLClass() { result = "ConstructorBaseInit" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -470,6 +472,7 @@ class ConstructorBaseInit extends ConstructorInit, ConstructorCall {
|
||||
* constructor's initializer list or compiler-generated actions.
|
||||
*/
|
||||
class ConstructorDirectInit extends ConstructorBaseInit, @ctordirectinit {
|
||||
override string getCanonicalQLClass() { result = "ConstructorDirectInit" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -480,6 +483,7 @@ class ConstructorDirectInit extends ConstructorBaseInit, @ctordirectinit {
|
||||
* call won't be performed.
|
||||
*/
|
||||
class ConstructorVirtualInit extends ConstructorBaseInit, @ctorvirtualinit {
|
||||
override string getCanonicalQLClass() { result = "ConstructorVirtualInit" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -487,6 +491,7 @@ class ConstructorVirtualInit extends ConstructorBaseInit, @ctorvirtualinit {
|
||||
* initializer list, which delegates object construction (C++11 only).
|
||||
*/
|
||||
class ConstructorDelegationInit extends ConstructorBaseInit, @ctordelegatinginit {
|
||||
override string getCanonicalQLClass() { result = "ConstructorDelegationInit" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -524,6 +529,7 @@ class ConstructorFieldInit extends ConstructorInit, @ctorfieldinit {
|
||||
* compiler-generated actions.
|
||||
*/
|
||||
class DestructorDestruction extends Expr, @dtordestruct {
|
||||
override string getCanonicalQLClass() { result = "DestructorDestruction" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -531,6 +537,7 @@ class DestructorDestruction extends Expr, @dtordestruct {
|
||||
* compiler-generated actions.
|
||||
*/
|
||||
class DestructorBaseDestruction extends DestructorCall, DestructorDestruction {
|
||||
override string getCanonicalQLClass() { result = "DestructorBaseDestruction" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -538,6 +545,7 @@ class DestructorBaseDestruction extends DestructorCall, DestructorDestruction {
|
||||
* destructor's compiler-generated actions.
|
||||
*/
|
||||
class DestructorDirectDestruction extends DestructorBaseDestruction, @dtordirectdestruct {
|
||||
override string getCanonicalQLClass() { result = "DestructorDirectDestruction" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -548,6 +556,7 @@ class DestructorDirectDestruction extends DestructorBaseDestruction, @dtordirect
|
||||
* in the corresponding constructor, then this call won't be performed.
|
||||
*/
|
||||
class DestructorVirtualDestruction extends DestructorBaseDestruction, @dtorvirtualdestruct {
|
||||
override string getCanonicalQLClass() { result = "DestructorVirtualDestruction" }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -14,7 +14,7 @@ class Literal extends Expr, @literal {
|
||||
}
|
||||
|
||||
override string getCanonicalQLClass() { result = "Literal" }
|
||||
|
||||
|
||||
override predicate mayBeImpure() {
|
||||
none()
|
||||
}
|
||||
@@ -41,6 +41,8 @@ class LabelLiteral extends Literal {
|
||||
jumpinfo(underlyingElement(this),_,_)
|
||||
}
|
||||
|
||||
override string getCanonicalQLClass() { result = "LabelLiteral" }
|
||||
|
||||
/** Gets the corresponding label statement. */
|
||||
LabelStmt getLabel() {
|
||||
jumpinfo(underlyingElement(this),_,unresolveElement(result))
|
||||
@@ -123,7 +125,7 @@ class StringLiteral extends TextLiteral
|
||||
}
|
||||
|
||||
override string getCanonicalQLClass() { result = "StringLiteral" }
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -133,7 +135,7 @@ class OctalLiteral extends Literal {
|
||||
OctalLiteral() {
|
||||
super.getValueText().regexpMatch("\\s*0[0-7]+[uUlL]*\\s*")
|
||||
}
|
||||
|
||||
|
||||
override string getCanonicalQLClass() { result = "OctalLiteral" }
|
||||
}
|
||||
|
||||
@@ -144,7 +146,7 @@ class HexLiteral extends Literal {
|
||||
HexLiteral() {
|
||||
super.getValueText().regexpMatch("\\s*0[xX][0-9a-fA-F]+[uUlL]*\\s*")
|
||||
}
|
||||
|
||||
|
||||
override string getCanonicalQLClass() { result = "HexLiteral" }
|
||||
}
|
||||
|
||||
@@ -154,6 +156,8 @@ class HexLiteral extends Literal {
|
||||
class AggregateLiteral extends Expr, @aggregateliteral {
|
||||
// if this is turned into a Literal we need to change mayBeImpure
|
||||
|
||||
override string getCanonicalQLClass() { result = "AggregateLiteral" }
|
||||
|
||||
/**
|
||||
* DEPRECATED: Use ClassAggregateLiteral.getFieldExpr() instead.
|
||||
*
|
||||
|
||||
@@ -602,7 +602,7 @@ class BreakStmt extends JumpStmt, @stmt_break {
|
||||
|
||||
override predicate mayBeImpure() { none() }
|
||||
override predicate mayBeGloballyImpure() { none() }
|
||||
|
||||
|
||||
/**
|
||||
* Gets the loop or switch statement that this break statement will exit.
|
||||
*/
|
||||
@@ -1149,11 +1149,11 @@ class SwitchCase extends Stmt, @stmt_switch_case {
|
||||
|
||||
/**
|
||||
* DEPRECATED: use `SwitchCase.getAStmt` or `ControlFlowNode.getASuccessor`
|
||||
* rather than this predicate.
|
||||
* rather than this predicate.
|
||||
*
|
||||
* Gets the `Block` statement immediately following this 'switch case'
|
||||
* statement, if any.
|
||||
*
|
||||
*
|
||||
* For example, for
|
||||
* ```
|
||||
* switch (i) {
|
||||
@@ -1845,6 +1845,8 @@ class MicrosoftTryExceptStmt extends MicrosoftTryStmt {
|
||||
|
||||
/** Gets the `__except` statement (usually a `Block`). */
|
||||
Stmt getExcept() { result = getChild(2) }
|
||||
|
||||
override string getCanonicalQLClass() { result = "MicrosoftTryExceptStmt" }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1860,6 +1862,8 @@ class MicrosoftTryFinallyStmt extends MicrosoftTryStmt {
|
||||
|
||||
/** Gets the `__finally` statement (usually a `Block`). */
|
||||
Stmt getFinally() { result = getChild(1) }
|
||||
|
||||
override string getCanonicalQLClass() { result = "MicrosoftTryFinallyStmt" }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user