C++: Deprecate single-parameter 'getFieldExpr' and 'getElementExpr'.

This commit is contained in:
Mathias Vorreiter Pedersen
2023-04-04 15:14:27 +01:00
parent f28cf25ba2
commit f2197e67f5
11 changed files with 22 additions and 22 deletions

View File

@@ -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()"

View File

@@ -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))
}
/**

View File

@@ -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 |

View File

@@ -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())
)
}
}

View File

@@ -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

View File

@@ -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))
)
}

View File

@@ -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
)
}

View File

@@ -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)

View File

@@ -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

View File

@@ -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)

View File

@@ -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