Page MenuHomePhabricator
Feed Advanced Search

Jul 6 2020

gamesh411 added inline comments to D83190: [analyzer] Model iterator random incrementation symmetrically.
Jul 6 2020, 1:19 AM · Restricted Project
gamesh411 updated the diff for D83190: [analyzer] Model iterator random incrementation symmetrically.

remove unrelated comment formatting

Jul 6 2020, 12:06 AM · Restricted Project
gamesh411 added a reviewer for D83190: [analyzer] Model iterator random incrementation symmetrically: baloghadamsoftware.
Jul 6 2020, 12:04 AM · Restricted Project
Herald added a project to D83190: [analyzer] Model iterator random incrementation symmetrically: Restricted Project.
Jul 6 2020, 12:02 AM · Restricted Project

Jul 1 2020

gamesh411 committed rG52f653236600: [analyzer][CrossTU] Lower CTUImportThreshold default value (authored by gamesh411).
[analyzer][CrossTU] Lower CTUImportThreshold default value
Jul 1 2020, 1:35 AM
gamesh411 closed D82561: [analyzer][CrossTU] Lower CTUImportThreshold default value.
Jul 1 2020, 1:35 AM · Restricted Project

Jun 30 2020

gamesh411 accepted D82185: [Analyzer] Handle pointer implemented as iterators in iterator checkers.

Thanks, it LGTM now!

Jun 30 2020, 9:12 AM · Restricted Project
gamesh411 accepted D81750: [analyzer] Don't allow hidden checkers to emit diagnostics.

LGTM if nobody is against moving the checker. I will accept nevertheless.

Jun 30 2020, 3:14 AM · Restricted Project
gamesh411 added a comment to D82585: [analyzer][NFC] Move the data structures from CheckerRegistry to the Core library.

Good job, massive props to you for such an overhaul.

Jun 30 2020, 3:14 AM · Restricted Project

Jun 26 2020

gamesh411 accepted D82568: [clang][CrossTU] Invalidate parent map after get cross TU definition..

I have found this in ASTContext.h:

// A traversal scope limits the parts of the AST visible to certain analyses.
   // RecursiveASTVisitor::TraverseAST will only visit reachable nodes, and
   // getParents() will only observe reachable parent edges.
   //
   // The scope is defined by a set of "top-level" declarations.
   // Initially, it is the entire TU: {getTranslationUnitDecl()}.
   // Changing the scope clears the parent cache, which is expensive to rebuild.
   std::vector<Decl *> getTraversalScope() const { return TraversalScope; }

The setTraversalScope resets the parentmap in ASTContext.cpp:

void ASTContext::setTraversalScope(const std::vector<Decl *> &TopLevelDecls) {
   TraversalScope = TopLevelDecls;
   getParentMapContext().clear();
 }
Jun 26 2020, 12:02 PM · Restricted Project
gamesh411 added a comment to D82561: [analyzer][CrossTU] Lower CTUImportThreshold default value.

The analyzer inlines small functions within a TU regardless of the thresholds. I think it would be sensible to do the same across TUs in the case we don't do this already.

That means perform a get CTU definition if the TU to be imported (where the function comes from) is small? Otherwise it does not matter how small the function is, it can result in importing of large amount of code. Determining parameters (like "smallness") of the TU is probably not simple.

Jun 26 2020, 1:36 AM · Restricted Project

Jun 25 2020

gamesh411 updated the diff for D82561: [analyzer][CrossTU] Lower CTUImportThreshold default value.

update test value

Jun 25 2020, 8:33 AM · Restricted Project
gamesh411 created D82561: [analyzer][CrossTU] Lower CTUImportThreshold default value.
Jun 25 2020, 8:33 AM · Restricted Project

Jun 24 2020

gamesh411 accepted D82288: [analyzer][StdLibraryFunctionsChecker] Add POSIX file handling functions.

I see a lot of NoEvalCall, but I wonder whether modifying errno warrants this. Shouldn't we have a alongside NoEvalCall and EvalCallAsPure an EvalCallAsPureButInvalidateErrno invalidation kind?

