Page MenuHomePhabricator

aaronpuchert (Aaron Puchert)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Yesterday

aaronpuchert added a comment to D73007: [Sema] Avoid Wrange-loop-analysis false positives.

Yes, but minimal fix is better for release branch, so @hans should merge it.

Mon, Jan 20, 9:39 AM · Restricted Project
aaronpuchert added a comment to D73007: [Sema] Avoid Wrange-loop-analysis false positives.

As I wrote on the bug, I think we should only suppress one of the warnings in templates (and maybe always):

Mon, Jan 20, 8:13 AM · Restricted Project

Thu, Jan 16

aaronpuchert added a comment to D72635: Allow arbitrary capability name in Thread Safety Analysis.

Hmm, I have been wondering about this as well. The way I see it, all of these things are what we call capabilities, and we treat them all the same. The names are just meant to make warning messages more readable, because what the analysis considers a capability, the user might know as a mutex, or role, or sequence.

Thu, Jan 16, 2:43 PM · Restricted Project

Mon, Jan 13

aaronpuchert requested changes to D65184: [Sema] Thread Safety Analysis: Make negative capability typeless..

A fix would be to let all three produce exclusive negative capability, which essentially means there is no type associated with negative capability. This fix could also fix my bug.

Mon, Jan 13, 11:32 AM · Restricted Project

Sun, Jan 12

aaronpuchert added a comment to D66919: Warn about zero-parameter K&R definitions in -Wstrict-prototypes.

@aaron.ballman We could make the warning even stricter, but that should be a separate discussion. Is this change Ok for now?

Sun, Jan 12, 4:08 PM · Restricted Project

Fri, Jan 10

aaronpuchert added a comment to D68923: Don't warn about missing declarations for partial template specializations.

Ping.

Fri, Jan 10, 10:03 AM · Restricted Project

Thu, Jan 9

aaronpuchert added a comment to D65661: [compiler-rt] Move FDP to include/fuzzer/FuzzedDataProvider.h for easier use..

Without this patch, any project that wants to use this header needs to add a vendored copy of FDP to their source repository. With this patch, non-clang will still have to do this, though projects that build with clang will not.

Thu, Jan 9, 6:18 AM · Restricted Project, Restricted Project

Dec 10 2019

aaronpuchert added a comment to D70991: [libc++][test] Replace platform.linux_distribution by distro.linux_distribution.

Is import distro supported in Python 2.x?

Dec 10 2019, 4:55 PM · Restricted Project

Dec 5 2019

aaronpuchert added inline comments to D66437: Sema: Create a no-op implicit cast for lvalue function conversions..
Dec 5 2019, 6:35 PM · Restricted Project
aaronpuchert abandoned D67112: [Sema] Add implicit cast for conversion of function references.

Already fixed via D66437.

Dec 5 2019, 6:26 PM · Restricted Project

Dec 3 2019

aaronpuchert added a comment to D70991: [libc++][test] Replace platform.linux_distribution by distro.linux_distribution.

An alternative would be to assume that any distribution new enough to have Python 3.8 also has /etc/os-release, so we fall back to parsing that if platform.linux_distribution isn't there. Or the other way around: we check for /etc/os-release and fall back to platform.linux_distribution.

Dec 3 2019, 4:37 PM · Restricted Project
aaronpuchert created D70991: [libc++][test] Replace platform.linux_distribution by distro.linux_distribution.
Dec 3 2019, 4:00 PM · Restricted Project

Dec 1 2019

aaronpuchert added a comment to D68923: Don't warn about missing declarations for partial template specializations.

@rsmith, could you please have a look?

Dec 1 2019, 10:01 AM · Restricted Project

Nov 23 2019

aaronpuchert committed rG0010ea4224c7: [Driver] Fix incorrect GNU triplet for PowerPC on SUSE Linux (authored by aaronpuchert).
[Driver] Fix incorrect GNU triplet for PowerPC on SUSE Linux
Nov 23 2019, 7:11 AM
aaronpuchert closed D55326: [Driver] Fix incorrect GNU triplet for PowerPC on SUSE Linux.
Nov 23 2019, 7:11 AM · Restricted Project

Nov 18 2019

