Page MenuHomePhabricator

Please use GitHub pull requests for new patches. Phabricator shutdown timeline

gribozavr2 (Dmitri Gribenko)
User

Projects

User does not belong to any projects.

User Details

User Since
Oct 31 2019, 10:15 AM (204 w, 4 d)

Recent Activity

Tue, Sep 19

gribozavr2 accepted D158532: Anonymous unions should be transparent wrt `[[clang::trivial_abi]]`..
Tue, Sep 19, 11:29 AM · Restricted Project, Restricted Project

Wed, Sep 6

gribozavr2 added a comment to D159198: [DAG] Fold (shl (sext (add_nsw x, c1)), c2) -> (add (shl (sext x), c2), c1 << c2).

Sorry, this change breaks llvm-project/llvm/test/Transforms/InferAddressSpaces/AMDGPU/flat_atomic.ll:

Wed, Sep 6, 2:28 AM · Restricted Project, Restricted Project

Aug 10 2023

gribozavr2 added a comment to D157636: [lldb][test] Remove tests relying on deprecated std::char_traits specializations.

Thank you!

Aug 10 2023, 1:09 PM · Restricted Project, Restricted Project
gribozavr2 added inline comments to D157058: [libc++] Remove generic char_traits implementation.
Aug 10 2023, 8:53 AM · Restricted Project, Restricted Project
gribozavr2 added a comment to D157058: [libc++] Remove generic char_traits implementation.

In addition to breaking LLDB's build itself, this change also broke the following test: https://github.com/llvm/llvm-project/blob/main/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string_view/main.cpp that uses std::basic_string<unsigned char> - is it not allowed?

Aug 10 2023, 6:25 AM · Restricted Project, Restricted Project

Aug 4 2023

gribozavr2 accepted D155895: Anonymous unions should be transparent wrt `[[clang::trivial_abi]]`..
Aug 4 2023, 1:35 PM · Restricted Project, Restricted Project
gribozavr2 added inline comments to D156728: [Sema] Ignore nullability qualifiers when deducing types for `auto` and `__auto_type`.
Aug 4 2023, 5:01 AM · Restricted Project, Restricted Project

Jul 31 2023

gribozavr2 added a comment to D156728: [Sema] Ignore nullability qualifiers when deducing types for `auto` and `__auto_type`.

I understand that this is an expedient fix that silences the warning. However, the fundamental problem is the simplistic implementation of the warning (that it is not flow-sensitive), not the inference of nullability. That is, when we are removing nullability qualifiers, we don't know whether there was a check or not. So while this change removes some false positives, it also removes some true positives.

Jul 31 2023, 12:57 PM · Restricted Project, Restricted Project

Jul 22 2023

gribozavr2 added a comment to D155895: Anonymous unions should be transparent wrt `[[clang::trivial_abi]]`..

@lukasza I think you forgot to upload an updated version of the patch.

Jul 22 2023, 5:25 PM · Restricted Project, Restricted Project

Jul 21 2023

gribozavr2 added inline comments to D155890: [clang-tidy] Add folly::Optional to unchecked-optional-access.
Jul 21 2023, 10:53 AM · Restricted Project, Restricted Project, Restricted Project
gribozavr2 added a comment to D155890: [clang-tidy] Add folly::Optional to unchecked-optional-access.

This should be a configuration option, we should not hardcore project-specific things in the source code.

I agree, but we already are hardcoding specific types -- I think this is a separate (and valid) critique of the design. I'd propose filing an issue on the github tracker and we can follow up there. I, for one, would love to review such a change but don't have the time to write it.

Is moving these values to config an appropriate task for somebody like me new to working on clang-tidy? I'd be happy to merge this and then try the transition to a config assuming there's some similar examples I can borrow from elsewhere in the codebase.

Jul 21 2023, 10:32 AM · Restricted Project, Restricted Project, Restricted Project
gribozavr2 accepted D155922: [clang][dataflow] Eliminate `ReferenceValue`..
Jul 21 2023, 10:25 AM · Restricted Project, Restricted Project
gribozavr2 added inline comments to D155895: Anonymous unions should be transparent wrt `[[clang::trivial_abi]]`..
Jul 21 2023, 7:02 AM · Restricted Project, Restricted Project

