Page MenuHomePhabricator

aaronpuchert (Aaron Puchert)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 12 2018, 4:43 PM (115 w, 4 d)

Recent Activity

Sat, Sep 26

aaronpuchert committed rG485501899d6c: Fix sphinx warnings in AttributeReference, NFC (authored by aaronpuchert).
Fix sphinx warnings in AttributeReference, NFC
Sat, Sep 26, 3:53 PM
aaronpuchert requested review of D88366: libclc: Use find_package to find python and require it.
Sat, Sep 26, 2:23 PM · Restricted Project
aaronpuchert committed rGf702a6fa7c9e: Thread safety analysis: Improve documentation for ASSERT_CAPABILITY (authored by ryanofsky).
Thread safety analysis: Improve documentation for ASSERT_CAPABILITY
Sat, Sep 26, 1:18 PM
aaronpuchert closed D87629: Thread safety analysis: Improve documentation for ASSERT_CAPABILITY.
Sat, Sep 26, 1:18 PM · Restricted Project
aaronpuchert accepted D87629: Thread safety analysis: Improve documentation for ASSERT_CAPABILITY.

Maybe we'll have to clarify this further in the future, but for now this is an improvement.

Sat, Sep 26, 1:09 PM · Restricted Project

Fri, Sep 18

aaronpuchert added a comment to D87629: Thread safety analysis: Improve documentation for ASSERT_CAPABILITY.

Sure, it makes perfect sense that it's too hard.

It's not really too hard, there is an existing parameter somewhere in the CFG generation that controls these exception handling edges, and we'd probably have to change some other diagnostics plus improve the performance/memory usage.

Fri, Sep 18, 2:31 PM · Restricted Project

Thu, Sep 17

aaronpuchert added a comment to D87629: Thread safety analysis: Improve documentation for ASSERT_CAPABILITY.

Looks pretty good, thanks! I think this clears up the misunderstandings.

Thu, Sep 17, 4:24 PM · Restricted Project
aaronpuchert added a comment to D87629: Thread safety analysis: Improve documentation for ASSERT_CAPABILITY.

Not sure the try { AssertHeld } catch (...) { a = 0; } example reveals very much: it seems like thread safety annotations aren't checked within a catch block at all?

Mutex m;
int i GUARDED_BY(m);

static void thrower() { throw std::exception(); }
void f() { i = 1; }
void g() {
    try {
        thrower();
    } catch (...) {
        i = 5;
    }
    i = 6;
}

gives me warnings for i=1 and i=6 but not i=5 ?

Thu, Sep 17, 12:38 AM · Restricted Project

Wed, Sep 16

aaronpuchert added a comment to D87629: Thread safety analysis: Improve documentation for ASSERT_CAPABILITY.

The mistakes about exceptions came from me taking "(no return)" in the previous documentation too literally thinking it was referring to https://en.cppreference.com/w/cpp/language/attributes/noreturn.

The key here is the word "assumed". We treat the function as if it looks like this:

Wed, Sep 16, 4:03 PM · Restricted Project

Mon, Sep 14

aaronpuchert added a comment to D87629: Thread safety analysis: Improve documentation for ASSERT_CAPABILITY.

You can view it this way: there is a dynamic set and a static set of capabilities. The static set is always the same at any particular point in a function, regardless of the circumstances we're called from. It's what we determine in the analysis. The dynamic set depends on who called us and could be greater. To illustrate the difference:

Mon, Sep 14, 5:15 PM · Restricted Project
aaronpuchert added reviewers for D87629: Thread safety analysis: Improve documentation for ASSERT_CAPABILITY: aaron.ballman, aaronpuchert.

We don't really have a good understanding of ASSERT_CAPABILITY ourselves. For example, there is this loophole:

Mon, Sep 14, 4:19 PM · Restricted Project

Sun, Sep 6