aaronpuchert committed rGb29c7fdb617c: [OpenMP] Remove -Wl,-fini=__kmp_internal_end_fini (authored by aaronpuchert).
[OpenMP] Remove -Wl,-fini=__kmp_internal_end_fini
Nov 18 2019, 4:00 PM
aaronpuchert closed D69927: [OpenMP] Remove -Wl,-fini=__kmp_internal_end_fini.
Nov 18 2019, 4:00 PM · Restricted Project
aaronpuchert added a comment to D69927: [OpenMP] Remove -Wl,-fini=__kmp_internal_end_fini.

The current change (without the racy test) looks good to me.

Nov 18 2019, 2:02 PM · Restricted Project

Nov 15 2019

aaronpuchert added a comment to D69927: [OpenMP] Remove -Wl,-fini=__kmp_internal_end_fini.

The function I was suggesting marking used is the one passed to the linker as -fini, not the one marked destructor.

Nov 15 2019, 7:52 AM · Restricted Project

Nov 14 2019

aaronpuchert updated the diff for D69927: [OpenMP] Remove -Wl,-fini=__kmp_internal_end_fini.

Remove __kmp_internal_end_fini instead of exporting it: it shouldn't be needed.

Nov 14 2019, 7:38 PM · Restricted Project
aaronpuchert retitled D69927: [OpenMP] Remove -Wl,-fini=__kmp_internal_end_fini from [libomptarget] Export __kmp_internal_end_fini to fix [Thin]LTO build to [OpenMP] Remove -Wl,-fini=__kmp_internal_end_fini.
Nov 14 2019, 7:38 PM · Restricted Project
aaronpuchert added a comment to D69927: [OpenMP] Remove -Wl,-fini=__kmp_internal_end_fini.

There's probably an existing test for them.

Nov 14 2019, 7:20 PM · Restricted Project

Nov 13 2019

aaronpuchert added a comment to D69927: [OpenMP] Remove -Wl,-fini=__kmp_internal_end_fini.

foreign thread should crash if library closed w/o shutdown

Nov 13 2019, 7:24 PM · Restricted Project

Nov 12 2019

aaronpuchert planned changes to D69927: [OpenMP] Remove -Wl,-fini=__kmp_internal_end_fini.

I will try removing __kmp_internal_end_fini with a test that __kmp_internal_end_atexit is still called.

Nov 12 2019, 6:26 PM · Restricted Project
aaronpuchert added a comment to D65184: [Sema] Thread Safety Analysis: Make negative capability typeless..

This is a larger effort so it will take a little bit more time on me.

Nov 12 2019, 6:17 PM · Restricted Project

Nov 7 2019

aaronpuchert added a comment to D69927: [OpenMP] Remove -Wl,-fini=__kmp_internal_end_fini.

Let's say we remove __kmp_internal_end_fini and rely on __kmp_internal_end_dtor, can we write a test case ensuring that __kmp_internal_end_atexit is called? That calls into __kmp_task_team_wait, so maybe we can exit while some tasks are still running, and get a different observable result depending on whether we wait or not?

Nov 7 2019, 6:38 PM · Restricted Project
aaronpuchert added a comment to D69927: [OpenMP] Remove -Wl,-fini=__kmp_internal_end_fini.

As well as removing the __kmp_internal_end_fini symbol at all, as it duplicates the functionality of __kmp_internal_end_dtor which has attribute "destructor". I am OK with either solution, would be good to hear others opinion.

Nov 7 2019, 10:19 AM · Restricted Project

Nov 6 2019

aaronpuchert added a comment to D69927: [OpenMP] Remove -Wl,-fini=__kmp_internal_end_fini.

Belatedly filed bug 43927. Feel free to comment there if you think this isn't the proper fix.

Nov 6 2019, 5:56 PM · Restricted Project
aaronpuchert updated the summary of D69927: [OpenMP] Remove -Wl,-fini=__kmp_internal_end_fini.
Nov 6 2019, 5:56 PM · Restricted Project
aaronpuchert created D69927: [OpenMP] Remove -Wl,-fini=__kmp_internal_end_fini.
Nov 6 2019, 5:41 PM · Restricted Project
aaronpuchert updated the summary of D69927: [OpenMP] Remove -Wl,-fini=__kmp_internal_end_fini.
Nov 6 2019, 5:41 PM · Restricted Project