Also, I'm kind of worried by this checker taking on the responsibility of modeling functions by EvalCall, except for a few functions that it also models, but not with EvalCall, it feels clunky. I remember this one time when I [[ https://reviews.llvm.org/D68165?id=222257#inline-612891 | wanted to model alloca()]], which has a __builtin_alloca variant as well, and I spent a good couple hours figuring out that why the descpription {CDF_MaybeBuiltin, "alloca", 1} was causing crashes. Turns out that BuiltinFunctionsChecker EvalCalled the builtin version, but not the other.

In general, I don't think we have a well established stance on whether we use EvalCall, or PreCall+PostCall, and what roles do batch modeling checkers like StdLibraryFunctionsChecker, GenericTaintChecker and BuiltinFunctionsChecker should play alongside mode sophisticated modeling checkers like CStringModeling, DynamicMemoryModeling and StreamChecker. I bet some of us have ideas how this is supposed to be done, but I feel like there is no unified, agreed upon road we're moving towards. This problem came up in D69662 as well. D75612 introduces EvalCalls to StreamChecker, and I was puzzled why this hasn't been a thing in all similar chekers like MallocChecker, which I commented on in D81315#2079457.

It would also be great if we could enforce that no two checkers evaluate the same function.

None of what I said is a problem introduced by this specific patch, but it definitely amplifies it with the modeling of functions such as strncasecmp (should be the responsibility of CStringModeling), strdup (MallocChecker) and popen (StreamChecker). I'd like to see something set in stone, such as what you're eluding to in D75612#inline-690087, that the role of this checker is to model numerical (null-ness, ranges, etc) pre- and post conditions for standard functions, nothing less, nothing more, and it is technically an error to reimplement this in other checkers. If that is the goal, I guess we have to implement tests for individual functions added in this patch to make sure that these conditions aren't already checked elsewhere.

I didn't read this patch line-by-line, but I trust that its okay if Endre did so.

Jun 24 2020, 8:04 AM · Restricted Project
gamesh411 accepted D82385: [Analyzer] Fix errors in iterator modeling.
Jun 24 2020, 6:59 AM · Restricted Project
gamesh411 added a comment to D82288: [analyzer][StdLibraryFunctionsChecker] Add POSIX file handling functions.

Good job, I really fancy the Summary syntax 👍

Jun 24 2020, 2:40 AM · Restricted Project
gamesh411 added inline comments to D82185: [Analyzer] Handle pointer implemented as iterators in iterator checkers.
Jun 24 2020, 1:02 AM · Restricted Project
gamesh411 added a comment to D82385: [Analyzer] Fix errors in iterator modeling.

Hey! See my inline comments, but after those and a quick clang-format, it looks good.

Jun 24 2020, 1:02 AM · Restricted Project

Jun 18 2020

gamesh411 added inline comments to D77493: [clang-tidy] Add do-not-refer-atomic-twice check.
Jun 18 2020, 11:27 AM · Restricted Project, Restricted Project

Jun 17 2020

gamesh411 added a comment to D75229: [clang-tidy] Add signal-in-multithreaded-program check.

Minor nits inline. Good job, I am not entitled to accept it, but LGTM!

Jun 17 2020, 2:39 AM · Restricted Project, Restricted Project
gamesh411 added inline comments to D75229: [clang-tidy] Add signal-in-multithreaded-program check.
Jun 17 2020, 2:07 AM · Restricted Project, Restricted Project

Jun 11 2020

gamesh411 committed rG5cc18516c483: [analyzer] On-demand parsing capability for CTU (authored by gamesh411).
[analyzer] On-demand parsing capability for CTU
Jun 11 2020, 2:26 AM
gamesh411 added a comment to D75665: [analyzer] On-demand parsing capability for CTU.

This breaks check-clang on mac: http://45.33.8.238/mac/15258/step_7.txt

Please take a look, and revert for now if it takes a while to fix.