aaronpuchert committed rGbbb3baf6205c: Thread safety analysis: Improve documentation for scoped capabilities (authored by aaronpuchert).
Thread safety analysis: Improve documentation for scoped capabilities
Sun, Sep 6, 11:38 AM
aaronpuchert committed rGcc6713a2c35e: Thread safety analysis: Test and document release_generic_capability (authored by aaronpuchert).
Thread safety analysis: Test and document release_generic_capability
Sun, Sep 6, 11:38 AM
aaronpuchert closed D87066: Thread safety analysis: Improve documentation for scoped capabilities.
Sun, Sep 6, 11:38 AM · Restricted Project
aaronpuchert closed D87064: Thread safety analysis: Test and document release_generic_capability.
Sun, Sep 6, 11:38 AM · Restricted Project

Sat, Sep 5

aaronpuchert committed rGda6b3aa4c6bb: Attempt to fix Sphinx build failure, NFC (authored by aaronpuchert).
Attempt to fix Sphinx build failure, NFC
Sat, Sep 5, 9:28 AM
aaronpuchert committed rGd3a779fe2150: Restore size of TemplateParameterList after D44352 (authored by aaronpuchert).
Restore size of TemplateParameterList after D44352
Sat, Sep 5, 9:02 AM
aaronpuchert committed rGb2ce79ef6615: Thread safety analysis: ValueDecl in Project is non-null (authored by aaronpuchert).
Thread safety analysis: ValueDecl in Project is non-null
Sat, Sep 5, 8:27 AM
aaronpuchert committed rG9dcc82f34ea9: Thread safety analysis: Consider global variables in scope (authored by aaronpuchert).
Thread safety analysis: Consider global variables in scope
Sat, Sep 5, 8:27 AM
aaronpuchert closed D84604: Thread safety analysis: Consider global variables in scope.
Sat, Sep 5, 8:27 AM · Restricted Project
aaronpuchert requested review of D87194: Thread safety analysis: Use access specifiers to decide about scope.
Sat, Sep 5, 8:25 AM · Restricted Project
aaronpuchert committed rG16975a638df3: Set InvalidDecl directly when deserializing a Decl (authored by aaronpuchert).
Set InvalidDecl directly when deserializing a Decl
Sat, Sep 5, 5:27 AM
aaronpuchert committed rG8544defdcb09: Thread safety analysis: Document how try-acquire is handled (authored by aaronpuchert).
Thread safety analysis: Document how try-acquire is handled
Sat, Sep 5, 5:27 AM
aaronpuchert closed D86207: Set InvalidDecl directly when deserializing a Decl.
Sat, Sep 5, 5:27 AM · Restricted Project
aaronpuchert closed D87065: Thread safety analysis: Document how try-acquire is handled.
Sat, Sep 5, 5:27 AM · Restricted Project

Fri, Sep 4

aaronpuchert updated the diff for D87064: Thread safety analysis: Test and document release_generic_capability.

Add some prose, not just code. Otherwise our list of attributes would be incomplete.

Fri, Sep 4, 3:39 PM · Restricted Project

Thu, Sep 3

aaronpuchert updated the diff for D84604: Thread safety analysis: Consider global variables in scope.

Add tests with qualified names, let tests rely on shadowing.

Thu, Sep 3, 5:06 PM · Restricted Project
aaronpuchert added inline comments to D84604: Thread safety analysis: Consider global variables in scope.
Thu, Sep 3, 5:05 PM · Restricted Project
aaronpuchert updated the summary of D87066: Thread safety analysis: Improve documentation for scoped capabilities.
Thu, Sep 3, 3:44 PM · Restricted Project
aaronpuchert updated the diff for D87066: Thread safety analysis: Improve documentation for scoped capabilities.
  • More detailed description how scoped capabilities work.
  • Make the comment wording more consistent with existing comments and the previous explanation.
  • Properly implement the destructor in the presence of an Unlock() function: we need to keep track of the status then.
  • Add try-acquire functions on scoped lock.
  • Fix compiler errors.