Nov 3 2019

aaronpuchert added a comment to D55326: [Driver] Fix incorrect GNU triplet for PowerPC on SUSE Linux.

@jrtc27, @nemanjai: Could you have a look again? I think I answered all your questions and wrote a test.

Nov 3 2019, 9:17 AM · Restricted Project
aaronpuchert committed rGc96428d2184f: Drop spurious self-include [NFC] (authored by aaronpuchert).
Drop spurious self-include [NFC]
Nov 3 2019, 5:38 AM

Oct 31 2019

aaronpuchert added a comment to D68923: Don't warn about missing declarations for partial template specializations.

Gentle ping.

Oct 31 2019, 10:31 AM · Restricted Project

Oct 30 2019

aaronpuchert added inline comments to D68845: Don't emit unwanted constructor calls in co_return statements.
Oct 30 2019, 1:45 PM · Restricted Project
aaronpuchert added a comment to D68845: Don't emit unwanted constructor calls in co_return statements.

Not answering inline because comments are getting longer.

Oct 30 2019, 1:06 PM · Restricted Project

Oct 29 2019

aaronpuchert committed rGae3159e49793: Thread safety analysis: Peel away NoOp implicit casts in initializers (authored by aaronpuchert).
Thread safety analysis: Peel away NoOp implicit casts in initializers
Oct 29 2019, 5:45 PM
aaronpuchert closed D69533: Thread safety analysis: Peel away NoOp implicit casts in initializers.
Oct 29 2019, 5:45 PM · Restricted Project
aaronpuchert updated the diff for D68845: Don't emit unwanted constructor calls in co_return statements.

Add test case where check for non-deduced parameter conversions is necessary.

Oct 29 2019, 3:32 PM · Restricted Project
aaronpuchert added inline comments to D68845: Don't emit unwanted constructor calls in co_return statements.
Oct 29 2019, 3:30 PM · Restricted Project

Oct 28 2019

aaronpuchert created D69533: Thread safety analysis: Peel away NoOp implicit casts in initializers.
Oct 28 2019, 2:29 PM · Restricted Project

Oct 19 2019

aaronpuchert committed rL375351: Request commit access for aaronpuchert.
Request commit access for aaronpuchert
Oct 19 2019, 12:37 PM

Oct 16 2019

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

@beanz Could you have a look again?

Oct 16 2019, 5:13 PM · Restricted Project

Oct 15 2019

aaronpuchert updated the diff for D68845: Don't emit unwanted constructor calls in co_return statements.

Apply clang-format.

Oct 15 2019, 7:19 PM · Restricted Project
aaronpuchert added a comment to D68845: Don't emit unwanted constructor calls in co_return statements.

Given the complexities of this implementation, I'm beginning to doubt whether implicit moves make sense for co_return at all. Since there can never be any kind of RVO, why not always require an explicit std::move? Implicit moves on return were introduced because an explicit move would inhibit NRVO, and without move there wouldn't be a graceful fallback for implementations that don't have NRVO.

Oct 15 2019, 7:19 PM · Restricted Project
aaronpuchert updated the diff for D68845: Don't emit unwanted constructor calls in co_return statements.

Add tests suggested by @Quuxplusone and add fallback to call by lvalue reference.

Oct 15 2019, 7:10 PM · Restricted Project

Oct 12 2019

aaronpuchert created D68923: Don't warn about missing declarations for partial template specializations.
Oct 12 2019, 5:08 PM · Restricted Project
aaronpuchert added a comment to D68845: Don't emit unwanted constructor calls in co_return statements.

@GorNishanov Do I read the standard correctly that there are no constraints on what return_value is? That is, could it also be a function pointer or function object?

Oct 12 2019, 4:41 PM · Restricted Project
aaronpuchert added a comment to D68845: Don't emit unwanted constructor calls in co_return statements.

I'll add your test case, but I'll probably reuse the existing data structures.

Oct 12 2019, 7:51 AM · Restricted Project

Oct 11 2019

aaronpuchert planned changes to D68845: Don't emit unwanted constructor calls in co_return statements.

Both of these should first do overload resolution for one parameter of type MoveOnly&&, and then, only if that overload resolution fails, should they fall back to overload resolution for one parameter of type MoveOnly&.

