mirror of
https://github.com/github/codeql.git
synced 2026-04-26 17:25:19 +02:00
Merge pull request #6377 from sashabu/sashabu/virtual
C++: Allow querying virtual, override, and final declaration specifiers.
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
lgtm,codescanning
|
||||
* Virtual function specifiers are now accessible via the new predicates on `Function` (`.isDeclaredVirtual`, `.isOverride`, and `.isFinal`).
|
||||
@@ -82,9 +82,23 @@ class Function extends Declaration, ControlFlowNode, AccessHolder, @function {
|
||||
/** Holds if this function is inline. */
|
||||
predicate isInline() { this.hasSpecifier("inline") }
|
||||
|
||||
/** Holds if this function is virtual. */
|
||||
/**
|
||||
* Holds if this function is virtual.
|
||||
*
|
||||
* Unlike `isDeclaredVirtual()`, `isVirtual()` holds even if the function
|
||||
* is not explicitly declared with the `virtual` specifier.
|
||||
*/
|
||||
predicate isVirtual() { this.hasSpecifier("virtual") }
|
||||
|
||||
/** Holds if this function is declared with the `virtual` specifier. */
|
||||
predicate isDeclaredVirtual() { this.hasSpecifier("declared_virtual") }
|
||||
|
||||
/** Holds if this function is declared with the `override` specifier. */
|
||||
predicate isOverride() { this.hasSpecifier("override") }
|
||||
|
||||
/** Holds if this function is declared with the `final` specifier. */
|
||||
predicate isFinal() { this.hasSpecifier("final") }
|
||||
|
||||
/**
|
||||
* Holds if this function is deleted.
|
||||
* This may be because it was explicitly deleted with an `= delete`
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
| file://:0:0:0:0 | declaration of 1st parameter |
|
||||
| file://:0:0:0:0 | declared_constexpr |
|
||||
| file://:0:0:0:0 | declared_constinit |
|
||||
| file://:0:0:0:0 | declared_virtual |
|
||||
| file://:0:0:0:0 | decltype(nullptr) |
|
||||
| file://:0:0:0:0 | definition of fp_offset |
|
||||
| file://:0:0:0:0 | definition of gp_offset |
|
||||
@@ -91,6 +92,7 @@
|
||||
| file://:0:0:0:0 | explicit |
|
||||
| file://:0:0:0:0 | extern |
|
||||
| file://:0:0:0:0 | far |
|
||||
| file://:0:0:0:0 | final |
|
||||
| file://:0:0:0:0 | float |
|
||||
| file://:0:0:0:0 | forceinline |
|
||||
| file://:0:0:0:0 | fp_offset |
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
| file://:0:0:0:0 | const __va_list_tag & |
|
||||
| file://:0:0:0:0 | declared_constexpr |
|
||||
| file://:0:0:0:0 | declared_constinit |
|
||||
| file://:0:0:0:0 | declared_virtual |
|
||||
| file://:0:0:0:0 | decltype(nullptr) |
|
||||
| file://:0:0:0:0 | definition of <error> |
|
||||
| file://:0:0:0:0 | definition of fp_offset |
|
||||
@@ -62,6 +63,7 @@
|
||||
| file://:0:0:0:0 | explicit |
|
||||
| file://:0:0:0:0 | extern |
|
||||
| file://:0:0:0:0 | far |
|
||||
| file://:0:0:0:0 | final |
|
||||
| file://:0:0:0:0 | float |
|
||||
| file://:0:0:0:0 | forceinline |
|
||||
| file://:0:0:0:0 | fp_offset |
|
||||
|
||||
@@ -43,10 +43,12 @@
|
||||
| Function | specifiers2pp.cpp:10:18:10:24 | MyClass | MyClass | public |
|
||||
| Function | specifiers2pp.cpp:12:14:12:22 | publicFun | publicFun | inline |
|
||||
| Function | specifiers2pp.cpp:12:14:12:22 | publicFun | publicFun | public |
|
||||
| Function | specifiers2pp.cpp:13:21:13:26 | getInt | getInt | declared_virtual |
|
||||
| Function | specifiers2pp.cpp:13:21:13:26 | getInt | getInt | extern |
|
||||
| Function | specifiers2pp.cpp:13:21:13:26 | getInt | getInt | public |
|
||||
| Function | specifiers2pp.cpp:13:21:13:26 | getInt | getInt | pure |
|
||||
| Function | specifiers2pp.cpp:13:21:13:26 | getInt | getInt | virtual |
|
||||
| Function | specifiers2pp.cpp:14:21:14:21 | f | f | declared_virtual |
|
||||
| Function | specifiers2pp.cpp:14:21:14:21 | f | f | extern |
|
||||
| Function | specifiers2pp.cpp:14:21:14:21 | f | f | public |
|
||||
| Function | specifiers2pp.cpp:14:21:14:21 | f | f | virtual |
|
||||
@@ -71,6 +73,7 @@
|
||||
| Function | specifiers2pp.cpp:24:7:24:7 | operator= | operator= | inline |
|
||||
| Function | specifiers2pp.cpp:24:7:24:7 | operator= | operator= | public |
|
||||
| Function | specifiers2pp.cpp:24:7:24:7 | operator= | operator= | public |
|
||||
| Function | specifiers2pp.cpp:26:21:26:21 | f | f | declared_virtual |
|
||||
| Function | specifiers2pp.cpp:26:21:26:21 | f | f | extern |
|
||||
| Function | specifiers2pp.cpp:26:21:26:21 | f | f | override |
|
||||
| Function | specifiers2pp.cpp:26:21:26:21 | f | f | public |
|
||||
|
||||
@@ -109,6 +109,7 @@
|
||||
| file://:0:0:0:0 | declaration of 1st parameter |
|
||||
| file://:0:0:0:0 | declared_constexpr |
|
||||
| file://:0:0:0:0 | declared_constinit |
|
||||
| file://:0:0:0:0 | declared_virtual |
|
||||
| file://:0:0:0:0 | decltype(nullptr) |
|
||||
| file://:0:0:0:0 | definition of fp_offset |
|
||||
| file://:0:0:0:0 | definition of gp_offset |
|
||||
@@ -121,6 +122,7 @@
|
||||
| file://:0:0:0:0 | explicit |
|
||||
| file://:0:0:0:0 | extern |
|
||||
| file://:0:0:0:0 | far |
|
||||
| file://:0:0:0:0 | final |
|
||||
| file://:0:0:0:0 | float |
|
||||
| file://:0:0:0:0 | forceinline |
|
||||
| file://:0:0:0:0 | fp_offset |
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
| file://:0:0:0:0 | const | Other |
|
||||
| file://:0:0:0:0 | declared_constexpr | Other |
|
||||
| file://:0:0:0:0 | declared_constinit | Other |
|
||||
| file://:0:0:0:0 | declared_virtual | Other |
|
||||
| file://:0:0:0:0 | decltype(nullptr) | Other |
|
||||
| file://:0:0:0:0 | definition of fp_offset | Other |
|
||||
| file://:0:0:0:0 | definition of gp_offset | Other |
|
||||
@@ -53,6 +54,7 @@
|
||||
| file://:0:0:0:0 | explicit | Other |
|
||||
| file://:0:0:0:0 | extern | Other |
|
||||
| file://:0:0:0:0 | far | Other |
|
||||
| file://:0:0:0:0 | final | Other |
|
||||
| file://:0:0:0:0 | float | Other |
|
||||
| file://:0:0:0:0 | forceinline | Other |
|
||||
| file://:0:0:0:0 | fp_offset | Other |
|
||||
|
||||
Reference in New Issue
Block a user