Thu, Sep 3, 3:43 PM · Restricted Project
aaronpuchert added inline comments to D87066: Thread safety analysis: Improve documentation for scoped capabilities.
Thu, Sep 3, 9:25 AM · Restricted Project

Wed, Sep 2

aaronpuchert added a comment to D87066: Thread safety analysis: Improve documentation for scoped capabilities.

Not sure about the added comments, I can also remove them if they're not helpful.

Wed, Sep 2, 6:03 PM · Restricted Project
aaronpuchert requested review of D87066: Thread safety analysis: Improve documentation for scoped capabilities.
Wed, Sep 2, 6:02 PM · Restricted Project
aaronpuchert requested review of D87065: Thread safety analysis: Document how try-acquire is handled.
Wed, Sep 2, 5:55 PM · Restricted Project
aaronpuchert requested review of D87064: Thread safety analysis: Test and document release_generic_capability.
Wed, Sep 2, 5:52 PM · Restricted Project
aaronpuchert retitled D86207: Set InvalidDecl directly when deserializing a Decl from (De-)serialize BindingDecls before DecompositionDecl to Set InvalidDecl directly when deserializing a Decl.
Wed, Sep 2, 5:39 PM · Restricted Project
aaronpuchert updated the diff for D86207: Set InvalidDecl directly when deserializing a Decl.

Fix as suggested by @rsmith instead: set InvalidDecl directly.

Wed, Sep 2, 5:37 PM · Restricted Project
aaronpuchert added a comment to D86207: Set InvalidDecl directly when deserializing a Decl.

Everything compiles with ValueDecl* Decomp instead of a LazyDeclPtr, but I'll leave it until we figure out whether we might actually need it.

Wed, Sep 2, 5:26 PM · Restricted Project
aaronpuchert added a comment to D86207: Set InvalidDecl directly when deserializing a Decl.

I'll go with what @rsmith proposed to fix the bug. If the entire deserialization process doesn't rely on invariants, the order should indeed be irrelevant.

Wed, Sep 2, 5:01 PM · Restricted Project
aaronpuchert added a comment to D85613: [clang] Also consider structured bindings when checking whether a local entity is odr-used in a default argument..

Ah, I guess Ianded on an older version of this through a link and didn't notice. Nevermind.

Wed, Sep 2, 2:27 PM · Restricted Project
aaronpuchert added inline comments to D85613: [clang] Also consider structured bindings when checking whether a local entity is odr-used in a default argument..
Wed, Sep 2, 9:27 AM · Restricted Project
aaronpuchert added a comment to D86207: Set InvalidDecl directly when deserializing a Decl.

Is my comment on the deserialization of BindingDecls in https://reviews.llvm.org/D85613?id=284364 related to this change?

Wed, Sep 2, 8:57 AM · Restricted Project

Tue, Sep 1

aaronpuchert added a reviewer for D86207: Set InvalidDecl directly when deserializing a Decl: aaron.ballman.
Tue, Sep 1, 5:17 PM · Restricted Project
aaronpuchert added a comment to D84455: [Concepts] Fix a deserialization crash..

Do I understand correctly that this means we should have a template parameter, but haven't read it yet? In that case it would seem strange that we consider them different.

Tue, Sep 1, 5:09 PM · Restricted Project
aaronpuchert updated the diff for D84604: Thread safety analysis: Consider global variables in scope.

Rebase on top of D84603.

Tue, Sep 1, 4:40 PM · Restricted Project
aaronpuchert committed rG8ca00c5cdc0b: Thread safety analysis: More consistent warning message (authored by aaronpuchert).
Thread safety analysis: More consistent warning message
Tue, Sep 1, 2:16 PM
aaronpuchert closed D84603: Thread safety analysis: More consistent warning message.
Tue, Sep 1, 2:16 PM · Restricted Project

Aug 29 2020