Jul 20 2023

gribozavr2 accepted D155890: [clang-tidy] Add folly::Optional to unchecked-optional-access.

Thank you! Do you have commit access or do you need me to commit this patch for you?

Jul 20 2023, 4:15 PM · Restricted Project, Restricted Project, Restricted Project

Jul 17 2023

gribozavr2 added a comment to D155506: [clang][JumpDiagnostics] use StmtClass rather than dyn_cast chain NFC.

I'm not sure it is actually an anti-pattern. dyn_cast will transparently handle subclasses, should any be added in the future, but a switch wouldn't.

Jul 17 2023, 4:16 PM · Restricted Project, Restricted Project

Jul 13 2023

gribozavr2 accepted D155202: [clang][dataflow] Simplify implementation of `transferStdForwardCall()` in optional check..
Jul 13 2023, 7:28 AM · Restricted Project, Restricted Project

Jul 11 2023

gribozavr2 accepted D154961: [clang][dataflow] Include fields initialized in an `InitListExpr` in `getModeledFields()`..
Jul 11 2023, 6:47 AM · Restricted Project, Restricted Project
gribozavr2 accepted D154952: [clang][dataflow] Various refactorings in TypeErasedDataflowAnalysisTest.cpp.
Jul 11 2023, 6:45 AM · Restricted Project, Restricted Project
gribozavr2 accepted D154948: [dataflow] improve determinism of generated SAT system.
Jul 11 2023, 4:39 AM · Restricted Project, Restricted Project
gribozavr2 accepted D154935: [clang][dataflow] Introduce `getFieldValue()` test helpers..
Jul 11 2023, 4:32 AM · Restricted Project, Restricted Project
gribozavr2 accepted D154934: [clang][dataflow] Use `IntegerValue` instead of `StructValue` in `ValueTest`..
Jul 11 2023, 4:26 AM · Restricted Project, Restricted Project

Jul 8 2023

gribozavr2 accepted D154597: [clang][dataflow] Various refactorings to UncheckedOptionalAccessModel..
Jul 8 2023, 9:21 PM · Restricted Project, Restricted Project
gribozavr2 accepted D154586: [clang][dataflow] Various changes to handling of modeled fields..
Jul 8 2023, 9:18 PM · Restricted Project, Restricted Project

Jul 7 2023

gribozavr2 added a comment to D130315: [BOLT][DWARF] Implement new mechanism for DWARFRewriter.

This commit introduces a null pointer dereference in a unit test, so I'm going to revert it together with all dependent commits:

Jul 7 2023, 4:55 AM · Restricted Project, Restricted Project

Jul 4 2023

gribozavr2 added inline comments to D154339: [clang][dataflow] Make `runDataflowReturnError()` a non-template function..
Jul 4 2023, 4:48 AM · Restricted Project, Restricted Project
gribozavr2 added inline comments to D154339: [clang][dataflow] Make `runDataflowReturnError()` a non-template function..
Jul 4 2023, 4:31 AM · Restricted Project, Restricted Project
gribozavr2 accepted D154421: [clang][dataflow] Add a test for a struct that is directly self-referential through a reference..
Jul 4 2023, 2:09 AM · Restricted Project, Restricted Project
gribozavr2 accepted D154420: [clang][dataflow] Model variables / fields / funcs used in default initializers..
Jul 4 2023, 2:08 AM · Restricted Project, Restricted Project

Jul 3 2023

gribozavr2 accepted D154339: [clang][dataflow] Make `runDataflowReturnError()` a non-template function..
Jul 3 2023, 12:51 PM · Restricted Project, Restricted Project
gribozavr2 added inline comments to D153006: [clang][dataflow] Perform deep copies in copy and move operations..
Jul 3 2023, 1:46 AM · Restricted Project, Restricted Project

Jun 30 2023