Jun 11 2020, 2:26 AM · Restricted Project

Jun 10 2020

gamesh411 committed rG435b458ad0a4: Revert "[analyzer] On-demand parsing capability for CTU" (authored by gamesh411).
Revert "[analyzer] On-demand parsing capability for CTU"
Jun 10 2020, 9:19 AM
gamesh411 added a reverting change for rG97e07d0c352c: [analyzer] On-demand parsing capability for CTU: rG435b458ad0a4: Revert "[analyzer] On-demand parsing capability for CTU".
Jun 10 2020, 9:19 AM
gamesh411 committed rG97e07d0c352c: [analyzer] On-demand parsing capability for CTU (authored by gamesh411).
[analyzer] On-demand parsing capability for CTU
Jun 10 2020, 4:53 AM
gamesh411 committed rGc64077949448: Revert "[analyzer] On-demand parsing capability for CTU" (authored by gamesh411).
Revert "[analyzer] On-demand parsing capability for CTU"
Jun 10 2020, 2:09 AM
gamesh411 added a reverting change for rG020815fafd15: [analyzer] On-demand parsing capability for CTU: rGc64077949448: Revert "[analyzer] On-demand parsing capability for CTU".
Jun 10 2020, 2:09 AM
gamesh411 committed rG020815fafd15: [analyzer] On-demand parsing capability for CTU (authored by gamesh411).
[analyzer] On-demand parsing capability for CTU
Jun 10 2020, 12:30 AM
gamesh411 closed D75665: [analyzer] On-demand parsing capability for CTU.
Jun 10 2020, 12:30 AM · Restricted Project

Jun 9 2020

gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

add ambiguity checking during invocation list parsing

Jun 9 2020, 2:22 PM · Restricted Project
gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

fix typo

Jun 9 2020, 1:14 PM · Restricted Project
gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

add ambiguous invocation list test case

Jun 9 2020, 1:14 PM · Restricted Project
gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

use consumeError in test

Jun 9 2020, 11:32 AM · Restricted Project
gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

Fix test case, and reorder warning

Jun 9 2020, 7:05 AM · Restricted Project
gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

Extend index file format
Update documentation

Jun 9 2020, 2:09 AM · Restricted Project

May 29 2020

gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

Fix documentation and commit message

May 29 2020, 2:08 AM · Restricted Project

May 27 2020

gamesh411 added a comment to D75665: [analyzer] On-demand parsing capability for CTU.

The remaining documentation and test changes are also underway.

May 27 2020, 4:18 AM · Restricted Project
gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

Update functional changes, documentation update incoming

May 27 2020, 3:44 AM · Restricted Project

May 20 2020

gamesh411 accepted D78097: [analyzer][RetainCount] Remove the CheckOSObject option.

I have no authority whatsoever, but if there is no breakage in buildbots, then it means explicitly providing CheckOSObject param is not really valid use-case. I vote for this cleanup.

May 20 2020, 7:01 AM · Restricted Project

May 11 2020

gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

Implement a solution without a dependency on clangTooling

May 11 2020, 3:40 PM · Restricted Project
gamesh411 accepted D79330: [Analyzer][VLASizeChecker] Check for VLA size overflow..

With the minor adjustment in the one test case this LGTM.

May 11 2020, 1:02 AM · Restricted Project

Apr 28 2020

gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

Remove arch target from another invocation

Apr 28 2020, 12:29 AM · Restricted Project

Apr 27 2020

gamesh411 added inline comments to D75665: [analyzer] On-demand parsing capability for CTU.
Apr 27 2020, 7:29 AM · Restricted Project
gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

[NFC] Fix arcanist double commit revisioning

Apr 27 2020, 6:57 AM · Restricted Project
gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

Remove platform constraint from test file

Apr 27 2020, 6:57 AM · Restricted Project
gamesh411 reopened D75665: [analyzer] On-demand parsing capability for CTU.