aaronpuchert added inline comments to D84603: Thread safety analysis: More consistent warning message.
Aug 29 2020, 5:18 PM · Restricted Project
aaronpuchert updated the diff for D84603: Thread safety analysis: More consistent warning message.

Remove "holding" and moved to a separate message because the overlap was getting smaller.

Aug 29 2020, 5:14 PM · Restricted Project
aaronpuchert committed rG85fce449dc43: [Sema] Simplify ShouldDiagnoseUnusedDecl, NFC (authored by aaronpuchert).
[Sema] Simplify ShouldDiagnoseUnusedDecl, NFC
Aug 29 2020, 9:43 AM
aaronpuchert committed rGb4a2d36c3f74: [Sema] ICK_Function_Conversion is a third kind conversion (authored by aaronpuchert).
[Sema] ICK_Function_Conversion is a third kind conversion
Aug 29 2020, 9:43 AM
aaronpuchert closed D67113: ICK_Function_Conversion is a third kind conversion.
Aug 29 2020, 9:43 AM · Restricted Project

Aug 28 2020

aaronpuchert added a comment to D67113: ICK_Function_Conversion is a third kind conversion.

There may be a deeper issue here in that there are four standard conversion sequences, not three: http://eel.is/c++draft/conv#1, but otherwise this change seems correct to me (function conversion is certainly not in the first group).

Aug 28 2020, 3:31 PM · Restricted Project

Aug 27 2020

aaronpuchert added a comment to D67112: [Sema] Introduce function reference conversion, NFC.

Ping. Maybe this change is too silly, but I think it's better to be precise and not muddle qualification conversions together with casting away noexcept.

Aug 27 2020, 4:43 PM · Restricted Project
aaronpuchert added a reviewer for D67113: ICK_Function_Conversion is a third kind conversion: aaron.ballman.

Maybe this is to trivial for a review. The comment on StandardConversionSequence::Third in clang/Sema/Overload.h says

Aug 27 2020, 4:40 PM · Restricted Project
aaronpuchert added inline comments to D84603: Thread safety analysis: More consistent warning message.
Aug 27 2020, 4:32 PM · Restricted Project

Aug 26 2020

aaronpuchert added inline comments to D39937: [Sema] Improve diagnostics for const- and ref-qualified member functions.
Aug 26 2020, 5:24 PM
aaronpuchert added inline comments to D84603: Thread safety analysis: More consistent warning message.
Aug 26 2020, 3:02 PM · Restricted Project

Aug 25 2020

aaronpuchert added inline comments to rL279312: Reapply "ADT: Tidy up ilist_traits static asserts, NFC".
Aug 25 2020, 5:58 PM

Aug 24 2020

aaronpuchert added a comment to D84603: Thread safety analysis: More consistent warning message.

@aaron.ballman, can you have a look again? I think this change is consistent with what we're already doing.

Aug 24 2020, 10:19 AM · Restricted Project

Aug 22 2020

aaronpuchert added a comment to D85691: lld: link libatomic if needed for Timer.

FWIW, I also tagged bug 47123 for release-11.0.0.

Aug 22 2020, 2:21 PM · Restricted Project
aaronpuchert updated subscribers of D85691: lld: link libatomic if needed for Timer.

@hans, could we bring this to the release-11.x branch?

Aug 22 2020, 6:29 AM · Restricted Project

Aug 19 2020

aaronpuchert committed rG916b750a8d1a: [CodeGen] Use existing EmitLambdaVLACapture (NFC) (authored by aaronpuchert).
[CodeGen] Use existing EmitLambdaVLACapture (NFC)
Aug 19 2020, 6:20 AM
aaronpuchert added a comment to D84603: Thread safety analysis: More consistent warning message.

Ping.

Aug 19 2020, 5:02 AM · Restricted Project
aaronpuchert requested review of D86207: Set InvalidDecl directly when deserializing a Decl.
Aug 19 2020, 4:56 AM · Restricted Project

Aug 18 2020

aaronpuchert accepted D85691: lld: link libatomic if needed for Timer.