gribozavr2 accepted D153485: [dataflow] use true/false literals in formulas, rather than variables.
Jun 30 2023, 12:04 PM · Restricted Project, Restricted Project
gribozavr2 accepted D153488: [dataflow] HTMLLogger: meaningful names for flow condition variables.
Jun 30 2023, 11:51 AM · Restricted Project, Restricted Project
gribozavr2 accepted D153469: [dataflow] Replace most BoolValue subclasses with references to Formula (and AtomicBoolValue => Atom and BoolValue => Formula where appropriate).
Jun 30 2023, 11:49 AM · Restricted Project, Restricted Project
gribozavr2 accepted D153366: [dataflow] Add dedicated representation of boolean formulas.
Jun 30 2023, 10:50 AM · Restricted Project, Restricted Project
gribozavr2 accepted D153805: Expose DataflowAnalysisContext.querySolver()..
Jun 30 2023, 9:52 AM · Restricted Project, Restricted Project

Jun 28 2023

gribozavr2 accepted D153960: [clang][dataflow] Don't crash when creating pointers to members..
Jun 28 2023, 8:01 AM · Restricted Project, Restricted Project
gribozavr2 accepted D153852: [clang][dataflow] Initialize fields of anonymous records correctly..
Jun 28 2023, 5:21 AM · Restricted Project, Restricted Project
gribozavr2 accepted D153854: [clang][dataflow] Make `getThisPointeeStorageLocation()` return an `AggregateStorageLocation`..
Jun 28 2023, 5:18 AM · Restricted Project, Restricted Project
gribozavr2 requested changes to D153960: [clang][dataflow] Don't crash when creating pointers to members..

Using PointerValue to model pointers to data members does not look right to me, because a pointer to data member is an offset within an object that we apply this pointer to, it is not a specific storage location.

Jun 28 2023, 4:50 AM · Restricted Project, Restricted Project

Jun 27 2023

gribozavr2 accepted D153908: [dataflow] Use consistent, symmetrical, non-mutating erased signature for join().
Jun 27 2023, 3:55 PM · Restricted Project, Restricted Project

Jun 23 2023

gribozavr2 added a comment to D153491: [dataflow] Avoid copying environment.

LGTM

Jun 23 2023, 6:04 PM · Restricted Project, Restricted Project
gribozavr2 accepted D153674: [dataflow] Disallow implicit copy of Environment, use fork() instead.
Jun 23 2023, 5:53 PM · Restricted Project, Restricted Project
gribozavr2 accepted D153476: [dataflow] document & test determinism of formula structure.
Jun 23 2023, 5:13 PM · Restricted Project, Restricted Project
gribozavr2 accepted D153584: [dataflow] Make SAT solver deterministic.
Jun 23 2023, 3:21 AM · Restricted Project, Restricted Project
gribozavr2 added inline comments to D153476: [dataflow] document & test determinism of formula structure.
Jun 23 2023, 2:40 AM · Restricted Project, Restricted Project
gribozavr2 added inline comments to D153476: [dataflow] document & test determinism of formula structure.
Jun 23 2023, 2:39 AM · Restricted Project, Restricted Project

Jun 21 2023

gribozavr2 accepted D153409: [clang][dataflow] Add a test that we can access fields of anonymous records..
Jun 21 2023, 5:52 AM · Restricted Project, Restricted Project

Jun 15 2023

gribozavr2 accepted D152813: [clang][dataflow] Create `Value`s for integer literals..
Jun 15 2023, 4:50 PM · Restricted Project, Restricted Project
gribozavr2 accepted D152813: [clang][dataflow] Create `Value`s for integer literals..
Jun 15 2023, 5:49 AM · Restricted Project, Restricted Project

Jun 14 2023

gribozavr2 added a comment to D152813: [clang][dataflow] Create `Value`s for integer literals..

We would expect analysis of this code to converge too -- right?

Jun 14 2023, 3:24 AM · Restricted Project, Restricted Project
gribozavr2 added a comment to D152813: [clang][dataflow] Create `Value`s for integer literals..

It looks to me as if the values we're now newly producing for integer literals are causing non-convergence of the analysis on the for-loop.

Jun 14 2023, 2:54 AM · Restricted Project, Restricted Project

