зеркало из https://github.com/github/codeql.git
Merge pull request #3378 from matt-gretton-dann/codeql-c-extractor/49-consteval
Add support for C++20's consteval specifier
This commit is contained in:
Коммит
4ce896b856
|
@ -103,6 +103,9 @@ class Function extends Declaration, ControlFlowNode, AccessHolder, @function {
|
|||
|
||||
/**
|
||||
* Holds if this function is declared to be `constexpr`.
|
||||
*
|
||||
* Note that this does not hold if the function has been declared
|
||||
* `consteval`.
|
||||
*/
|
||||
predicate isDeclaredConstexpr() { this.hasSpecifier("declared_constexpr") }
|
||||
|
||||
|
@ -115,9 +118,16 @@ class Function extends Declaration, ControlFlowNode, AccessHolder, @function {
|
|||
* template <typename T> constexpr int g(T x) { return f(x); }
|
||||
* ```
|
||||
* `g<int>` is declared constexpr, but is not constexpr.
|
||||
*
|
||||
* Will also hold if this function is `consteval`.
|
||||
*/
|
||||
predicate isConstexpr() { this.hasSpecifier("is_constexpr") }
|
||||
|
||||
/**
|
||||
* Holds if this function is declared to be `consteval`.
|
||||
*/
|
||||
predicate isConsteval() { this.hasSpecifier("is_consteval") }
|
||||
|
||||
/**
|
||||
* Holds if this function is declared with `__attribute__((naked))` or
|
||||
* `__declspec(naked)`.
|
||||
|
|
|
@ -91,6 +91,7 @@
|
|||
| file://:0:0:0:0 | implicit_int |
|
||||
| file://:0:0:0:0 | inline |
|
||||
| file://:0:0:0:0 | int |
|
||||
| file://:0:0:0:0 | is_consteval |
|
||||
| file://:0:0:0:0 | is_constexpr |
|
||||
| file://:0:0:0:0 | is_thread_local |
|
||||
| file://:0:0:0:0 | long |
|
||||
|
|
|
@ -66,6 +66,7 @@
|
|||
| file://:0:0:0:0 | initializer for <error> |
|
||||
| file://:0:0:0:0 | inline |
|
||||
| file://:0:0:0:0 | int |
|
||||
| file://:0:0:0:0 | is_consteval |
|
||||
| file://:0:0:0:0 | is_constexpr |
|
||||
| file://:0:0:0:0 | is_thread_local |
|
||||
| file://:0:0:0:0 | long |
|
||||
|
|
|
@ -110,6 +110,7 @@
|
|||
| file://:0:0:0:0 | int |
|
||||
| file://:0:0:0:0 | int & |
|
||||
| file://:0:0:0:0 | int * |
|
||||
| file://:0:0:0:0 | is_consteval |
|
||||
| file://:0:0:0:0 | is_constexpr |
|
||||
| file://:0:0:0:0 | is_thread_local |
|
||||
| file://:0:0:0:0 | long |
|
||||
|
|
|
@ -59,6 +59,7 @@
|
|||
| file://:0:0:0:0 | int | Other |
|
||||
| file://:0:0:0:0 | int * | Other |
|
||||
| file://:0:0:0:0 | int[0] | Other |
|
||||
| file://:0:0:0:0 | is_consteval | Other |
|
||||
| file://:0:0:0:0 | is_constexpr | Other |
|
||||
| file://:0:0:0:0 | is_thread_local | Other |
|
||||
| file://:0:0:0:0 | long | Other |
|
||||
|
|
Загрузка…
Ссылка в новой задаче