Thanks, this looks good to me.

Aug 18 2020, 8:58 AM · Restricted Project

Aug 17 2020

aaronpuchert added inline comments to D82276: Make ninja smart console builds more pretty.
Aug 17 2020, 5:36 PM · Restricted Project
aaronpuchert added a comment to D85691: lld: link libatomic if needed for Timer.

First of all thanks for doing this, I was observing the same issue on arvm6l and armv7l.

Aug 17 2020, 3:28 PM · Restricted Project

Aug 4 2020

aaronpuchert added a comment to D81922: [llvm] Disable linking llvm-exegesis to dylib.

Can you please add some messages about duplicate symbols?

Aug 4 2020, 4:56 PM · Restricted Project

Jul 27 2020

aaronpuchert added inline comments to D84603: Thread safety analysis: More consistent warning message.
Jul 27 2020, 11:47 AM · Restricted Project

Jul 26 2020

aaronpuchert added a comment to D84604: Thread safety analysis: Consider global variables in scope.

Test failure is expected because I based this on D84603 locally, but I'm not sure how to tell that to Phabricator.

Jul 26 2020, 12:08 PM · Restricted Project
aaronpuchert updated subscribers of D84604: Thread safety analysis: Consider global variables in scope.

@anarazel, that should fix the issue you reported on IRC.

Jul 26 2020, 12:05 PM · Restricted Project
aaronpuchert updated the summary of D84604: Thread safety analysis: Consider global variables in scope.
Jul 26 2020, 11:57 AM · Restricted Project
Herald added a project to D84604: Thread safety analysis: Consider global variables in scope: Restricted Project.
Jul 26 2020, 11:53 AM · Restricted Project
Herald added a project to D84603: Thread safety analysis: More consistent warning message: Restricted Project.
Jul 26 2020, 11:51 AM · Restricted Project

Jul 10 2020

aaronpuchert added a comment to D83549: [ELF] Do not leave undefined symbols (specified by -init and -fini) if they are defined in non-fetched archive members.

@aaronpuchert Your comment https://bugzilla.opensuse.org/show_bug.cgi?id=1155108#c10 "However, it's actually a bug in all three linkers. It has been fixed in lld just today [1]" made me wonder whether https://bugs.llvm.org/show_bug.cgi?id=43927 was really a linker bug.

The linkers were behaving differently though: lld and bfd dropped the FINI entirely whereas gold had FINI=0, which lead to a crash. Which of these behaviors would be expected?

Jul 10 2020, 1:22 PM · lld, Restricted Project

Jun 19 2020

aaronpuchert added a comment to D67321: Respect CLANG_LINK_CLANG_DYLIB=ON in libclang and c-index-test.

Yup, c-index-test crashing was one of the motivators behind this.

Jun 19 2020, 2:41 PM · Restricted Project

Jun 9 2020

aaronpuchert committed rG55c365d247b1: Add LLVM_ATTRIBUTE_NORETURN to report_bad_alloc_error (authored by aaronpuchert).
Add LLVM_ATTRIBUTE_NORETURN to report_bad_alloc_error
Jun 9 2020, 8:47 AM
aaronpuchert closed D81318: Add LLVM_ATTRIBUTE_NORETURN to report_bad_alloc_error.
Jun 9 2020, 8:46 AM · Restricted Project

Jun 8 2020

aaronpuchert updated subscribers of rG31eeee1d8e0d: Fix build after removing llvm/CodeGen/GlobalISel/Types.h.

@arsenm, just FYI: you probably just overlooked this when removing the header.