Jun 13 2023

gribozavr2 accepted D152813: [clang][dataflow] Create `Value`s for integer literals..
Jun 13 2023, 7:41 AM · Restricted Project, Restricted Project

Jun 12 2023

gribozavr2 added inline comments to D152732: [clang][dataflow] Support limits on the SAT solver to force timeouts..
Jun 12 2023, 12:15 PM · Restricted Project, Restricted Project
gribozavr2 accepted D152683: [clang][dataflow] Model pointer value for builtin functions..
Jun 12 2023, 3:15 AM · Restricted Project, Restricted Project

Jun 5 2023

gribozavr2 accepted D152144: [clang][dataflow] Use a `PointerValue` for `value` property in optional checker..
Jun 5 2023, 4:42 AM · Restricted Project, Restricted Project

May 30 2023

gribozavr2 retitled D151727: [clang][analyzer][NFC] Replace dyn_cast with cast in MemRegion::getMemorySpace from [clang] Replace dyn_cast with cast in MemRegion::getMemorySpace to [clang][analyzer][NFC] Replace dyn_cast with cast in MemRegion::getMemorySpace.
May 30 2023, 9:01 AM · Restricted Project, Restricted Project
gribozavr2 retitled D151725: [clang][analyzer][NFC] Move dyn_cast's into if statements for readability from [clang] Move dyn_cast's into if statements for readability to [clang][analyzer][NFC] Move dyn_cast's into if statements for readability.
May 30 2023, 9:01 AM · Restricted Project, Restricted Project
gribozavr2 retitled D151723: [clang][analyzer][NFC] Remove unnecessary FALLTHROUGH markers from [clang] Remove unnecessary FALLTHROUGH markers to [clang][analyzer][NFC] Remove unnecessary FALLTHROUGH markers.
May 30 2023, 9:01 AM · Restricted Project, Restricted Project
gribozavr2 retitled D151726: [clang][analyzer][NFC] Remove unnecessary casts around Allocate function calls from [clang] Remove unnecessary casts around Allocate function calls to [clang][analyzer][NFC] Remove unnecessary casts around Allocate function calls.
May 30 2023, 9:00 AM · Restricted Project, Restricted Project

May 26 2023

gribozavr2 accepted D151549: [clang][dataflow] Remove unnecessary `ASTContext` parameter from `ControlFlowContext::build` overload..
May 26 2023, 3:10 AM · Restricted Project, Restricted Project

May 24 2023

gribozavr2 added a comment to D150896: [libc++] Apply _LIBCPP_EXCLUDE_FROM_EXPLICIT_INSTANTIATION only in classes that we have instantiated externally.

Do you possibly have an explicit instantiation of __gnu_cxx::hash_map<std::string>? That would break things with this patch, and is most likely not supported.

Thanks for looking into this! Why would such a use case be unsupported?

http://eel.is/c++draft/requirements#namespace.std-5

May 24 2023, 1:20 AM · Restricted Project, Restricted Project

May 23 2023

gribozavr2 added a comment to D150896: [libc++] Apply _LIBCPP_EXCLUDE_FROM_EXPLICIT_INSTANTIATION only in classes that we have instantiated externally.

Do you possibly have an explicit instantiation of __gnu_cxx::hash_map<std::string>? That would break things with this patch, and is most likely not supported.

May 23 2023, 6:32 PM · Restricted Project, Restricted Project
gribozavr2 accepted D150776: [clang][dataflow] Use `Strict` accessors in comma operator and no-op cast..
May 23 2023, 4:29 AM · Restricted Project, Restricted Project
gribozavr2 added a comment to D151192: [clang-tidy] have bugprone-unchecked-optional-access check boost::optional usage.

The mock optional types in the unit test are just declarations of the API - they don't need any implementations (function or method bodies should be omitted). But the declarations of classes, methods, and functions should mirror the production header closely. There are many seemingly trivial choices one can make when designing an API for a complex type like optional - for example, the specific choice of constructor overload set members, choosing to implement an overload set as a set of concrete functions vs. one function template, SFINAE on any functions, additional defaulted template parameters that the user isn't supposed to set etc. These differences would be hardly noticeable for the majority of "boring" C++ code that uses an optional, but they can be detrimental to tooling's ability to identify calls to the relevant APIs.

