зеркало из https://github.com/github/codeql.git
Merge pull request #3465 from MathiasVP/remove-abstract-from-access-and-cast
C++: Remove abstract keyword from `Access` and `Cast` classes
This commit is contained in:
Коммит
8a0af0bcac
|
@ -6,9 +6,13 @@ private import semmle.code.cpp.dataflow.EscapesTree
|
|||
/**
|
||||
* A C/C++ access expression. This refers to a function, variable, or enum constant.
|
||||
*/
|
||||
abstract class Access extends Expr, NameQualifiableElement {
|
||||
class Access extends Expr, NameQualifiableElement, @access {
|
||||
// As `@access` is a union type containing `@routineexpr` (which describes function accesses
|
||||
// that are called), we need to exclude function calls.
|
||||
Access() { this instanceof @routineexpr implies not iscall(underlyingElement(this), _) }
|
||||
|
||||
/** Gets the accessed function, variable, or enum constant. */
|
||||
abstract Declaration getTarget();
|
||||
Declaration getTarget() { none() } // overridden in subclasses
|
||||
|
||||
override predicate mayBeImpure() { none() }
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ private import semmle.code.cpp.internal.ResolveClass
|
|||
* Instances of this class are not present in the main AST which is navigated by parent/child links. Instead,
|
||||
* instances of this class are attached to nodes in the main AST via special conversion links.
|
||||
*/
|
||||
abstract class Conversion extends Expr {
|
||||
class Conversion extends Expr, @conversion {
|
||||
/** Gets the expression being converted. */
|
||||
Expr getExpr() { result.getConversion() = this }
|
||||
|
||||
|
|
|
@ -1143,6 +1143,13 @@ conversionkinds(
|
|||
int kind: int ref
|
||||
);
|
||||
|
||||
@conversion = @cast
|
||||
| @array_to_pointer
|
||||
| @parexpr
|
||||
| @reference_to
|
||||
| @ref_indirect
|
||||
;
|
||||
|
||||
/*
|
||||
case @funbindexpr.kind of
|
||||
0 = @normal_call // a normal call
|
||||
|
@ -1800,6 +1807,8 @@ lambda_capture(
|
|||
@addressable = @function | @variable ;
|
||||
@accessible = @addressable | @enumconstant ;
|
||||
|
||||
@access = @varaccess | @routineexpr ;
|
||||
|
||||
fold(
|
||||
int expr: @foldexpr ref,
|
||||
string operator: string ref,
|
||||
|
|
|
@ -1524,7 +1524,7 @@
|
|||
</e>
|
||||
<e>
|
||||
<k>seconds</k>
|
||||
<v>12697</v>
|
||||
<v>12094</v>
|
||||
</e>
|
||||
</columnsizes>
|
||||
<dependencies>
|
||||
|
@ -1570,17 +1570,17 @@
|
|||
<b>
|
||||
<a>2</a>
|
||||
<b>3</b>
|
||||
<v>21</v>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>3</a>
|
||||
<b>4</b>
|
||||
<v>2478</v>
|
||||
<v>2675</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>4</a>
|
||||
<b>5</b>
|
||||
<v>7028</v>
|
||||
<v>6842</v>
|
||||
</b>
|
||||
</bs>
|
||||
</hist>
|
||||
|
@ -1626,8 +1626,8 @@
|
|||
<budget>12</budget>
|
||||
<bs>
|
||||
<b>
|
||||
<a>1158</a>
|
||||
<b>1159</b>
|
||||
<a>1103</a>
|
||||
<b>1104</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
</bs>
|
||||
|
@ -1679,18 +1679,18 @@
|
|||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>14</a>
|
||||
<b>15</b>
|
||||
<a>13</a>
|
||||
<b>14</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>565</a>
|
||||
<b>566</b>
|
||||
<a>579</a>
|
||||
<b>580</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>693</a>
|
||||
<b>694</b>
|
||||
<a>670</a>
|
||||
<b>671</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
</bs>
|
||||
|
@ -1707,22 +1707,22 @@
|
|||
<b>
|
||||
<a>1</a>
|
||||
<b>2</b>
|
||||
<v>8859</v>
|
||||
<v>7949</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>2</a>
|
||||
<b>3</b>
|
||||
<v>2313</v>
|
||||
<v>2401</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>3</a>
|
||||
<b>5</b>
|
||||
<v>1107</v>
|
||||
<b>4</b>
|
||||
<v>932</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>5</a>
|
||||
<b>614</b>
|
||||
<v>416</v>
|
||||
<a>4</a>
|
||||
<b>627</b>
|
||||
<v>811</v>
|
||||
</b>
|
||||
</bs>
|
||||
</hist>
|
||||
|
@ -1738,7 +1738,7 @@
|
|||
<b>
|
||||
<a>1</a>
|
||||
<b>2</b>
|
||||
<v>12697</v>
|
||||
<v>12094</v>
|
||||
</b>
|
||||
</bs>
|
||||
</hist>
|
||||
|
@ -1754,17 +1754,17 @@
|
|||
<b>
|
||||
<a>1</a>
|
||||
<b>2</b>
|
||||
<v>11403</v>
|
||||
<v>10285</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>2</a>
|
||||
<b>3</b>
|
||||
<v>1271</v>
|
||||
<v>1798</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>3</a>
|
||||
<b>5</b>
|
||||
<v>21</v>
|
||||
<b>4</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
</bs>
|
||||
</hist>
|
||||
|
@ -2143,7 +2143,7 @@
|
|||
</e>
|
||||
<e>
|
||||
<k>cpu_seconds</k>
|
||||
<v>7927</v>
|
||||
<v>8157</v>
|
||||
</e>
|
||||
<e>
|
||||
<k>elapsed_seconds</k>
|
||||
|
@ -2193,17 +2193,17 @@
|
|||
<b>
|
||||
<a>1</a>
|
||||
<b>2</b>
|
||||
<v>6820</v>
|
||||
<v>7160</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>2</a>
|
||||
<b>3</b>
|
||||
<v>778</v>
|
||||
<v>756</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>3</a>
|
||||
<b>8</b>
|
||||
<v>328</v>
|
||||
<b>6</b>
|
||||
<v>241</v>
|
||||
</b>
|
||||
</bs>
|
||||
</hist>
|
||||
|
@ -2219,12 +2219,12 @@
|
|||
<b>
|
||||
<a>1</a>
|
||||
<b>2</b>
|
||||
<v>7587</v>
|
||||
<v>7675</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>2</a>
|
||||
<b>3</b>
|
||||
<v>339</v>
|
||||
<v>482</v>
|
||||
</b>
|
||||
</bs>
|
||||
</hist>
|
||||
|
@ -2240,66 +2240,66 @@
|
|||
<b>
|
||||
<a>1</a>
|
||||
<b>2</b>
|
||||
<v>10</v>
|
||||
<v>32</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>2</a>
|
||||
<b>3</b>
|
||||
<v>21</v>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>3</a>
|
||||
<b>4</b>
|
||||
<v>21</v>
|
||||
<v>32</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>4</a>
|
||||
<b>5</b>
|
||||
<v>21</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>10</a>
|
||||
<b>11</b>
|
||||
<v>21</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>18</a>
|
||||
<b>19</b>
|
||||
<a>7</a>
|
||||
<b>8</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>37</a>
|
||||
<b>38</b>
|
||||
<a>8</a>
|
||||
<b>9</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>51</a>
|
||||
<b>52</b>
|
||||
<a>21</a>
|
||||
<b>22</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>62</a>
|
||||
<b>63</b>
|
||||
<a>26</a>
|
||||
<b>27</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>99</a>
|
||||
<b>100</b>
|
||||
<a>31</a>
|
||||
<b>32</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>158</a>
|
||||
<b>159</b>
|
||||
<a>104</a>
|
||||
<b>105</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>170</a>
|
||||
<b>171</b>
|
||||
<a>137</a>
|
||||
<b>138</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>237</a>
|
||||
<b>238</b>
|
||||
<a>144</a>
|
||||
<b>145</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>173</a>
|
||||
<b>174</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>206</a>
|
||||
<b>207</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
</bs>
|
||||
|
@ -2316,66 +2316,66 @@
|
|||
<b>
|
||||
<a>1</a>
|
||||
<b>2</b>
|
||||
<v>10</v>
|
||||
<v>32</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>2</a>
|
||||
<b>3</b>
|
||||
<v>21</v>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>3</a>
|
||||
<b>4</b>
|
||||
<v>21</v>
|
||||
<v>32</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>4</a>
|
||||
<b>5</b>
|
||||
<v>21</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>10</a>
|
||||
<b>11</b>
|
||||
<v>21</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>18</a>
|
||||
<b>19</b>
|
||||
<a>7</a>
|
||||
<b>8</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>35</a>
|
||||
<b>36</b>
|
||||
<a>8</a>
|
||||
<b>9</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>50</a>
|
||||
<b>51</b>
|
||||
<a>21</a>
|
||||
<b>22</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>59</a>
|
||||
<b>60</b>
|
||||
<a>25</a>
|
||||
<b>26</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>74</a>
|
||||
<b>75</b>
|
||||
<a>29</a>
|
||||
<b>30</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>144</a>
|
||||
<b>145</b>
|
||||
<a>84</a>
|
||||
<b>85</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>162</a>
|
||||
<b>163</b>
|
||||
<a>122</a>
|
||||
<b>123</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>173</a>
|
||||
<b>174</b>
|
||||
<a>132</a>
|
||||
<b>133</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>150</a>
|
||||
<b>151</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
<b>
|
||||
<a>196</a>
|
||||
<b>197</b>
|
||||
<v>10</v>
|
||||
</b>
|
||||
</bs>
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,2 @@
|
|||
description: Add union types for casts and accesses
|
||||
compatibility: full
|
Загрузка…
Ссылка в новой задаче