diff --git a/c/misra/src/rules/RULE-13-1/InitializerListsContainPersistentSideEffects.ql b/c/misra/src/rules/RULE-13-1/InitializerListsContainPersistentSideEffects.ql index 3c97fc06ca..3cce2bb825 100644 --- a/c/misra/src/rules/RULE-13-1/InitializerListsContainPersistentSideEffects.ql +++ b/c/misra/src/rules/RULE-13-1/InitializerListsContainPersistentSideEffects.ql @@ -25,8 +25,8 @@ from AggregateLiteral initList, SideEffect effect where not isExcluded(initList, SideEffects1Package::initializerListsContainPersistentSideEffectsQuery()) and ( - initList.(ArrayOrVectorAggregateLiteral).getElementExpr(_) = effect + initList.(ArrayOrVectorAggregateLiteral).getAnElementExpr(_) = effect or - initList.(ClassAggregateLiteral).getFieldExpr(_) = effect + initList.(ClassAggregateLiteral).getAFieldExpr(_) = effect ) select initList, "Initializer list constains persistent $@", effect, "side effect" diff --git a/c/misra/src/rules/RULE-17-5/ArrayFunctionArgumentNumberOfElements.ql b/c/misra/src/rules/RULE-17-5/ArrayFunctionArgumentNumberOfElements.ql index 0b5b95016c..215f9811c2 100644 --- a/c/misra/src/rules/RULE-17-5/ArrayFunctionArgumentNumberOfElements.ql +++ b/c/misra/src/rules/RULE-17-5/ArrayFunctionArgumentNumberOfElements.ql @@ -42,7 +42,7 @@ class ArrayParameter extends Parameter { * int arr2[2] = {1, 2, 3}; * ``` */ -int countElements(ArrayAggregateLiteral l) { result = count(l.getElementExpr(_)) } +int countElements(ArrayAggregateLiteral l) { result = count(l.getAnElementExpr(_)) } class SmallArrayConfig extends DataFlow::Configuration { SmallArrayConfig() { this = "SmallArrayConfig" } diff --git a/c/misra/src/rules/RULE-21-14/MemcmpUsedToCompareNullTerminatedStrings.ql b/c/misra/src/rules/RULE-21-14/MemcmpUsedToCompareNullTerminatedStrings.ql index 9bbec5c398..5c06b92501 100644 --- a/c/misra/src/rules/RULE-21-14/MemcmpUsedToCompareNullTerminatedStrings.ql +++ b/c/misra/src/rules/RULE-21-14/MemcmpUsedToCompareNullTerminatedStrings.ql @@ -30,7 +30,7 @@ class NullTerminatedStringToMemcmpConfiguration extends TaintTracking::Configura // The array element type is an essentially character type getEssentialTypeCategory(aal.getElementType()) = EssentiallyCharacterType() and // Includes a null terminator somewhere in the array initializer - aal.getElementExpr(_).getValue().toInt() = 0 + aal.getAnElementExpr(_).getValue().toInt() = 0 | // For local variables, use the array aggregate literal as the source aal = source.asExpr() diff --git a/c/misra/src/rules/RULE-9-4/RepeatedInitializationOfAggregateObjectElement.ql b/c/misra/src/rules/RULE-9-4/RepeatedInitializationOfAggregateObjectElement.ql index de0890777f..3566835ae3 100644 --- a/c/misra/src/rules/RULE-9-4/RepeatedInitializationOfAggregateObjectElement.ql +++ b/c/misra/src/rules/RULE-9-4/RepeatedInitializationOfAggregateObjectElement.ql @@ -38,7 +38,7 @@ string getNestedArrayIndexString(Expr e) { any(int elementIndex | exists(ArrayAggregateLiteral parent | parent = getNthParent(e, pragma[only_bind_into](depth + 1)) and - parent.getElementExpr(elementIndex) = getNthParent(e, pragma[only_bind_into](depth)) + parent.getAnElementExpr(elementIndex) = getNthParent(e, pragma[only_bind_into](depth)) ) | elementIndex @@ -54,9 +54,9 @@ string getNestedArrayIndexString(Expr e) { */ language[monotonicAggregates] int getMaxDepth(ArrayAggregateLiteral al) { - if not exists(al.getElementExpr(_).(ArrayAggregateLiteral)) + if not exists(al.getAnElementExpr(_).(ArrayAggregateLiteral)) then result = 0 - else result = 1 + max(Expr child | child = al.getElementExpr(_) | getMaxDepth(child)) + else result = 1 + max(Expr child | child = al.getAnElementExpr(_) | getMaxDepth(child)) } // internal recursive predicate for `hasMultipleInitializerExprsForSameIndex` @@ -66,8 +66,8 @@ predicate hasMultipleInitializerExprsForSameIndexInternal( exists(int shared_index, Expr al1_expr, Expr al2_expr | // an `Expr` initializing an element of the same index in both `al1` and `al2` shared_index = [0 .. al1.getArraySize() - 1] and - al1_expr = al1.getElementExpr(shared_index) and - al2_expr = al2.getElementExpr(shared_index) and + al1_expr = al1.getAnElementExpr(shared_index) and + al2_expr = al2.getAnElementExpr(shared_index) and // but not the same `Expr` not al1_expr = al2_expr and ( @@ -98,7 +98,7 @@ predicate hasMultipleInitializerExprsForSameIndex(ArrayAggregateLiteral root, Ex * This predicate is therefore unable to distinguish the individual duplicate expressions. */ predicate hasMultipleInitializerExprsForSameField(ClassAggregateLiteral root, Field f) { - count(root.getFieldExpr(f)) > 1 + count(root.getAFieldExpr(f)) > 1 } from diff --git a/cpp/autosar/src/rules/A5-1-1/LiteralValueUsedOutsideTypeInit.ql b/cpp/autosar/src/rules/A5-1-1/LiteralValueUsedOutsideTypeInit.ql index c20d0ded55..19519a92a8 100644 --- a/cpp/autosar/src/rules/A5-1-1/LiteralValueUsedOutsideTypeInit.ql +++ b/cpp/autosar/src/rules/A5-1-1/LiteralValueUsedOutsideTypeInit.ql @@ -43,7 +43,7 @@ where // Macro expansions are morally excluded not l = any(MacroInvocation mi).getAnExpandedElement() and // Aggregate literal - not l = any(ArrayOrVectorAggregateLiteral aal).getElementExpr(_).getAChild*() and + not l = any(ArrayOrVectorAggregateLiteral aal).getAnElementExpr(_).getAChild*() and // Ignore x - 1 expressions not exists(SubExpr se | se.getRightOperand() = l and l.getValue() = "1") select l, diff --git a/cpp/autosar/src/rules/A8-4-9/InOutParametersDeclaredAsTNotModified.ql b/cpp/autosar/src/rules/A8-4-9/InOutParametersDeclaredAsTNotModified.ql index 0b5c8d70be..1509ee968a 100644 --- a/cpp/autosar/src/rules/A8-4-9/InOutParametersDeclaredAsTNotModified.ql +++ b/cpp/autosar/src/rules/A8-4-9/InOutParametersDeclaredAsTNotModified.ql @@ -60,7 +60,7 @@ where //also not having a nonconst member accessed through the param notUsedAsQualifierForNonConst(p) and not exists(ClassAggregateLiteral l, Field f | - DataFlow::localExprFlow(p.getAnAccess(), l.getFieldExpr(f)) and + DataFlow::localExprFlow(p.getAnAccess(), l.getAFieldExpr(f)) and not f.isConst() ) and // Exclude parameters that are used to initialize member fields.