May 23 2023, 4:22 AM · Restricted Project, Restricted Project, Restricted Project
gribozavr2 added a comment to D151192: [clang-tidy] have bugprone-unchecked-optional-access check boost::optional usage.

Could you change the tests to cover the new case? They are here: llvm-project/clang/unittests/Analysis/FlowSensitive/UncheckedOptionalAccessModelTest.cpp

May 23 2023, 2:10 AM · Restricted Project, Restricted Project, Restricted Project
gribozavr2 added reviewers for D151192: [clang-tidy] have bugprone-unchecked-optional-access check boost::optional usage: sgatev, ymandel.
May 23 2023, 2:07 AM · Restricted Project, Restricted Project, Restricted Project

May 22 2023

gribozavr2 added a comment to D151071: [clang][dataflow] Fix a null pointer crash in `computeBlockInputState()`..

LGTM too.

May 22 2023, 6:11 AM · Restricted Project, Restricted Project
gribozavr2 added a reviewer for D151071: [clang][dataflow] Fix a null pointer crash in `computeBlockInputState()`.: gribozavr2.
May 22 2023, 3:14 AM · Restricted Project, Restricted Project

May 15 2023

gribozavr2 accepted D150352: [clang][dataflow] Don't analyze templated declarations..
May 15 2023, 12:52 AM · Restricted Project, Restricted Project
gribozavr2 accepted D150352: [clang][dataflow] Don't analyze templated declarations..
May 15 2023, 12:40 AM · Restricted Project, Restricted Project

May 11 2023

gribozavr2 added inline comments to D150352: [clang][dataflow] Don't analyze templated declarations..
May 11 2023, 5:40 PM · Restricted Project, Restricted Project
gribozavr2 accepted D150352: [clang][dataflow] Don't analyze templated declarations..
May 11 2023, 12:54 PM · Restricted Project, Restricted Project

May 8 2023

gribozavr2 accepted D150071: [clang-tidy] Fix bugprone-assert-side-effect to actually give warnings.
May 8 2023, 9:44 AM · Restricted Project, Restricted Project

May 5 2023

gribozavr2 accepted D149869: [clang][dataflow] Remove deprecated pass-through APIs for DataflowAnalysisContext..
May 5 2023, 6:04 PM · Restricted Project, Restricted Project
gribozavr2 added inline comments to D142991: [clang-tidy] Add --fix-mode and --nolint-prefix options.
May 5 2023, 11:01 AM · Restricted Project, Restricted Project, Restricted Project

May 4 2023

gribozavr2 accepted D149838: [clang][dataflow] Eliminate `SkipPast::ReferenceThenPointer`..
May 4 2023, 4:56 PM · Restricted Project, Restricted Project
gribozavr2 added a comment to D149144: [clang][dataflow] Eliminate intermediate `ReferenceValue`s from `Environment::DeclToLoc`..

LGTM still.

May 4 2023, 2:20 PM · Restricted Project, Restricted Project

May 3 2023

gribozavr2 accepted D149640: [clang][dataflow] Change PruneTriviallyFalseEdges for building CFG.
May 3 2023, 4:18 AM · Restricted Project, Restricted Project

May 2 2023

gribozavr2 added inline comments to D149640: [clang][dataflow] Change PruneTriviallyFalseEdges for building CFG.
May 2 2023, 6:40 AM · Restricted Project, Restricted Project
gribozavr2 accepted D149640: [clang][dataflow] Change PruneTriviallyFalseEdges for building CFG.
May 2 2023, 4:06 AM · Restricted Project, Restricted Project
gribozavr2 added a comment to D149640: [clang][dataflow] Change PruneTriviallyFalseEdges for building CFG.

Is it testable? For example, can we show that we don't compute the program state for the program point "p" here:

May 2 2023, 3:02 AM · Restricted Project, Restricted Project

May 1 2023