Oct 11 2019, 4:09 AM · Restricted Project

Oct 10 2019

aaronpuchert added inline comments to D68845: Don't emit unwanted constructor calls in co_return statements.
Oct 10 2019, 6:08 PM · Restricted Project
aaronpuchert updated the diff for D68845: Don't emit unwanted constructor calls in co_return statements.

Also remove FIXME comment.

Oct 10 2019, 5:59 PM · Restricted Project
aaronpuchert created D68845: Don't emit unwanted constructor calls in co_return statements.
Oct 10 2019, 5:58 PM · Restricted Project
aaronpuchert added a comment to D51741: [coro]Pass rvalue reference for named local variable to return_value.

Please have a look at D68845. This should address the issues that we discussed.

Oct 10 2019, 5:58 PM · Restricted Project
aaronpuchert added a comment to D51741: [coro]Pass rvalue reference for named local variable to return_value.

@Quuxplusone Thanks for your very helpful comments!

Oct 10 2019, 2:34 PM · Restricted Project

Oct 9 2019

aaronpuchert added a comment to D51741: [coro]Pass rvalue reference for named local variable to return_value.

This patch is heavily heavily merge-conflicted by P1825.

Oct 9 2019, 1:32 PM · Restricted Project
Herald added a project to D51741: [coro]Pass rvalue reference for named local variable to return_value: Restricted Project.

This change breaks the following code that worked before:

Oct 9 2019, 10:09 AM · Restricted Project

Oct 8 2019

aaronpuchert added a comment to D55326: [Driver] Fix incorrect GNU triplet for PowerPC on SUSE Linux.

Gentle ping.

Oct 8 2019, 1:15 PM · Restricted Project
aaronpuchert planned changes to D67112: [Sema] Add implicit cast for conversion of function references.

If anyone shares my feeling that the boolean output parameters of CompareReferenceRelationship should rather move to the return value, I would be happy to do that.

Oct 8 2019, 12:59 PM · Restricted Project

Sep 30 2019

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

Ping?

Sep 30 2019, 2:44 PM · Restricted Project
aaronpuchert abandoned D68187: [libclang] Use strict prototypes in header.

Fixed by @aaron.ballman in rC373213 along with another issue.

Sep 30 2019, 2:37 PM · Restricted Project

Sep 28 2019

aaronpuchert added a comment to D68187: [libclang] Use strict prototypes in header.

