Skip to content

M14-6-1: Address performance problems and restrict scope #205

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 17 commits into from
Mar 2, 2023

Conversation

lcartey
Copy link
Collaborator

@lcartey lcartey commented Feb 27, 2023

Description

Fixes #192.

This PR fixes a real world performance issue in this query, that was also raised by our integration performance testing on openpilot.

The problem is in the NameInDependentBase::parentMemberFunctionCall predicate:

FunctionCall parentMemberFunctionCall(Class child, Class parent) {
  exists(MemberFunction parentFunction, Function other |
    not other = parentFunction and
    parent.getAMember() = parentFunction and
    other.getName() = parentFunction.getName() and
    result = other.getACallToThisFunction() and
    result.getEnclosingFunction() = child.getAMemberFunction()
  }
}

The intention of the predicate is to find function calls where the target of the function could be confused with a member declaration in a dependent base type. The key performance problems were:

  1. Insufficient context within the predicate. In particular, there's no condition relating child and parent, which means we could be reporting any member function with the same name.
  2. Even with more context, this predicate still performs poorly because the join orderer is very keen to execute other.getName() = parentFunction.getName() early on, which essentially creates cross-product on all functions with the same name. This causes issues on databases with a lot of name duplication across classes (such as in openpilot, and typically in projects with lots of generated code).

The solution is to (a) push more context into the predicate and (b) create a helper predicate to ensure the join orderer evaluates the context prior to trying to match on function names.

I recommend a commit-wise review, with the following highlights:

  • 7b6cc90 - the rule only applies to template classes with a "dependent" base type i.e. a base type which uses as an argument one of the type arguments of the class, e.g. template<typename T> class A : B<T>. This is because the name lookup rules are different in this case, which is what can cause developer confusion. We now apply this restriction explicitly in the query - previously, the query mostly worked (apart from an edge case around static members) because the condition (unqualified name uses where the target is outside the class and the parent class declares the same name) could only occur in templates. However, applying the explicit restriction (a) makes it clearer the query is doing the "right" thing and (b) allows us to push more context into the predicate to avoid performance issues. This will also improve results in the case that a template has multiple instantiations - previously it would have reported one alert per instantiation per use, but now reports one alert per template class per use.
  • 0d43de5 - this commit pushes the child/parent context from the query into the parentMemberFunctionCall and similar predicates in the same file. This improves performance substantially, but does not fully solve the problem.
  • ac27623 - explicitly handle the case where a function target might be overloaded in the parent.
  • 82644bc - extract helper predicates to ensure we first calculate sets of name uses in functions declared in templates with dependent base types, before doing an efficient multi-column join on both name and dependent base type.
  • c308956 - improve the alert message to report the name and links to the actual target of the unqualified name and the potential target in the dependent base type.
  • f6afab6 - exclude uses of local scope variables from the query. Previously we just restricted parameters, but I see no confusion of the sort prohibited by the rule if the developer uses a local variable (as the strange name lookup rules around dependent base types do not apply).

@knewbury01 I'm assigning this to you as you originally wrote the query.

Change request type

  • Release or process automation (GitHub workflows, internal scripts)
  • Internal documentation
  • External documentation
  • Query files (.ql, .qll, .qls or unit tests)
  • External scripts (analysis report or other code shipped as part of a release)

Rules with added or modified queries

  • No rules added
  • Queries have been added for the following rules:
    • rule number here
  • Queries have been modified for the following rules:
    • M14-6-1

Release change checklist