gribozavr2 accepted D149464: [clang][dataflow] Expose DataflowAnalysisContext from DataflowEnvironment..
May 1 2023, 9:36 AM · Restricted Project, Restricted Project

Apr 25 2023

gribozavr2 accepted D149144: [clang][dataflow] Eliminate intermediate `ReferenceValue`s from `Environment::DeclToLoc`..
Apr 25 2023, 2:10 PM · Restricted Project, Restricted Project
gribozavr2 accepted D149151: [clang][dataflow][NFC] Remove `SkipPast` parameter from `getStorageLocation(const ValueDecl &)..
Apr 25 2023, 6:43 AM · Restricted Project, Restricted Project

Apr 24 2023

gribozavr2 accepted D148612: [clang][dataflow] Use existing accessors to check for copy and move assignment ops..
Apr 24 2023, 4:36 AM · Restricted Project, Restricted Project

Apr 18 2023

gribozavr2 accepted D148554: [dataflow] Extract arena for Value/StorageLocation out of DataflowAnalysisContext.
Apr 18 2023, 4:30 AM · Restricted Project, Restricted Project

Apr 17 2023

gribozavr2 accepted D148554: [dataflow] Extract arena for Value/StorageLocation out of DataflowAnalysisContext.
Apr 17 2023, 12:08 PM · Restricted Project, Restricted Project
gribozavr2 accepted D148344: [clang][dataflow] Refine matching of optional types to anchor at top level..
Apr 17 2023, 10:04 AM · Restricted Project, Restricted Project
gribozavr2 accepted D148377: [clang][dataflow] Drop optional model's dependency on libc++ internals..

Nice deduplication and compatibility fixes!

Apr 17 2023, 10:04 AM · Restricted Project, Restricted Project

Apr 11 2023

gribozavr2 accepted D147698: [clang][dataflow] Add support for new expressions..
Apr 11 2023, 7:30 AM · Restricted Project, Restricted Project
gribozavr2 accepted D146591: [dataflow] add HTML logger: browse code/cfg/analysis timeline/state.
Apr 11 2023, 7:23 AM · Restricted Project, Restricted Project
gribozavr2 accepted D148006: [clang][dataflow] Associate `FunctionToPointerDecay` nodes with a value..
Apr 11 2023, 6:22 AM · Restricted Project, Restricted Project
gribozavr2 added a comment to D147698: [clang][dataflow] Add support for new expressions..

@gribozavr2 Just to make sure I understand you correctly here (before I make any changes to the code): IIUC you recommend simply doing nothing on a delete expression? (Your arguments for this make sense to me, just want to double-check I understood correctly.)

Apr 11 2023, 6:12 AM · Restricted Project, Restricted Project
gribozavr2 accepted D148004: [clang][dataflow][NFC] Remove unused parameter from `insertIfGlobal()`..
Apr 11 2023, 3:33 AM · Restricted Project, Restricted Project

Apr 6 2023

gribozavr2 added a reviewer for D147698: [clang][dataflow] Add support for new expressions.: gribozavr2.
Apr 6 2023, 7:00 PM · Restricted Project, Restricted Project
gribozavr2 added inline comments to D147698: [clang][dataflow] Add support for new expressions..
Apr 6 2023, 7:00 PM · Restricted Project, Restricted Project

Apr 3 2023

gribozavr2 accepted D147302: [clang][dataflow] Add `create<T>()` methods to `Environment` and `DataflowAnalysisContext`..
Apr 3 2023, 4:28 AM · Restricted Project, Restricted Project

Mar 28 2023

gribozavr2 accepted D147032: [clang][dataflow][NFC] Put TransferVisitor in an unnamed namespace..
Mar 28 2023, 1:46 AM · Restricted Project, Restricted Project

Mar 27 2023

gribozavr2 added inline comments to D146591: [dataflow] add HTML logger: browse code/cfg/analysis timeline/state.
Mar 27 2023, 9:20 AM · Restricted Project, Restricted Project
gribozavr2 added inline comments to D146591: [dataflow] add HTML logger: browse code/cfg/analysis timeline/state.
Mar 27 2023, 9:18 AM · Restricted Project, Restricted Project