Can be "reproduced" with clang -fsyntax-only -Wstrict-prototypes clang/include/clang-c/*.h.

Sep 28 2019, 4:12 PM · Restricted Project
aaronpuchert created D68187: [libclang] Use strict prototypes in header.
Sep 28 2019, 4:09 PM · Restricted Project
aaronpuchert updated the diff for D67321: Respect CLANG_LINK_CLANG_DYLIB=ON in libclang and c-index-test.

Fix typo.

Sep 28 2019, 3:34 PM · Restricted Project
aaronpuchert updated the diff for D67321: Respect CLANG_LINK_CLANG_DYLIB=ON in libclang and c-index-test.

Handle static libraries correctly.

Sep 28 2019, 3:25 PM · Restricted Project
aaronpuchert added inline comments to D66775: [libclang] Expose abort()-ing fatal error handler.
Sep 28 2019, 9:32 AM · Restricted Project
aaronpuchert committed rG243058fff140: Don't install example analyzer plugins (authored by aaronpuchert).
Don't install example analyzer plugins
Sep 28 2019, 6:31 AM
aaronpuchert committed rL373148: Don't install example analyzer plugins.
Don't install example analyzer plugins
Sep 28 2019, 6:27 AM
aaronpuchert closed D68172: Don't install example analyzer plugins.
Sep 28 2019, 6:27 AM · Restricted Project, Restricted Project
aaronpuchert added a comment to D67877: [analyzer] Conditionnaly include clang Analysis examples with cmake..

@Szelethus could you confirm that thus examples shouldn't be built when CLANG_BUILD_EXAMPLES is OFF, and that this patch is still valid?

Sep 28 2019, 5:59 AM · Restricted Project
aaronpuchert added a comment to D68172: Don't install example analyzer plugins.

The patch looks alright, I won't formally accept because if I knew how these worked, it wouldn't have caused so much pain to so many people :)

Sep 28 2019, 5:56 AM · Restricted Project, Restricted Project
aaronpuchert updated the summary of D68172: Don't install example analyzer plugins.
Sep 28 2019, 4:02 AM · Restricted Project, Restricted Project
aaronpuchert added a comment to D67877: [analyzer] Conditionnaly include clang Analysis examples with cmake..

I didn't know about this patch and published D68172: adding BUILDTREE_ONLY still builds the examples, but doesn't install them. It's also used by other test plugins like llvm/lib/Transforms/Hello.
Thanks to @lebedev.ri for informing my about this patch.

Sep 28 2019, 4:02 AM · Restricted Project

Sep 27 2019

aaronpuchert added a comment to D68172: Don't install example analyzer plugins.
In D68172#1686772, @NoQ wrote:

+@Szelethus because i'm a bit out-of-the-loop on plugins: i very vaguely remember that we decided to put them into tests(?)

Sep 27 2019, 6:39 PM · Restricted Project, Restricted Project
aaronpuchert created D68172: Don't install example analyzer plugins.
Sep 27 2019, 5:27 PM · Restricted Project, Restricted Project

Sep 25 2019

aaronpuchert added a comment to D55326: [Driver] Fix incorrect GNU triplet for PowerPC on SUSE Linux.

A couple of questions since I am not all that familiar with clang and am certainly not familiar with this unusual SUSE 32-bit situation:

  • We seem to be changing the set of aliases here, but what happens if someone actually explicitly specifies --target=powerpc-suse-linux?
  • Can you describe the default triple for clang on SUSE 32-bit PPC? Will it be powerpc-suse-linux? powerpc64-suse-linux?

This change does not affect the Clang triple, that is and will be powerpc-unknown-linux-gnu. It's just about where Clang looks for the GCC toolchain.

Sep 25 2019, 4:35 PM · Restricted Project

Sep 21 2019

aaronpuchert added a reviewer for D67112: [Sema] Add implicit cast for conversion of function references: riccibruno.

Perhaps I should mention that this fixes an assertion failure.

Sep 21 2019, 1:32 PM · Restricted Project
aaronpuchert updated the diff for D55326: [Driver] Fix incorrect GNU triplet for PowerPC on SUSE Linux.

Pass correct Clang triple as argument to --target.

Sep 21 2019, 12:56 PM · Restricted Project

Sep 9 2019

aaronpuchert added inline comments to D67321: Respect CLANG_LINK_CLANG_DYLIB=ON in libclang and c-index-test.
Sep 9 2019, 5:27 PM · Restricted Project

Sep 7 2019

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

I'm thinking about the following, but I'm not sure if that's the proper way to do it.

Sep 7 2019, 11:20 AM · Restricted Project
aaronpuchert created D67321: Respect CLANG_LINK_CLANG_DYLIB=ON in libclang and c-index-test.
Sep 7 2019, 10:11 AM · Restricted Project
aaronpuchert added inline comments to D67321: Respect CLANG_LINK_CLANG_DYLIB=ON in libclang and c-index-test.
Sep 7 2019, 10:11 AM · Restricted Project

Sep 4 2019

aaronpuchert added a comment to D66919: Warn about zero-parameter K&R definitions in -Wstrict-prototypes.

We do have numerous warnings that are default errors, you can look for DefaultError in the diagnostic .td files to see the uses.

Sep 4 2019, 3:27 PM · Restricted Project

Sep 3 2019

aaronpuchert retitled D67113: ICK_Function_Conversion is a third kind conversion from ICK_Function_Conversion and ICK_Qualification are third kind conversions to ICK_Function_Conversion is a third kind conversion.
Sep 3 2019, 3:27 PM · Restricted Project
aaronpuchert updated the diff for D67113: ICK_Function_Conversion is a third kind conversion.

Remove wrong changes in SemaExprCXX.cpp.

Sep 3 2019, 3:27 PM · Restricted Project
aaronpuchert created D67113: ICK_Function_Conversion is a third kind conversion.
Sep 3 2019, 10:38 AM · Restricted Project
aaronpuchert added a comment to D67112: [Sema] Add implicit cast for conversion of function references.

If anyone shares my feeling that the boolean output parameters of CompareReferenceRelationship should rather move to the return value, I would be happy to do that.

Sep 3 2019, 10:34 AM · Restricted Project
aaronpuchert created D67112: [Sema] Add implicit cast for conversion of function references.
Sep 3 2019, 10:34 AM · Restricted Project

Sep 2 2019

aaronpuchert added a comment to D66919: Warn about zero-parameter K&R definitions in -Wstrict-prototypes.

I went back to read notes from when we deployed -Wstrict-prototypes (which we have had on-by-default for our users for a couple of years, since it catches lots of -fblocks-related bugs). I was mainly objecting because I had (mis)remembered trying and backing out the specific behaviour you're adding. On the contrary, our notes say that we might want to strengthen the diagnostic as you're doing.

Thank you for having a look at the notes, that's good to hear.

Sep 2 2019, 4:54 PM · Restricted Project

Aug 30 2019

aaronpuchert added a comment to D66919: Warn about zero-parameter K&R definitions in -Wstrict-prototypes.

IIRC, when we rolled out -Wstrict-prototypes we explicitly excluded this case since it hit a lot of code without finding bugs.

Aug 30 2019, 2:36 PM · Restricted Project
aaronpuchert added a comment to D66919: Warn about zero-parameter K&R definitions in -Wstrict-prototypes.

We had a discussion on IRC yesterday and @aaron.ballman pointed out that the K&R syntax has been considered "obsolescent" (= deprecated) since C89, 30 years ago. He added that there are thoughts within the standards committee about removing the syntax entirely from C2x.

Aug 30 2019, 2:16 PM · Restricted Project

Aug 29 2019

aaronpuchert added a comment to D66919: Warn about zero-parameter K&R definitions in -Wstrict-prototypes.

By the way, I'm open to adding a fix-it hint for zero-parameter K&R-style definitions, since the fix is pretty straightforward.

Aug 29 2019, 12:04 PM · Restricted Project
aaronpuchert added a comment to D66919: Warn about zero-parameter K&R definitions in -Wstrict-prototypes.

we just don't warn on non-prototype defining declarations, where the meaning is unambiguous:

void foo() {}

"Meaning" is a difficult term. What we know is that this is a K&R-style definition, and does not define a prototype. So one would expect -Wstrict-prototypes to warn about this.

Aug 29 2019, 11:48 AM · Restricted Project

Aug 28 2019

aaronpuchert added a comment to D66919: Warn about zero-parameter K&R definitions in -Wstrict-prototypes.

Note that I'm just copying GCC, which seems the be the original intent behind the warning (https://bugs.llvm.org/show_bug.cgi?id=20796). So people who use both compilers will have seen that warning already. Note also that there is no warning if any declaration provides a prototype, so this is fine:

Aug 28 2019, 7:30 PM · Restricted Project
aaronpuchert updated the diff for D55326: [Driver] Fix incorrect GNU triplet for PowerPC on SUSE Linux.

Added a test case, verified that it fails before the change.

Aug 28 2019, 6:51 PM · Restricted Project
aaronpuchert commandeered D55326: [Driver] Fix incorrect GNU triplet for PowerPC on SUSE Linux.
Aug 28 2019, 6:51 PM · Restricted Project
aaronpuchert created D66919: Warn about zero-parameter K&R definitions in -Wstrict-prototypes.
Aug 28 2019, 6:10 PM · Restricted Project

Aug 10 2019

aaronpuchert added a comment to D55326: [Driver] Fix incorrect GNU triplet for PowerPC on SUSE Linux.

Sorry for warming this up again, but it would be nice to get rid of this patch in openSUSE.

Aug 10 2019, 7:52 AM · Restricted Project

Jul 30 2019

Herald added a project to D41296: Limit size of non-GlobalValue name: Restricted Project.

Why don't we just cap all names at some point (and then just start adding numbers as we generally do to break degeneracies). It seems like, otherwise, we'll end up with these kinds of fixes in many places. Fixing this in one common place seems better.

Jul 30 2019, 5:39 PM · Restricted Project
aaronpuchert added inline comments to D65184: [Sema] Thread Safety Analysis: Make negative capability typeless..
Jul 30 2019, 2:37 PM · Restricted Project