mirror of
https://github.com/github/codeql.git
synced 2025-12-24 04:36:35 +01:00
C++: Deprecate single-parameter 'getFieldExpr' and 'getElementExpr'.
This commit is contained in:
@@ -752,13 +752,13 @@ private predicate namedExprChildPredicates(Expr expr, Element ele, string pred)
|
||||
expr.(VariableAccess).getQualifier() = ele and pred = "getQualifier()"
|
||||
or
|
||||
exists(Field f |
|
||||
expr.(ClassAggregateLiteral).getFieldExpr(f) = ele and
|
||||
pred = "getFieldExpr(" + f.toString() + ")"
|
||||
expr.(ClassAggregateLiteral).getAFieldExpr(f) = ele and
|
||||
pred = "getAFieldExpr(" + f.toString() + ")"
|
||||
)
|
||||
or
|
||||
exists(int n |
|
||||
expr.(ArrayOrVectorAggregateLiteral).getElementExpr(n) = ele and
|
||||
pred = "getElementExpr(" + n.toString() + ")"
|
||||
expr.(ArrayOrVectorAggregateLiteral).getAnElementExpr(n) = ele and
|
||||
pred = "getAnElementExpr(" + n.toString() + ")"
|
||||
)
|
||||
or
|
||||
expr.(AlignofExprOperator).getExprOperand() = ele and pred = "getExprOperand()"
|
||||
|
||||
@@ -133,7 +133,7 @@ class Variable extends Declaration, @variable {
|
||||
or
|
||||
exists(AssignExpr ae | ae.getLValue().(Access).getTarget() = this and result = ae.getRValue())
|
||||
or
|
||||
exists(ClassAggregateLiteral l | result = l.getFieldExpr(this))
|
||||
exists(ClassAggregateLiteral l | result = l.getAFieldExpr(this))
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -159,7 +159,7 @@ predicate storeStep(Node node1, Content f, PostUpdateNode node2) {
|
||||
// `PostUpdateNode`, which means it must be an `ObjectInitializerNode`.
|
||||
node2.asExpr() = aggr and
|
||||
f.(FieldContent).getField() = field and
|
||||
aggr.getFieldExpr(field) = node1.asExpr()
|
||||
aggr.getAFieldExpr(field) = node1.asExpr()
|
||||
)
|
||||
or
|
||||
exists(FieldAccess fa |
|
||||
|
||||
@@ -147,7 +147,7 @@ class LambdaCapture extends Locatable, @lambdacapture {
|
||||
*/
|
||||
Expr getInitializer() {
|
||||
exists(LambdaExpression lambda | this = lambda.getCapture(_) |
|
||||
result = lambda.getInitializer().getFieldExpr(this.getField())
|
||||
result = lambda.getInitializer().getAFieldExpr(this.getField())
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -204,7 +204,7 @@ class ClassAggregateLiteral extends AggregateLiteral {
|
||||
* This predicate may have multiple results since a field can be initialized
|
||||
* multiple times in the same initializer.
|
||||
*/
|
||||
Expr getFieldExpr(Field field) { result = this.getFieldExpr(field, _) }
|
||||
deprecated Expr getFieldExpr(Field field) { result = this.getFieldExpr(field, _) }
|
||||
|
||||
/**
|
||||
* Gets the expression within the aggregate literal that is used to initialize
|
||||
@@ -238,7 +238,7 @@ class ClassAggregateLiteral extends AggregateLiteral {
|
||||
(
|
||||
// If the field has an explicit initializer expression, then the field is
|
||||
// initialized.
|
||||
exists(this.getFieldExpr(field))
|
||||
exists(this.getAFieldExpr(field))
|
||||
or
|
||||
// If the type is not a union, all fields without initializers are value
|
||||
// initialized.
|
||||
@@ -262,7 +262,7 @@ class ClassAggregateLiteral extends AggregateLiteral {
|
||||
pragma[inline]
|
||||
predicate isValueInitialized(Field field) {
|
||||
this.isInitialized(field) and
|
||||
not exists(this.getFieldExpr(field))
|
||||
not exists(this.getAFieldExpr(field))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -309,7 +309,7 @@ class ArrayOrVectorAggregateLiteral extends AggregateLiteral {
|
||||
* This predicate may have multiple results since an element can be initialized
|
||||
* multiple times in the same initializer.
|
||||
*/
|
||||
Expr getElementExpr(int elementIndex) { result = this.getElementExpr(elementIndex, _) }
|
||||
deprecated Expr getElementExpr(int elementIndex) { result = this.getElementExpr(elementIndex, _) }
|
||||
|
||||
/**
|
||||
* Gets the expression within the aggregate literal that is used to initialize
|
||||
|
||||
@@ -606,9 +606,9 @@ newtype TTranslatedElement =
|
||||
not ignoreExpr(expr) and
|
||||
(
|
||||
exists(Initializer init | init.getExpr().getFullyConverted() = expr) or
|
||||
exists(ClassAggregateLiteral initList | initList.getFieldExpr(_).getFullyConverted() = expr) or
|
||||
exists(ClassAggregateLiteral initList | initList.getAFieldExpr(_).getFullyConverted() = expr) or
|
||||
exists(ArrayOrVectorAggregateLiteral initList |
|
||||
initList.getElementExpr(_).getFullyConverted() = expr
|
||||
initList.getAnElementExpr(_).getFullyConverted() = expr
|
||||
) or
|
||||
exists(ReturnStmt returnStmt | returnStmt.getExpr().getFullyConverted() = expr) or
|
||||
exists(ConstructorFieldInit fieldInit | fieldInit.getExpr().getFullyConverted() = expr) or
|
||||
@@ -785,7 +785,7 @@ private int getNextExplicitlyInitializedElementAfter(
|
||||
ArrayOrVectorAggregateLiteral initList, int afterElementIndex
|
||||
) {
|
||||
isFirstValueInitializedElementInRange(initList, afterElementIndex) and
|
||||
result = min(int i | exists(initList.getElementExpr(i)) and i > afterElementIndex)
|
||||
result = min(int i | exists(initList.getAnElementExpr(i)) and i > afterElementIndex)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -798,7 +798,7 @@ private predicate isFirstValueInitializedElementInRange(
|
||||
initList.isValueInitialized(elementIndex) and
|
||||
(
|
||||
elementIndex = 0 or
|
||||
exists(initList.getElementExpr(elementIndex - 1))
|
||||
exists(initList.getAnElementExpr(elementIndex - 1))
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -741,7 +741,7 @@ private predicate mk_FieldCons(
|
||||
analyzableClassAggregateLiteral(cal) and
|
||||
cal.getUnspecifiedType() = c and
|
||||
exists(Expr e |
|
||||
e = cal.getFieldExpr(f).getFullyConverted() and
|
||||
e = cal.getAFieldExpr(f).getFullyConverted() and
|
||||
f.getInitializationOrder() = i and
|
||||
(
|
||||
hc = hashCons(e) and
|
||||
@@ -757,9 +757,9 @@ private predicate mk_FieldCons(
|
||||
private predicate analyzableClassAggregateLiteral(ClassAggregateLiteral cal) {
|
||||
forall(int i | exists(cal.getChild(i)) |
|
||||
strictcount(cal.getChild(i).getFullyConverted()) = 1 and
|
||||
strictcount(Field f | cal.getChild(i) = cal.getFieldExpr(f)) = 1 and
|
||||
strictcount(Field f | cal.getChild(i) = cal.getAFieldExpr(f)) = 1 and
|
||||
strictcount(Field f, int j |
|
||||
cal.getFieldExpr(f) = cal.getChild(i) and j = f.getInitializationOrder()
|
||||
cal.getAFieldExpr(f) = cal.getChild(i) and j = f.getInitializationOrder()
|
||||
) = 1
|
||||
)
|
||||
}
|
||||
|
||||
@@ -2,4 +2,4 @@ import cpp
|
||||
|
||||
from ArrayType a, ArrayAggregateLiteral al, int i
|
||||
where a = al.getType()
|
||||
select al, a, i, al.getElementExpr(i)
|
||||
select al, a, i, al.getAnElementExpr(i)
|
||||
|
||||
@@ -5,5 +5,5 @@ import cpp
|
||||
// (which, in the case of designated initializers, will not necessarily match
|
||||
// the order of the array elements).
|
||||
from ArrayAggregateLiteral aal, int childIndex, int elementIndex
|
||||
where aal.getElementExpr(elementIndex) = aal.getChild(childIndex)
|
||||
where aal.getAnElementExpr(elementIndex) = aal.getChild(childIndex)
|
||||
select aal, aal.getUnspecifiedType(), childIndex, aal.getChild(childIndex), elementIndex
|
||||
|
||||
@@ -4,4 +4,4 @@ from Class c, ClassAggregateLiteral al, Field f
|
||||
where
|
||||
c = al.getType() and
|
||||
f = c.getAField()
|
||||
select al, c, f, al.getFieldExpr(f)
|
||||
select al, c, f, al.getAFieldExpr(f)
|
||||
|
||||
@@ -5,5 +5,5 @@ import cpp
|
||||
// (which, in the case of designated initializers, will not necessarily match
|
||||
// the order in which the fields were declared).
|
||||
from ClassAggregateLiteral cal, int i, Field f
|
||||
where cal.getFieldExpr(f) = cal.getChild(i)
|
||||
where cal.getAFieldExpr(f) = cal.getChild(i)
|
||||
select cal, cal.getUnspecifiedType(), i, cal.getChild(i), f
|
||||
|
||||
Reference in New Issue
Block a user