Non-linux buildbots were utterly broken :( . Trying to fix them...

Apr 27 2020, 6:57 AM · Restricted Project
gamesh411 committed rG811c0c9eb462: [analyzer] On-demand parsing capability for CTU (authored by gamesh411).
[analyzer] On-demand parsing capability for CTU
Apr 27 2020, 2:39 AM
gamesh411 closed D75665: [analyzer] On-demand parsing capability for CTU.

I am landing this. Thanks for the reviews @martong @balazske @xazax.hun @whisperity !

Apr 27 2020, 2:05 AM · Restricted Project
gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

Fix index error enum declaration

Apr 27 2020, 1:33 AM · Restricted Project
gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

Reword enum value

Apr 27 2020, 12:29 AM · Restricted Project

Apr 25 2020

gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

Fix issues in documentation

Apr 25 2020, 3:40 AM · Restricted Project
gamesh411 added a comment to D75665: [analyzer] On-demand parsing capability for CTU.

@whisperity Thanks for the review :3

Apr 25 2020, 3:40 AM · Restricted Project

Apr 20 2020

gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

Update user documentation

Apr 20 2020, 1:34 AM · Restricted Project

Apr 16 2020

gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

Add ambiguous compilation database test case

Apr 16 2020, 11:08 AM · Restricted Project
gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

Rebase and update the number of analyzer options

Apr 16 2020, 1:33 AM · Restricted Project

Apr 15 2020

gamesh411 added inline comments to D75665: [analyzer] On-demand parsing capability for CTU.
Apr 15 2020, 5:06 PM · Restricted Project
gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

Implement review suggestions

Apr 15 2020, 5:06 PM · Restricted Project
gamesh411 added inline comments to D75665: [analyzer] On-demand parsing capability for CTU.
Apr 15 2020, 5:06 PM · Restricted Project
gamesh411 added a comment to D75665: [analyzer] On-demand parsing capability for CTU.

Answered most review comments. Thanks for the reviewers @balazske, @martong so far.
The question of absolute path policy is still up for debate.

Apr 15 2020, 2:18 PM · Restricted Project
gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

Reorganize test code to overcome testing infrastructure limitations

Apr 15 2020, 1:36 AM · Restricted Project

Apr 9 2020

gamesh411 added a comment to D75665: [analyzer] On-demand parsing capability for CTU.

As the CTUDir string prefix is only needed in case of the old approach, I have refactored the external definition mapping storage to NOT include that.

Both ctu-main.c and ctu-on-demand-parsing.c use the -analyzer-config ctu-dir=%t/ctudir2 setting. So it is not clear for me why we don't need the prefix. I believe we still need that directory setting otherwise where could we find the externalDefMap file?

Apr 9 2020, 2:08 AM · Restricted Project
gamesh411 added a comment to D75665: [analyzer] On-demand parsing capability for CTU.

The warning below suggests that we parse the ctu-other.c file (and presumably every file) as a C++ file, even if it should be parsed as a C file. Perhaps the invocation of the parser is missing some setting? Also, could this be the reason why on-the-fly and pch driven ctu gives different statistics?

warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/clang/test/Analysis/Inputs/ctu-other.c:47:26: error: 'DataType' cannot be defined in a parameter type
int structInProto(struct DataType {int a;int b; } * d) {
                         ^
1 error generated.
Error while processing /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/clang/test/Analysis/Inputs/ctu-other.c.
Apr 9 2020, 2:08 AM · Restricted Project
gamesh411 updated the diff for D75665: [analyzer] On-demand parsing capability for CTU.

Refactored the test
Copying the compile_commands.json in case of test for C files
results in the extdef mapping tool finding the correct compiler
flags for the C to be imported.

Apr 9 2020, 1:36 AM · Restricted Project

Apr 3 2020

gamesh411 added inline comments to D77229: [Analyzer][NFC] Avoid handling of LazyCompundVals in IteratorModeling.
Apr 3 2020, 2:07 AM · Restricted Project

Mar 5 2020

gamesh411 added a reviewer for D75665: [analyzer] On-demand parsing capability for CTU: xazax.hun.
Mar 5 2020, 2:46 AM · Restricted Project
gamesh411 updated the summary of D75665: [analyzer] On-demand parsing capability for CTU.
Mar 5 2020, 2:46 AM · Restricted Project
gamesh411 added a comment to D75665: [analyzer] On-demand parsing capability for CTU.

This patch adds an alternative way of loading ASTs to provide the CTU definitions needed during analysis.
The additional approach is to use Tooling with a user-provided compile_commands.json,
and look up the needed file from the output of the ext-def-mapping tool (which is now used for both approaches).

Mar 5 2020, 2:46 AM · Restricted Project
gamesh411 created D75665: [analyzer] On-demand parsing capability for CTU.
Mar 5 2020, 1:41 AM · Restricted Project

Feb 27 2020

gamesh411 added inline comments to D74973: [analyzer] StdLibraryFunctionsChecker refactor w/ inheritance.
Feb 27 2020, 3:15 AM · Restricted Project
gamesh411 added inline comments to D73898: [analyzer] StdLibraryFunctionsChecker: Add argument constraints.
Feb 27 2020, 1:12 AM · Restricted Project

Jan 6 2020

gamesh411 added a comment to D71510: [clang][checkers] Added new checker 'error-return-checker'..

Great job, this seems to be progressing nicely! please see my comments inline.

Jan 6 2020, 7:20 AM · Restricted Project

Oct 30 2019

gamesh411 updated the diff for D69602: [analyzer] Test case for lambda capture by value modelling.
  • Remove link reference from commit message
  • Remove superfluous semicolons left in the code
Oct 30 2019, 7:56 AM · Restricted Project
gamesh411 updated the summary of D69602: [analyzer] Test case for lambda capture by value modelling.
Oct 30 2019, 7:56 AM · Restricted Project
gamesh411 updated the diff for D69602: [analyzer] Test case for lambda capture by value modelling.
  • Add capture by reference test
  • Add another class to ensure reachability inside function call is independent of each other in the first 2 test cases
Oct 30 2019, 7:10 AM · Restricted Project

Oct 29 2019

gamesh411 created D69602: [analyzer] Test case for lambda capture by value modelling.
Oct 29 2019, 8:02 PM · Restricted Project

Oct 22 2019

gamesh411 added a comment to D69318: [analyzer] Add SufficientSizeArrayIndexingChecker.

Please feel free to add more reviewers.

Oct 22 2019, 12:21 PM · Restricted Project
gamesh411 created D69318: [analyzer] Add SufficientSizeArrayIndexingChecker.
Oct 22 2019, 12:21 PM · Restricted Project
gamesh411 added a reviewer for D69318: [analyzer] Add SufficientSizeArrayIndexingChecker: Szelethus.
Oct 22 2019, 12:21 PM · Restricted Project

Aug 14 2019

gamesh411 added a comment to D66049: [analyzer] PR41729: Fix some false positives and improve strlcat and strlcpy modeling.

Nice improvements! It was a good catch that a substantial part of the checker could be cut out. Accurate modelling of CString and related API-s is really important, and this is a good step in that direction.
I would test this on a larger codebase as well before committing, but LGTM otherwise.

Aug 14 2019, 3:00 AM · Restricted Project
gamesh411 accepted D66014: [analyzer] Avoid unnecessary enum range check on LValueToRValue casts.

@chrish_ericsson_atx Thanks for fixing this! Your help is much appreciated :)

Aug 14 2019, 2:17 AM · Restricted Project, Restricted Project

Aug 6 2019

gamesh411 accepted D65573: Add User docs for ASTImporter.
Aug 6 2019, 1:32 AM · Restricted Project, Restricted Project

Aug 5 2019

gamesh411 committed rL367829: [CrossTU][NFCI] Refactor loadExternalAST function.
[CrossTU][NFCI] Refactor loadExternalAST function
Aug 5 2019, 4:06 AM
gamesh411 closed D64753: [CrossTU][NFCI] Refactor loadExternalAST function.
Aug 5 2019, 4:06 AM · Restricted Project, Restricted Project
gamesh411 updated the diff for D64753: [CrossTU][NFCI] Refactor loadExternalAST function.
  • Remove unused member Limit
  • Rebase to current master
Aug 5 2019, 3:56 AM · Restricted Project, Restricted Project

Aug 2 2019

gamesh411 added a comment to D65573: Add User docs for ASTImporter.

Lovely documentation with practical use-cases!
I left a few inline remarks.
Also wouldn't it be nice to have a section which introduces the -ast-merge command-line option. It would be helpful to see an example where a PCH is dumped and merged into another TU. You could mention, that this can be used to debug ASTImporter functionality.
Cheers!

Aug 2 2019, 5:28 AM · Restricted Project, Restricted Project

Aug 1 2019

gamesh411 updated the diff for D64753: [CrossTU][NFCI] Refactor loadExternalAST function.

Specify the exact meaning of successful storage

Aug 1 2019, 5:27 AM · Restricted Project, Restricted Project

Jul 30 2019

gamesh411 added a comment to D64753: [CrossTU][NFCI] Refactor loadExternalAST function.

Updated the revision.
I find this solution definitely more compact with responsibilities more separated. One more thing that comes to mind is that maybe the whole explicit passing of CTUDir and IndexName arguments is a bit verbose. What are your thoughts about these being injected earlier than the query operations (eg.: in getASTUnitForFunction and getFileForFunction)?

Jul 30 2019, 1:27 AM · Restricted Project, Restricted Project
gamesh411 updated the diff for D64753: [CrossTU][NFCI] Refactor loadExternalAST function.
  • Merge RAII class
  • Update comments
Jul 30 2019, 1:22 AM · Restricted Project, Restricted Project

Jul 24 2019

gamesh411 added a comment to D64753: [CrossTU][NFCI] Refactor loadExternalAST function.

Thanks for pointing out these issues. Most of them are agreed. Merging the RAII counter with the threshold checker class, however, does not seem like a good decision for me. What would be the benefits of merging the two?

Jul 24 2019, 2:48 AM · Restricted Project, Restricted Project

Jul 23 2019

gamesh411 updated the diff for D64753: [CrossTU][NFCI] Refactor loadExternalAST function.

Too much autoformat fixed

Jul 23 2019, 3:36 PM · Restricted Project, Restricted Project
gamesh411 updated the diff for D64753: [CrossTU][NFCI] Refactor loadExternalAST function.

Refactor functionality into local classes

Jul 23 2019, 3:24 PM · Restricted Project, Restricted Project
gamesh411 abandoned D59934: Compare SourceLocations from different TUs by FileID.

32f220c5fbe5 is the more sophisticated solution to the problem.

Jul 23 2019, 2:51 AM · Restricted Project
gamesh411 abandoned D27918: [analyzer] OStreamChecker.

There are multiple new additions to stream formatters, and this patch is way too old. I may consider creating a new checker like this with an extended feature set later.

Jul 23 2019, 2:47 AM
gamesh411 added inline comments to D61848: [ZORG] Add new builder for CTU analysis.
Jul 23 2019, 2:33 AM
gamesh411 updated the diff for D61848: [ZORG] Add new builder for CTU analysis.
  • Add implementation rationale, fix forgotten build-step
Jul 23 2019, 2:32 AM

Jul 15 2019

gamesh411 created D64753: [CrossTU][NFCI] Refactor loadExternalAST function.
Jul 15 2019, 9:27 AM · Restricted Project, Restricted Project
gamesh411 abandoned D64748: [CTU] Refactor threshold checking.
Jul 15 2019, 9:14 AM · Restricted Project
gamesh411 updated the diff for D64748: [CTU] Refactor threshold checking.

Incremental change

Jul 15 2019, 9:12 AM · Restricted Project
gamesh411 updated the diff for D64748: [CTU] Refactor threshold checking.

Incremental change

Jul 15 2019, 9:12 AM · Restricted Project