Jun 8 2020, 9:22 AM
aaronpuchert committed rGf70912f885f9: Thread safety analysis: Add note for double unlock (authored by aaronpuchert).
Thread safety analysis: Add note for double unlock
Jun 8 2020, 8:16 AM
aaronpuchert committed rG1850f56c8aba: Thread safety analysis: Support deferring locks (authored by aaronpuchert).
Thread safety analysis: Support deferring locks
Jun 8 2020, 8:15 AM
aaronpuchert closed D81352: Thread safety analysis: Add note for double unlock.
Jun 8 2020, 8:14 AM · Restricted Project
aaronpuchert committed rG31eeee1d8e0d: Fix build after removing llvm/CodeGen/GlobalISel/Types.h (authored by aaronpuchert).
Fix build after removing llvm/CodeGen/GlobalISel/Types.h
Jun 8 2020, 8:14 AM
aaronpuchert closed D81332: Thread safety analysis: Support deferring locks.
Jun 8 2020, 8:14 AM · Restricted Project
aaronpuchert added inline comments to D81352: Thread safety analysis: Add note for double unlock.
Jun 8 2020, 7:38 AM · Restricted Project
aaronpuchert added a comment to D81332: Thread safety analysis: Support deferring locks.

LGTM! Should we update the public docs for this change as well? Specifically, I am wondering if we should update https://clang.llvm.org/docs/ThreadSafetyAnalysis.html#mutexheader

Jun 8 2020, 7:38 AM · Restricted Project

Jun 7 2020

aaronpuchert created D81352: Thread safety analysis: Add note for double unlock.
Jun 7 2020, 3:28 PM · Restricted Project

Jun 6 2020

aaronpuchert added a reviewer for D74588: Use DISABLE_LLVM_LINK_LLVM_DYLIB for TableGenTests: beanz.
Jun 6 2020, 6:22 AM · Restricted Project
aaronpuchert created D81332: Thread safety analysis: Support deferring locks.
Jun 6 2020, 6:22 AM · Restricted Project

Jun 5 2020

aaronpuchert created D81318: Add LLVM_ATTRIBUTE_NORETURN to report_bad_alloc_error.
Jun 5 2020, 4:48 PM · Restricted Project

Apr 28 2020

aaronpuchert added a comment to D78853: [Analysis] Fix null pointer dereference warnings [1/n].

Could you explain why we are doing this? Clang has its own static analyzer, which can find null dereferences as well but also tracks constraints to prevent false positives like this.

Apr 28 2020, 10:44 AM

Apr 27 2020

aaronpuchert updated subscribers of rGce7eb72a3c87: Thread safety analysis: Reword warning after D72635.

@aaron.ballman, this is a follow-up to D72635#1911495.

Apr 27 2020, 2:00 PM
aaronpuchert committed rGce7eb72a3c87: Thread safety analysis: Reword warning after D72635 (authored by aaronpuchert).
Thread safety analysis: Reword warning after D72635
Apr 27 2020, 1:30 PM

Apr 22 2020

aaronpuchert committed rG391c15fccdc6: [NFC] Correct typo in comment after D76038 (authored by aaronpuchert).
[NFC] Correct typo in comment after D76038
Apr 22 2020, 5:27 PM
aaronpuchert added a comment to D74588: Use DISABLE_LLVM_LINK_LLVM_DYLIB for TableGenTests.

Another ping.

Apr 22 2020, 5:25 PM · Restricted Project
aaronpuchert retitled D67112: [Sema] Introduce function reference conversion, NFC from [Sema] Introduce function reference conversion to [Sema] Introduce function reference conversion, NFC.
Apr 22 2020, 5:25 PM · Restricted Project
aaronpuchert added a comment to D67112: [Sema] Introduce function reference conversion, NFC.

@rsmith, what do you think about this?

Apr 22 2020, 5:25 PM · Restricted Project
aaronpuchert committed rGf43859a099fa: PR45000: Let Sema::SubstParmVarDecl handle default args of lambdas in… (authored by aaronpuchert).
PR45000: Let Sema::SubstParmVarDecl handle default args of lambdas in…
Apr 22 2020, 2:10 PM
aaronpuchert closed D76038: PR45000: Let Sema::SubstParmVarDecl handle default args of lambdas in initializers.
Apr 22 2020, 2:09 PM · Restricted Project