A change note (development_handbook.md#change-notes) is required for any pull request which modifies:

  • The structure or layout of the release artifacts.
  • The evaluation performance (memory, execution time) of an existing query.
  • The results of an existing query in any circumstance.

If you are only adding new rule queries, a change note is not required.

Author: Is a change note required?

  • Yes
  • No

🚨🚨🚨
Reviewer: Confirm that format of shared queries (not the .qll file, the
.ql file that imports it) is valid by running them within VS Code.

  • Confirmed

Reviewer: Confirm that either a change note is not required or the change note is required and has been added.

  • Confirmed

Query development review checklist

For PRs that add new queries or modify existing queries, the following checklist should be completed by both the author and reviewer:

Author

  • Have all the relevant rule package description files been checked in?
  • Have you verified that the metadata properties of each new query is set appropriately?
  • Do all the unit tests contain both "COMPLIANT" and "NON_COMPLIANT" cases?
  • Are the alert messages properly formatted and consistent with the style guide?
  • Have you run the queries on OpenPilot and verified that the performance and results are acceptable?
    As a rule of thumb, predicates specific to the query should take no more than 1 minute, and for simple queries be under 10 seconds. If this is not the case, this should be highlighted and agreed in the code review process.
  • Does the query have an appropriate level of in-query comments/documentation?
  • Have you considered/identified possible edge cases?
  • Does the query not reinvent features in the standard library?
  • Can the query be simplified further (not golfed!)

Reviewer

  • Have all the relevant rule package description files been checked in?
  • Have you verified that the metadata properties of each new query is set appropriately?
  • Do all the unit tests contain both "COMPLIANT" and "NON_COMPLIANT" cases?
  • Are the alert messages properly formatted and consistent with the style guide?
  • Have you run the queries on OpenPilot and verified that the performance and results are acceptable?
    As a rule of thumb, predicates specific to the query should take no more than 1 minute, and for simple queries be under 10 seconds. If this is not the case, this should be highlighted and agreed in the code review process.
  • Does the query have an appropriate level of in-query comments/documentation?
  • Have you considered/identified possible edge cases?
  • Does the query not reinvent features in the standard library?
  • Can the query be simplified further (not golfed!)

The rule specifically only refers to dependent base types of class
templates.
The query didn't explicitly enforce this condition, and instead relied
on the fact that NameQualifiableElement's without any qualifier would
only point to the "wrong" element within templates. However, there are
some edge cases (static member functions with overrides) where non-class
templates could be flagged.

This commit restricts the output to the set of template classes with
dependent base types, therefore avoiding the sort of false positives
seen above. In addition, this improves performance for this query
because the set of template classes with dependent base types is much
much much smaller than the overall set of base types.
Push the dependent type context into the individual determination of
contravening cases to work towards addressing performance issues.
Previously the logic of this query asserted that the function call did
not target the selected function in the dependent base type with the
same name. In theory this is wrong, as overloading can permit multiple
functions declarations with the same name, but different signatures, so
we now say that the target is not declared on the same base type.

In practice, such results would be excluded because to call an overload
of the same function would always have a qualifier in this case, however
this logic makes the intention clearer.
Performance issues occurred because we are trying to find pairs of
functions or variables which have the same name but are not the same.
The join orderer is very keen on joining two copies of the function/
variable table early on which, on large databases like openpilot with
a lot of name duplication, can cause signficant blow-up.

The workaround is to provide helper predicates that ensure the
restricted set of functions/variables we care about (targets of accesses
or calls in templates with dependent base types) are computed first,
then the name is joined with a member on the dependent base type.
Improve the alert message to include:
 - The name of the identifier
 - A link to the target of the use of the identifier
 - A link to the dependent base type member with the same name.
Access of a local scope variable shadowing a dependent base member is
not a case with confusing behaviour - the local scope variable would
be expected to be the target.
@lcartey lcartey requested a review from knewbury01 February 27, 2023 20:25
@github-actions
Copy link

🤖 Beep Boop! Matrix Testing for this PR has been initiated. Please check back later for results.

💡 If you do not hear back from me please check my status! I will report even if this PR does not contain files eligible for matrix testing.

1 similar comment
@github-actions
Copy link

🤖 Beep Boop! Matrix Testing for this PR has been initiated. Please check back later for results.

💡 If you do not hear back from me please check my status! I will report even if this PR does not contain files eligible for matrix testing.

@jsinglet
Copy link
Contributor

🤖 Beep Boop! clang/c/x86_64 Matrix Testing for this PR has been completed but I didn't find anything to test!

@jsinglet
Copy link
Contributor

🤖 Beep Boop! clang/cpp/x86_64 Matrix Testing for this PR has been completed. See below for the results!


TEST_DIFFERENCE      : 
RULE                 : M14-6-1
COMPILE_ERROR_OUTPUT : [2023-02-27 20:26:56] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:75:10: error: declaration of 't' shadows template parameter
                       [2023-02-27 20:26:56] [build-stderr]     TYPE t = 0;       // COMPLIANT - does not apply to non dependent base types
                       [2023-02-27 20:26:56] [build-stderr]          ^
                       [2023-02-27 20:26:56] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:70:20: note: template parameter is declared here
                       [2023-02-27 20:26:56] [build-stderr] template <typename t> class E : D {
                       [2023-02-27 20:26:56] [build-stderr]                    ^
                       [2023-02-27 20:26:56] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:76:20: error: address of overloaded function 'g' does not match required type 'void ()'
                       [2023-02-27 20:26:56] [build-stderr]     void (*p)() = &g; // COMPLIANT - does not apply to non dependent base types
                       [2023-02-27 20:26:56] [build-stderr]                    ^
                       [2023-02-27 20:26:56] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:52:8: note: candidate function
                       [2023-02-27 20:26:56] [build-stderr]   void g();
                       [2023-02-27 20:26:56] [build-stderr]        ^
                       [2023-02-27 20:26:56] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:53:8: note: candidate function has different number of parameters (expected 0 but has 1)
                       [2023-02-27 20:26:56] [build-stderr]   void g(int x);
                       [2023-02-27 20:26:56] [build-stderr]        ^
                       [2023-02-27 20:26:56] [build-stderr] 2 errors generated.
                       [2023-02-27 20:26:57] [ERROR] Spawned process exited abnormally (code 1; tried to run: [/__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql/tools/linux64/preload_tracer, clang++, -std=c++14, -fsyntax-only, /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp])
                       
SUITE                : AUTOSAR
TEST_PASS            : False
QUERY                : NameNotReferredUsingAQualifiedIdOrThis
PACKAGE              : Templates
COMPILE_PASS         : False

TEST_DIFFERENCE      : 
RULE                 : M14-6-1
COMPILE_ERROR_OUTPUT : [2023-02-27 20:26:56] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:75:10: error: declaration of 't' shadows template parameter
                       [2023-02-27 20:26:56] [build-stderr]     TYPE t = 0;       // COMPLIANT - does not apply to non dependent base types
                       [2023-02-27 20:26:56] [build-stderr]          ^
                       [2023-02-27 20:26:56] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:70:20: note: template parameter is declared here
                       [2023-02-27 20:26:56] [build-stderr] template <typename t> class E : D {
                       [2023-02-27 20:26:56] [build-stderr]                    ^
                       [2023-02-27 20:26:56] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:76:20: error: address of overloaded function 'g' does not match required type 'void ()'
                       [2023-02-27 20:26:56] [build-stderr]     void (*p)() = &g; // COMPLIANT - does not apply to non dependent base types
                       [2023-02-27 20:26:56] [build-stderr]                    ^
                       [2023-02-27 20:26:56] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:52:8: note: candidate function
                       [2023-02-27 20:26:56] [build-stderr]   void g();
                       [2023-02-27 20:26:56] [build-stderr]        ^
                       [2023-02-27 20:26:56] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:53:8: note: candidate function has different number of parameters (expected 0 but has 1)
                       [2023-02-27 20:26:56] [build-stderr]   void g(int x);
                       [2023-02-27 20:26:56] [build-stderr]        ^
                       [2023-02-27 20:26:56] [build-stderr] 2 errors generated.
                       [2023-02-27 20:26:57] [ERROR] Spawned process exited abnormally (code 1; tried to run: [/__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql/tools/linux64/preload_tracer, clang++, -std=c++14, -fsyntax-only, /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp])
                       
SUITE                : AUTOSAR
TEST_PASS            : False
QUERY                : NameNotReferredUsingAQualifiedIdOrThisAudit
PACKAGE              : Templates
COMPILE_PASS         : False


@jsinglet
Copy link
Contributor

🤖 Beep Boop! clang/c/x86_64 Matrix Testing for this PR has been completed but I didn't find anything to test!

@jsinglet
Copy link
Contributor

🤖 Beep Boop! clang/cpp/x86_64 Matrix Testing for this PR has been completed. See below for the results!


COMPILE_ERROR_OUTPUT : [2023-02-27 20:28:52] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:75:10: error: declaration of 't' shadows template parameter
                       [2023-02-27 20:28:52] [build-stderr]     TYPE t = 0;       // COMPLIANT - does not apply to non dependent base types
                       [2023-02-27 20:28:52] [build-stderr]          ^
                       [2023-02-27 20:28:52] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:70:20: note: template parameter is declared here
                       [2023-02-27 20:28:52] [build-stderr] template <typename t> class E : D {
                       [2023-02-27 20:28:52] [build-stderr]                    ^
                       [2023-02-27 20:28:52] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:76:20: error: address of overloaded function 'g' does not match required type 'void ()'
                       [2023-02-27 20:28:52] [build-stderr]     void (*p)() = &g; // COMPLIANT - does not apply to non dependent base types
                       [2023-02-27 20:28:52] [build-stderr]                    ^
                       [2023-02-27 20:28:52] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:52:8: note: candidate function
                       [2023-02-27 20:28:52] [build-stderr]   void g();
                       [2023-02-27 20:28:52] [build-stderr]        ^
                       [2023-02-27 20:28:52] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:53:8: note: candidate function has different number of parameters (expected 0 but has 1)
                       [2023-02-27 20:28:52] [build-stderr]   void g(int x);
                       [2023-02-27 20:28:52] [build-stderr]        ^
                       [2023-02-27 20:28:52] [build-stderr] 2 errors generated.
                       [2023-02-27 20:28:52] [ERROR] Spawned process exited abnormally (code 1; tried to run: [/__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql/tools/linux64/preload_tracer, clang++, -std=c++14, -fsyntax-only, /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp])
                       
COMPILE_PASS         : False
QUERY                : NameNotReferredUsingAQualifiedIdOrThis
SUITE                : AUTOSAR
TEST_PASS            : False
RULE                 : M14-6-1
TEST_DIFFERENCE      : 
PACKAGE              : Templates

COMPILE_ERROR_OUTPUT : [2023-02-27 20:28:52] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:75:10: error: declaration of 't' shadows template parameter
                       [2023-02-27 20:28:52] [build-stderr]     TYPE t = 0;       // COMPLIANT - does not apply to non dependent base types
                       [2023-02-27 20:28:52] [build-stderr]          ^
                       [2023-02-27 20:28:52] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:70:20: note: template parameter is declared here
                       [2023-02-27 20:28:52] [build-stderr] template <typename t> class E : D {
                       [2023-02-27 20:28:52] [build-stderr]                    ^
                       [2023-02-27 20:28:52] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:76:20: error: address of overloaded function 'g' does not match required type 'void ()'
                       [2023-02-27 20:28:52] [build-stderr]     void (*p)() = &g; // COMPLIANT - does not apply to non dependent base types
                       [2023-02-27 20:28:52] [build-stderr]                    ^
                       [2023-02-27 20:28:52] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:52:8: note: candidate function
                       [2023-02-27 20:28:52] [build-stderr]   void g();
                       [2023-02-27 20:28:52] [build-stderr]        ^
                       [2023-02-27 20:28:52] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:53:8: note: candidate function has different number of parameters (expected 0 but has 1)
                       [2023-02-27 20:28:52] [build-stderr]   void g(int x);
                       [2023-02-27 20:28:52] [build-stderr]        ^
                       [2023-02-27 20:28:52] [build-stderr] 2 errors generated.
                       [2023-02-27 20:28:52] [ERROR] Spawned process exited abnormally (code 1; tried to run: [/__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql/tools/linux64/preload_tracer, clang++, -std=c++14, -fsyntax-only, /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp])
                       
COMPILE_PASS         : False
QUERY                : NameNotReferredUsingAQualifiedIdOrThisAudit
SUITE                : AUTOSAR
TEST_PASS            : False
RULE                 : M14-6-1
TEST_DIFFERENCE      : 
PACKAGE              : Templates


@jsinglet
Copy link
Contributor

🤖 Beep Boop! gcc/cpp/x86_64 Matrix Testing for this PR has been completed. See below for the results!


SUITE                : AUTOSAR
TEST_PASS            : False
QUERY                : NameNotReferredUsingAQualifiedIdOrThisAudit
COMPILE_ERROR_OUTPUT : [2023-02-27 20:29:01] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp: In member function 'void E<t>::m1()':
                       [2023-02-27 20:29:01] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:75:10: error: declaration of 'D::TYPE t' shadows template parameter
                       [2023-02-27 20:29:01] [build-stderr]      TYPE t = 0;       // COMPLIANT - does not apply to non dependent base types
                       [2023-02-27 20:29:01] [build-stderr]           ^
                       [2023-02-27 20:29:01] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:70:11: note: template parameter 't' declared here
                       [2023-02-27 20:29:01] [build-stderr]  template <typename t> class E : D {
                       [2023-02-27 20:29:01] [build-stderr]            ^~~~~~~~
                       [2023-02-27 20:29:01] [ERROR] Spawned process exited abnormally (code 1; tried to run: [/__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql/tools/linux64/preload_tracer, g++, -std=c++14, -fsyntax-only, /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp])
                       
COMPILE_PASS         : False
TEST_DIFFERENCE      : 
PACKAGE              : Templates
RULE                 : M14-6-1

SUITE                : AUTOSAR
TEST_PASS            : False
QUERY                : NameNotReferredUsingAQualifiedIdOrThis
COMPILE_ERROR_OUTPUT : [2023-02-27 20:29:01] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp: In member function 'void E<t>::m1()':
                       [2023-02-27 20:29:01] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:75:10: error: declaration of 'D::TYPE t' shadows template parameter
                       [2023-02-27 20:29:01] [build-stderr]      TYPE t = 0;       // COMPLIANT - does not apply to non dependent base types
                       [2023-02-27 20:29:01] [build-stderr]           ^
                       [2023-02-27 20:29:01] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:70:11: note: template parameter 't' declared here
                       [2023-02-27 20:29:01] [build-stderr]  template <typename t> class E : D {
                       [2023-02-27 20:29:01] [build-stderr]            ^~~~~~~~
                       [2023-02-27 20:29:01] [ERROR] Spawned process exited abnormally (code 1; tried to run: [/__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql/tools/linux64/preload_tracer, g++, -std=c++14, -fsyntax-only, /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp])
                       
COMPILE_PASS         : False
TEST_DIFFERENCE      : 
PACKAGE              : Templates
RULE                 : M14-6-1


@jsinglet
Copy link
Contributor

🤖 Beep Boop! gcc/c/x86_64 Matrix Testing for this PR has been completed but I didn't find anything to test!

@jsinglet
Copy link
Contributor

🤖 Beep Boop! Matrix Testing for this PR has been completed. If no reports were posted it means this PR does not contain things that need matrix testing!

@jsinglet
Copy link
Contributor

/test-performance

@github-actions
Copy link

🏁 Beep Boop! Performance testing for this PR has been initiated. Please check back later for results. Note that the query package generation step must complete before testing will start so it might be a minute.

💡 If you do not hear back from me please check my status! I will report even if I fail!

@github github deleted a comment from github-actions bot Feb 28, 2023
@github github deleted a comment from github-actions bot Feb 28, 2023
@jsinglet
Copy link
Contributor

🏁 Beep Boop! Performance testing complete! See below for performance of the last 3 runs vs your PR. Times are based on predicate performance. You can find full graphs and stats in the PR that was created for this test in the release engineering repo.


Release                            : v2.12.0
Platform                           : x86-windows
Language                           : cpp
Total_Serialized_Execution_Time_Ms : 4428018
Mean_Predicate_Execution_Time_Ms   : 111.02798254851812
Median_Predicate_Execution_Time_Ms : 3.0
Standard_Deviation_Ms              : 1849.028713918296
Total_Serialized_Execution_Time_s  : 4428.018
Mean_Query_Execution_Time_s        : 0.1110279825485181
Median_Predicate_Execution_Time_s  : 0.003
Percentile95_Ms                    : 223.0
Number_of_Predicates               : 39882

Release                            : v2.12.0
Platform                           : x86-windows
Language                           : c
Total_Serialized_Execution_Time_Ms : 2646295
Mean_Predicate_Execution_Time_Ms   : 121.49556953307928
Median_Predicate_Execution_Time_Ms : 4.0
Standard_Deviation_Ms              : 1930.489882503224
Total_Serialized_Execution_Time_s  : 2646.295
Mean_Query_Execution_Time_s        : 0.1214955695330792
Median_Predicate_Execution_Time_s  : 0.004
Percentile95_Ms                    : 287.0
Number_of_Predicates               : 21781

Release                            : v2.12.0
Platform                           : x86-linux
Language                           : c
Total_Serialized_Execution_Time_Ms : 2290304
Mean_Predicate_Execution_Time_Ms   : 104.99239020812324
Median_Predicate_Execution_Time_Ms : 3.0
Standard_Deviation_Ms              : 1629.1630253157075
Total_Serialized_Execution_Time_s  : 2290.304
Mean_Query_Execution_Time_s        : 0.1049923902081232
Median_Predicate_Execution_Time_s  : 0.003
Percentile95_Ms                    : 260.0
Number_of_Predicates               : 21814

Release                            : v2.12.0
Platform                           : x86-linux
Language                           : cpp
Total_Serialized_Execution_Time_Ms : 4005710
Mean_Predicate_Execution_Time_Ms   : 99.6594019007812
Median_Predicate_Execution_Time_Ms : 2.0
Standard_Deviation_Ms              : 1654.8379642914922
Total_Serialized_Execution_Time_s  : 4005.71
Mean_Query_Execution_Time_s        : 0.0996594019007812
Median_Predicate_Execution_Time_s  : 0.002
Percentile95_Ms                    : 203.0
Number_of_Predicates               : 40194

Release                            : v2.13.0
Platform                           : x86-linux
Language                           : c
Total_Serialized_Execution_Time_Ms : 2851919
Mean_Predicate_Execution_Time_Ms   : 123.07077201916024
Median_Predicate_Execution_Time_Ms : 3.0
Standard_Deviation_Ms              : 1960.041520356055
Total_Serialized_Execution_Time_s  : 2851.919
Mean_Query_Execution_Time_s        : 0.1230707720191602
Median_Predicate_Execution_Time_s  : 0.003
Percentile95_Ms                    : 266.0
Number_of_Predicates               : 23173

Release                            : v2.13.0
Platform                           : x86-windows
Language                           : c
Total_Serialized_Execution_Time_Ms : 3268794
Mean_Predicate_Execution_Time_Ms   : 141.10917332182171
Median_Predicate_Execution_Time_Ms : 5.0
Standard_Deviation_Ms              : 2347.189663268768
Total_Serialized_Execution_Time_s  : 3268.794
Mean_Query_Execution_Time_s        : 0.1411091733218217
Median_Predicate_Execution_Time_s  : 0.005
Percentile95_Ms                    : 300.0
Number_of_Predicates               : 23165

Release                            : v2.13.0
Platform                           : x86-linux
Language                           : cpp
Total_Serialized_Execution_Time_Ms : 3877306
Mean_Predicate_Execution_Time_Ms   : 97.3048410168896
Median_Predicate_Execution_Time_Ms : 2.0
Standard_Deviation_Ms              : 1572.1314154912643
Total_Serialized_Execution_Time_s  : 3877.306
Mean_Query_Execution_Time_s        : 0.0973048410168896
Median_Predicate_Execution_Time_s  : 0.002
Percentile95_Ms                    : 200.0
Number_of_Predicates               : 39847

Release                            : v2.13.0
Platform                           : x86-windows
Language                           : cpp
Total_Serialized_Execution_Time_Ms : 4405198
Mean_Predicate_Execution_Time_Ms   : 110.18504252126064
Median_Predicate_Execution_Time_Ms : 3.0
Standard_Deviation_Ms              : 1816.991907084716
Total_Serialized_Execution_Time_s  : 4405.198
Mean_Query_Execution_Time_s        : 0.1101850425212606
Median_Predicate_Execution_Time_s  : 0.003
Percentile95_Ms                    : 222.0
Number_of_Predicates               : 39980

Release                            : 205
Platform                           : x86-linux
Language                           : cpp
Total_Serialized_Execution_Time_Ms : 3637974
Mean_Predicate_Execution_Time_Ms   : 91.39949250056527
Median_Predicate_Execution_Time_Ms : 2.0
Standard_Deviation_Ms              : 1419.4909941577982
Total_Serialized_Execution_Time_s  : 3637.974
Mean_Query_Execution_Time_s        : 0.0913994925005652
Median_Predicate_Execution_Time_s  : 0.002
Percentile95_Ms                    : 196.0
Number_of_Predicates               : 39803

Release                            : 205
Platform                           : x86-linux
Language                           : c
Total_Serialized_Execution_Time_Ms : 2869729
Mean_Predicate_Execution_Time_Ms   : 108.0755093586412
Median_Predicate_Execution_Time_Ms : 2.0
Standard_Deviation_Ms              : 1782.0302061847567
Total_Serialized_Execution_Time_s  : 2869.729
Mean_Query_Execution_Time_s        : 0.1080755093586412
Median_Predicate_Execution_Time_s  : 0.002
Percentile95_Ms                    : 239.0
Number_of_Predicates               : 26553


🏁 Below are the slowest predicates for the last 2 releases vs this PR.


Release           : v2.13.0
Run               : 2023-01-18_21-49-06
Platform          : x86-linux
Language          : c
Suite             : misra-default
Predicate         : #select#cpe#1#f#antijoin_rhs
Execution_Time_Ms : 29501

Release           : v2.13.0
Run               : 2023-01-18_21-49-06
Platform          : x86-windows
Language          : cpp
Suite             : cert-default
Predicate         : SSAConstruction::DefUse::hasNonPhiDefinition#2b11997e#ffff
Execution_Time_Ms : 36250

Release           : v2.13.0
Run               : 2023-01-18_21-49-06
Platform          : x86-linux
Language          : c
Suite             : misra-default
Predicate         : #select#ff#antijoin_rhs
Execution_Time_Ms : 200444

Release           : v2.13.0
Run               : 2023-01-18_21-49-06
Platform          : x86-linux
Language          : c
Suite             : misra-default
Predicate         : #select#cpe#134#fff#shared
Execution_Time_Ms : 143720

Release           : v2.13.0
Run               : 2023-01-18_21-49-06
Platform          : x86-linux
Language          : c
Suite             : misra-default
Predicate         : #select#cpe#13456#fffff#shared
Execution_Time_Ms : 96963

Release           : v2.13.0
Run               : 2023-01-18_21-49-06
Platform          : x86-windows
Language          : cpp
Suite             : autosar-default
Predicate         : UnusedIncludeDirectives::getANonLocalDependency#574b69bc#ff
Execution_Time_Ms : 35398

Release           : v2.13.0
Run               : 2023-01-18_21-49-06
Platform          : x86-linux
Language          : cpp
Suite             : autosar-default
Predicate         : Dependency::dependsOnTransitive#b0c9183e#ff
Execution_Time_Ms : 180277

Release           : v2.13.0
Run               : 2023-01-18_21-49-06
Platform          : x86-linux
Language          : cpp
Suite             : autosar-default
Predicate         : m##DataFlowUtil::localFlowStep#7572fbecPlus#bf
Execution_Time_Ms : 165026

Release           : v2.13.0
Run               : 2023-01-18_21-49-06
Platform          : x86-linux
Language          : cpp
Suite             : autosar-default
Predicate         : NameInDependentBase::parentMemberFunctionCall#6fb39822#fff
Execution_Time_Ms : 129317

Release           : v2.13.0
Run               : 2023-01-18_21-49-06
Platform          : x86-linux
Language          : cpp
Suite             : autosar-default
Predicate         : UnusedIncludeDirectives::getANonLocalDependency#574b69bc#ff
Execution_Time_Ms : 30267

Release           : v2.13.0
Run               : 2023-01-18_21-49-06
Platform          : x86-linux
Language          : c
Suite             : misra-default
Predicate         : #select#cpe#134#fff#antijoin_rhs
Execution_Time_Ms : 60963

Release           : v2.13.0
Run               : 2023-01-18_21-49-06
Platform          : x86-windows
Language          : c
Suite             : misra-default
Predicate         : #select#ff#antijoin_rhs
Execution_Time_Ms : 236211

Release           : v2.13.0
Run               : 2023-01-18_21-49-06
Platform          : x86-windows
Language          : c
Suite             : misra-default
Predicate         : #select#cpe#134#fff#shared
Execution_Time_Ms : 175313

Release           : v2.13.0
Run               : 2023-01-18_21-49-06
Platform          : x86-windows
Language          : c
Suite             : misra-default
Predicate         : #select#cpe#13456#fffff#shared
Execution_Time_Ms : 134744

Release           : v2.13.0
Run               : 2023-01-18_21-49-06
Platform          : x86-windows
Language          : c
Suite             : misra-default
Predicate         : #select#cpe#134#fff#antijoin_rhs
Execution_Time_Ms : 58490

Release           : v2.13.0
Run               : 2023-01-18_21-49-06
Platform          : x86-windows
Language          : c
Suite             : misra-default
Predicate         : SSAConstruction::DefUse::hasNonPhiDefinition#2b11997e#ffff
Execution_Time_Ms : 37077

Release           : v2.13.0
Run               : 2023-01-18_21-49-06
Platform          : x86-windows
Language          : cpp
Suite             : autosar-default
Predicate         : Dependency::dependsOnTransitive#b0c9183e#ff
Execution_Time_Ms : 233225

Release           : v2.13.0
Run               : 2023-01-18_21-49-06
Platform          : x86-windows
Language          : cpp
Suite             : autosar-default
Predicate         : m##DataFlowUtil::localFlowStep#7572fbecPlus#bf
Execution_Time_Ms : 163714

Release           : v2.13.0
Run               : 2023-01-18_21-49-06
Platform          : x86-windows
Language          : cpp
Suite             : autosar-default
Predicate         : NameInDependentBase::parentMemberFunctionCall#6fb39822#fff
Execution_Time_Ms : 144307

Release           : v2.13.0
Run               : 2023-01-18_21-49-06
Platform          : x86-linux
Language          : cpp
Suite             : cert-default
Predicate         : SSAConstruction::DefUse::hasNonPhiDefinition#2b11997e#ffff
Execution_Time_Ms : 29659

Release           : 205
Run               : 2023-02-28_18-12-59
Platform          : x86-linux
Language          : c
Suite             : misra-default
Predicate         : #select#cpe#134#fff#shared
Execution_Time_Ms : 135283

Release           : 205
Run               : 2023-02-28_18-12-59
Platform          : x86-linux
Language          : c
Suite             : misra-default
Predicate         : #select#cpe#13456#fffff#shared
Execution_Time_Ms : 93746

Release           : 205
Run               : 2023-02-28_18-12-59
Platform          : x86-linux
Language          : c
Suite             : misra-default
Predicate         : #select#cpe#134#fff#antijoin_rhs
Execution_Time_Ms : 58486

Release           : 205
Run               : 2023-02-28_18-12-59
Platform          : x86-linux
Language          : c
Suite             : misra-default
Predicate         : #select#cpe#1#f#antijoin_rhs
Execution_Time_Ms : 28933

Release           : 205
Run               : 2023-02-28_18-12-59
Platform          : x86-linux
Language          : cpp
Suite             : autosar-default
Predicate         : SSAConstruction::DefUse::hasNonPhiDefinition#2b11997e#ffff
Execution_Time_Ms : 29633

Release           : 205
Run               : 2023-02-28_18-12-59
Platform          : x86-linux
Language          : cpp
Suite             : autosar-default
Predicate         : m##DataFlowUtil::localFlowStep#7572fbecPlus#bf
Execution_Time_Ms : 163637

Release           : 205
Run               : 2023-02-28_18-12-59
Platform          : x86-linux
Language          : cpp
Suite             : autosar-default
Predicate         : UnusedIncludeDirectives::getANonLocalDependency#574b69bc#ff
Execution_Time_Ms : 31055

Release           : 205
Run               : 2023-02-28_18-12-59
Platform          : x86-linux
Language          : cpp
Suite             : autosar-default
Predicate         : PreProcessorShallOnlyBeUsedForCertainDirectivesPatterns::getAGuard#32e68f1c#ff
Execution_Time_Ms : 29418

Release           : 205
Run               : 2023-02-28_18-12-59
Platform          : x86-linux
Language          : cpp
Suite             : autosar-default
Predicate         : Dependency::dependsOnTransitive#b0c9183e#ff
Execution_Time_Ms : 181576

Release           : 205
Run               : 2023-02-28_18-12-59
Platform          : x86-linux
Language          : c
Suite             : misra-default
Predicate         : #select#ff#antijoin_rhs
Execution_Time_Ms : 198177


@lcartey
Copy link
Collaborator Author

lcartey commented Mar 1, 2023

Performance testing above shows that overall time for the cpp suites has reduced from 4405s to 3637s.

The slowest set of predicates in the last release show NameInDependentBase::parentMemberFunctionCall#6fb39822#fff taking 144s, but that predicate no longer appears in the list of slowest predicates after this PR.

lcartey added 2 commits March 1, 2023 11:09
 * Formatting
 * Address compiler testing issues
   - Accidental name conflicts
   - Type of member function parameter
@github-actions
Copy link

github-actions bot commented Mar 1, 2023

🤖 Beep Boop! Matrix Testing for this PR has been initiated. Please check back later for results.

💡 If you do not hear back from me please check my status! I will report even if this PR does not contain files eligible for matrix testing.

@jsinglet
Copy link
Contributor

jsinglet commented Mar 1, 2023

🤖 Beep Boop! clang/cpp/x86_64 Matrix Testing for this PR has been completed. See below for the results!


QUERY                : NameNotReferredUsingAQualifiedIdOrThisAudit
RULE                 : M14-6-1
TEST_PASS            : False
COMPILE_ERROR_OUTPUT : [2023-03-01 11:13:43] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:77:10: error: cannot form member pointer of type 'void (D::*)()' without '&' and class name
                       [2023-03-01 11:13:43] [build-stderr]         &g; // COMPLIANT - does not apply to non dependent base types
                       [2023-03-01 11:13:43] [build-stderr]          ^
                       [2023-03-01 11:13:43] [build-stderr] 1 error generated.
                       [2023-03-01 11:13:43] [ERROR] Spawned process exited abnormally (code 1; tried to run: [/__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql/tools/linux64/preload_tracer, clang++, -std=c++14, -fsyntax-only, /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp])
                       
PACKAGE              : Templates
COMPILE_PASS         : False
SUITE                : AUTOSAR
TEST_DIFFERENCE      : 

QUERY                : NameNotReferredUsingAQualifiedIdOrThis
RULE                 : M14-6-1
TEST_PASS            : False
COMPILE_ERROR_OUTPUT : [2023-03-01 11:13:43] [build-stderr] /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp:77:10: error: cannot form member pointer of type 'void (D::*)()' without '&' and class name
                       [2023-03-01 11:13:43] [build-stderr]         &g; // COMPLIANT - does not apply to non dependent base types
                       [2023-03-01 11:13:43] [build-stderr]          ^
                       [2023-03-01 11:13:43] [build-stderr] 1 error generated.
                       [2023-03-01 11:13:43] [ERROR] Spawned process exited abnormally (code 1; tried to run: [/__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql/tools/linux64/preload_tracer, clang++, -std=c++14, -fsyntax-only, /__w/codeql-coding-standards-release-engineering/codeql-coding-standards-release-engineering/codeql-coding-standards/cpp/autosar/test/rules/M14-6-1/test.cpp])
                       
PACKAGE              : Templates
COMPILE_PASS         : False
SUITE                : AUTOSAR
TEST_DIFFERENCE      : 


@jsinglet
Copy link
Contributor

jsinglet commented Mar 1, 2023

🤖 Beep Boop! clang/c/x86_64 Matrix Testing for this PR has been completed but I didn't find anything to test!

@jsinglet
Copy link
Contributor

jsinglet commented Mar 1, 2023

🤖 Beep Boop! gcc/cpp/x86_64 Matrix Testing for this PR has been completed. See below for the results!


SUITE                : AUTOSAR
RULE                 : M14-6-1
TEST_DIFFERENCE      : 
PACKAGE              : Templates
QUERY                : NameNotReferredUsingAQualifiedIdOrThis
TEST_PASS            : True
COMPILE_ERROR_OUTPUT : 
COMPILE_PASS         : True

SUITE                : AUTOSAR
RULE                 : M14-6-1
TEST_DIFFERENCE      : 
PACKAGE              : Templates
QUERY                : NameNotReferredUsingAQualifiedIdOrThisAudit
TEST_PASS            : True
COMPILE_ERROR_OUTPUT : 
COMPILE_PASS         : True


@jsinglet
Copy link
Contributor

jsinglet commented Mar 1, 2023

🤖 Beep Boop! Matrix Testing for this PR has been completed. If no reports were posted it means this PR does not contain things that need matrix testing!

@github-actions
Copy link

github-actions bot commented Mar 1, 2023

🤖 Beep Boop! Matrix Testing for this PR has been initiated. Please check back later for results.

💡 If you do not hear back from me please check my status! I will report even if this PR does not contain files eligible for matrix testing.

@jsinglet
Copy link
Contributor

jsinglet commented Mar 1, 2023

🤖 Beep Boop! clang/c/x86_64 Matrix Testing for this PR has been completed but I didn't find anything to test!

@jsinglet
Copy link
Contributor

jsinglet commented Mar 1, 2023

🤖 Beep Boop! gcc/c/x86_64 Matrix Testing for this PR has been completed but I didn't find anything to test!

@jsinglet
Copy link
Contributor

jsinglet commented Mar 1, 2023

🤖 Beep Boop! clang/cpp/x86_64 Matrix Testing for this PR has been completed. See below for the results!


TEST_PASS            : True
SUITE                : AUTOSAR
COMPILE_ERROR_OUTPUT : 
QUERY                : NameNotReferredUsingAQualifiedIdOrThisAudit
COMPILE_PASS         : True
TEST_DIFFERENCE      : 
RULE                 : M14-6-1
PACKAGE              : Templates

TEST_PASS            : True
SUITE                : AUTOSAR
COMPILE_ERROR_OUTPUT : 
QUERY                : NameNotReferredUsingAQualifiedIdOrThis
COMPILE_PASS         : True
TEST_DIFFERENCE      : 
RULE                 : M14-6-1
PACKAGE              : Templates


@jsinglet
Copy link
Contributor

jsinglet commented Mar 1, 2023

🤖 Beep Boop! gcc/cpp/x86_64 Matrix Testing for this PR has been completed. See below for the results!


RULE                 : M14-6-1
TEST_PASS            : True
COMPILE_PASS         : True
SUITE                : AUTOSAR
TEST_DIFFERENCE      : 
QUERY                : NameNotReferredUsingAQualifiedIdOrThis
PACKAGE              : Templates
COMPILE_ERROR_OUTPUT : 

RULE                 : M14-6-1
TEST_PASS            : True
COMPILE_PASS         : True
SUITE                : AUTOSAR
TEST_DIFFERENCE      : 
QUERY                : NameNotReferredUsingAQualifiedIdOrThisAudit
PACKAGE              : Templates
COMPILE_ERROR_OUTPUT : 


Copy link
Contributor

@knewbury01 knewbury01 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just a few minor improvement suggestions!

otherwise, absolutely perfect! 🎉

haha wish I could say that Ive learned to now identify when a join is happening on some names first and creating a huge initial state space but... we shall see! 😅

lcartey and others added 3 commits March 2, 2023 10:00
To take a pointer to a member function we need to provide a qualifier to
the name. The cases in the COMPLIANT classes are therefore
non-compilable. The reason some cases were not previously causing EDG to
crash was that the templates weren't instantiated. We now instantiate
all templates, and add explanatory comments.
@github-actions
Copy link

github-actions bot commented Mar 2, 2023

🤖 Beep Boop! Matrix Testing for this PR has been initiated. Please check back later for results.

💡 If you do not hear back from me please check my status! I will report even if this PR does not contain files eligible for matrix testing.

1 similar comment
@github-actions
Copy link

github-actions bot commented Mar 2, 2023

🤖 Beep Boop! Matrix Testing for this PR has been initiated. Please check back later for results.

💡 If you do not hear back from me please check my status! I will report even if this PR does not contain files eligible for matrix testing.

@jsinglet
Copy link
Contributor

jsinglet commented Mar 2, 2023

🤖 Beep Boop! gcc/c/x86_64 Matrix Testing for this PR has been completed but I didn't find anything to test!

@jsinglet
Copy link
Contributor

jsinglet commented Mar 2, 2023

🤖 Beep Boop! clang/c/x86_64 Matrix Testing for this PR has been completed but I didn't find anything to test!

@jsinglet
Copy link
Contributor

jsinglet commented Mar 2, 2023

🤖 Beep Boop! gcc/c/x86_64 Matrix Testing for this PR has been completed but I didn't find anything to test!

@jsinglet
Copy link
Contributor

jsinglet commented Mar 2, 2023

🤖 Beep Boop! clang/c/x86_64 Matrix Testing for this PR has been completed but I didn't find anything to test!

@jsinglet
Copy link
Contributor

jsinglet commented Mar 2, 2023

🤖 Beep Boop! gcc/cpp/x86_64 Matrix Testing for this PR has been completed. See below for the results!


PACKAGE              : Templates
TEST_PASS            : True
QUERY                : NameNotReferredUsingAQualifiedIdOrThisAudit
RULE                 : M14-6-1
COMPILE_PASS         : True
TEST_DIFFERENCE      : 
COMPILE_ERROR_OUTPUT : 
SUITE                : AUTOSAR

PACKAGE              : Templates
TEST_PASS            : True
QUERY                : NameNotReferredUsingAQualifiedIdOrThis
RULE                 : M14-6-1
COMPILE_PASS         : True
TEST_DIFFERENCE      : 
COMPILE_ERROR_OUTPUT : 
SUITE                : AUTOSAR


@jsinglet
Copy link
Contributor

jsinglet commented Mar 2, 2023

🤖 Beep Boop! clang/cpp/x86_64 Matrix Testing for this PR has been completed. See below for the results!


COMPILE_ERROR_OUTPUT : 
TEST_PASS            : True
SUITE                : AUTOSAR
TEST_DIFFERENCE      : 
PACKAGE              : Templates
COMPILE_PASS         : True
QUERY                : NameNotReferredUsingAQualifiedIdOrThis
RULE                 : M14-6-1

COMPILE_ERROR_OUTPUT : 
TEST_PASS            : True
SUITE                : AUTOSAR
TEST_DIFFERENCE      : 
PACKAGE              : Templates
COMPILE_PASS         : True
QUERY                : NameNotReferredUsingAQualifiedIdOrThisAudit
RULE                 : M14-6-1


@jsinglet
Copy link
Contributor

jsinglet commented Mar 2, 2023

🤖 Beep Boop! clang/cpp/x86_64 Matrix Testing for this PR has been completed. See below for the results!


TEST_PASS            : True
COMPILE_ERROR_OUTPUT : 
SUITE                : AUTOSAR
QUERY                : NameNotReferredUsingAQualifiedIdOrThis
PACKAGE              : Templates
COMPILE_PASS         : True
RULE                 : M14-6-1
TEST_DIFFERENCE      : 

TEST_PASS            : True
COMPILE_ERROR_OUTPUT : 
SUITE                : AUTOSAR
QUERY                : NameNotReferredUsingAQualifiedIdOrThisAudit
PACKAGE              : Templates
COMPILE_PASS         : True
RULE                 : M14-6-1
TEST_DIFFERENCE      : 


@jsinglet
Copy link
Contributor

jsinglet commented Mar 2, 2023

🤖 Beep Boop! gcc/cpp/x86_64 Matrix Testing for this PR has been completed. See below for the results!


TEST_DIFFERENCE      : 
COMPILE_PASS         : True
COMPILE_ERROR_OUTPUT : 
RULE                 : M14-6-1
PACKAGE              : Templates
QUERY                : NameNotReferredUsingAQualifiedIdOrThis
TEST_PASS            : True
SUITE                : AUTOSAR

TEST_DIFFERENCE      : 
COMPILE_PASS         : True
COMPILE_ERROR_OUTPUT : 
RULE                 : M14-6-1
PACKAGE              : Templates
QUERY                : NameNotReferredUsingAQualifiedIdOrThisAudit
TEST_PASS            : True
SUITE                : AUTOSAR


@jsinglet
Copy link
Contributor

jsinglet commented Mar 2, 2023

🤖 Beep Boop! Matrix Testing for this PR has been completed. If no reports were posted it means this PR does not contain things that need matrix testing!

1 similar comment
@jsinglet
Copy link
Contributor

jsinglet commented Mar 2, 2023

🤖 Beep Boop! Matrix Testing for this PR has been completed. If no reports were posted it means this PR does not contain things that need matrix testing!

@knewbury01 knewbury01 enabled auto-merge March 2, 2023 15:11
Copy link
Contributor

@knewbury01 knewbury01 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for addressing those comments! looks good!

@knewbury01 knewbury01 merged commit 27dd533 into main Mar 2, 2023
@knewbury01 knewbury01 deleted the lcartey/m14-6-1 branch March 2, 2023 15:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

Successfully merging this pull request may close these issues.

M14-6-1: Performance issue and missing case
3 participants