mirror of
https://github.com/github/codeql.git
synced 2025-12-20 10:46:30 +01:00
C++: Remove abstract keyword from BuiltInOperation
This commit is contained in:
@@ -4,7 +4,7 @@ import semmle.code.cpp.exprs.Expr
|
|||||||
* A C/C++ builtin operation. This is the root QL class encompassing
|
* A C/C++ builtin operation. This is the root QL class encompassing
|
||||||
* built-in functionality.
|
* built-in functionality.
|
||||||
*/
|
*/
|
||||||
abstract class BuiltInOperation extends Expr {
|
class BuiltInOperation extends Expr, @buildin_op {
|
||||||
override string getCanonicalQLClass() { result = "BuiltInOperation" }
|
override string getCanonicalQLClass() { result = "BuiltInOperation" }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -12,7 +12,7 @@ abstract class BuiltInOperation extends Expr {
|
|||||||
* A C/C++ built-in operation that is used to support functions with variable numbers of arguments.
|
* A C/C++ built-in operation that is used to support functions with variable numbers of arguments.
|
||||||
* This includes `va_start`, `va_end`, `va_copy`, and `va_arg`.
|
* This includes `va_start`, `va_end`, `va_copy`, and `va_arg`.
|
||||||
*/
|
*/
|
||||||
class VarArgsExpr extends BuiltInOperation {
|
class VarArgsExpr extends BuiltInOperation, @var_args_expr {
|
||||||
VarArgsExpr() {
|
VarArgsExpr() {
|
||||||
this instanceof BuiltInVarArgsStart
|
this instanceof BuiltInVarArgsStart
|
||||||
or
|
or
|
||||||
|
|||||||
@@ -1641,6 +1641,67 @@ case @expr.kind of
|
|||||||
| 326 = @spaceshipexpr
|
| 326 = @spaceshipexpr
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@var_args_expr = @vastartexpr
|
||||||
|
| @vaendexpr
|
||||||
|
| @vaargexpr
|
||||||
|
| @vacopyexpr
|
||||||
|
;
|
||||||
|
|
||||||
|
@buildin_op = @var_args_expr
|
||||||
|
| @noopexpr
|
||||||
|
| @offsetofexpr
|
||||||
|
| @intaddrexpr
|
||||||
|
| @hasassignexpr
|
||||||
|
| @hascopyexpr
|
||||||
|
| @hasnothrowassign
|
||||||
|
| @hasnothrowconstr
|
||||||
|
| @hasnothrowcopy
|
||||||
|
| @hastrivialassign
|
||||||
|
| @hastrivialconstr
|
||||||
|
| @hastrivialcopy
|
||||||
|
| @hastrivialdestructor
|
||||||
|
| @hasuserdestr
|
||||||
|
| @hasvirtualdestr
|
||||||
|
| @isabstractexpr
|
||||||
|
| @isbaseofexpr
|
||||||
|
| @isclassexpr
|
||||||
|
| @isconvtoexpr
|
||||||
|
| @isemptyexpr
|
||||||
|
| @isenumexpr
|
||||||
|
| @ispodexpr
|
||||||
|
| @ispolyexpr
|
||||||
|
| @isunionexpr
|
||||||
|
| @typescompexpr
|
||||||
|
| @builtinshufflevector
|
||||||
|
| @builtinconvertvector
|
||||||
|
| @builtinaddressof
|
||||||
|
| @istriviallyconstructibleexpr
|
||||||
|
| @isdestructibleexpr
|
||||||
|
| @isnothrowdestructibleexpr
|
||||||
|
| @istriviallydestructibleexpr
|
||||||
|
| @istriviallyassignableexpr
|
||||||
|
| @isnothrowassignableexpr
|
||||||
|
| @isstandardlayoutexpr
|
||||||
|
| @istriviallycopyableexpr
|
||||||
|
| @isliteraltypeexpr
|
||||||
|
| @hastrivialmoveconstructorexpr
|
||||||
|
| @hastrivialmoveassignexpr
|
||||||
|
| @hasnothrowmoveassignexpr
|
||||||
|
| @isconstructibleexpr
|
||||||
|
| @isnothrowconstructibleexpr
|
||||||
|
| @hasfinalizerexpr
|
||||||
|
| @isdelegateexpr
|
||||||
|
| @isinterfaceclassexpr
|
||||||
|
| @isrefarrayexpr
|
||||||
|
| @isrefclassexpr
|
||||||
|
| @issealedexpr
|
||||||
|
| @issimplevalueclassexpr
|
||||||
|
| @isvalueclassexpr
|
||||||
|
| @isfinalexpr
|
||||||
|
| @builtinchooseexpr
|
||||||
|
| @builtincomplex
|
||||||
|
;
|
||||||
|
|
||||||
new_allocated_type(
|
new_allocated_type(
|
||||||
unique int expr: @new_expr ref,
|
unique int expr: @new_expr ref,
|
||||||
int type_id: @type ref
|
int type_id: @type ref
|
||||||
|
|||||||
Reference in New Issue
Block a user