Page MenuHomePhabricator

Quuxplusone (Arthur O'Dwyer)
User

Projects

User does not belong to any projects.

User Details

User Since
Dec 27 2014, 8:52 PM (300 w, 16 h)

Recent Activity

Fri, Sep 25

Quuxplusone added a comment to D88295: [Sema] Fix volatile check when test if a return object can be implicitly move.

(This patch was split out from D88220 at my request.)

Fri, Sep 25, 5:53 AM · Restricted Project

Thu, Sep 24

Quuxplusone added a comment to D88220: [C++20] Implement more implicit moves for return statements(Part of P1825R0).

I'd like to see some indication in the code comments, in the commit message, and/or in cxx_status.html, explaining what parts of P1825 are implemented and what parts remain unimplemented after this patch. (My ideal would be to hold this patch up until it completely implements P1825. That way we minimize the number of minor divergences in implementation quality that people will have to memorize: Clang 10 does X, Clang 11 does Y, Clang 12 does Z... let's just jump straight from X to Z if at all humanly possible.)

Thu, Sep 24, 9:31 AM · Restricted Project

Wed, Sep 9

Quuxplusone added inline comments to D85091: [Sema, CodeGen] Implement [[likely]] and [[unlikely]] in IfStmt.
Wed, Sep 9, 11:16 AM · Restricted Project, Restricted Project

Aug 25 2020

Quuxplusone added a comment to D86559: [Sema, CodeGen] Allow [[likely]] and [[unlikely]] on labels.

This feels like the wrong approach to me... but I admit that I don't know what the "right" approach might be. (I doubt any right approach exists.)

if (ch == ' ') [[likely]] {
    goto whitespace;  // A
} else if (ch == '\n' || ch == '\t') [[unlikely]] {
    goto whitespace;  // B
} else {
    foo();
}
[[likely]] whitespace: bar();  // C

It seems like this patch would basically "copy" the [[likely]] attribute from line C up to lines A and B, where it would reinforce the likelihood of path A and (maybe?) "cancel out" the unlikelihood of path B, without actually saying anything specifically about the likelihood of label C (which is surely what the programmer intended by applying the attribute, right?). OTOH, I can't think of any particular optimization that would care about the likelihood of label C. I could imagine trying to align label C to a 4-byte boundary or something, but that wouldn't be an optimization on any platform as far as I know.

Aug 25 2020, 11:51 AM · Restricted Project

Aug 17 2020

Quuxplusone added inline comments to D85091: [Sema, CodeGen] Implement [[likely]] and [[unlikely]] in IfStmt.
Aug 17 2020, 7:59 AM · Restricted Project, Restricted Project

Aug 10 2020

Quuxplusone added inline comments to D85091: [Sema, CodeGen] Implement [[likely]] and [[unlikely]] in IfStmt.
Aug 10 2020, 7:43 AM · Restricted Project, Restricted Project

Aug 8 2020

Quuxplusone added a comment to D85545: [Diagnostics] Diagnose missing comma in string array initialization.

LGTM; nothing further from me!

Aug 8 2020, 10:04 AM · Restricted Project

Aug 7 2020

Quuxplusone added inline comments to D85545: [Diagnostics] Diagnose missing comma in string array initialization.
Aug 7 2020, 1:30 PM · Restricted Project

Aug 6 2020

Quuxplusone added inline comments to D85097: [Sema] add warning for comparisons like 'x<=y<=z'.
Aug 6 2020, 12:08 PM · Restricted Project

Aug 2 2020

Quuxplusone added inline comments to D85097: [Sema] add warning for comparisons like 'x<=y<=z'.
Aug 2 2020, 6:43 PM · Restricted Project
Quuxplusone added inline comments to D85097: [Sema] add warning for comparisons like 'x<=y<=z'.
Aug 2 2020, 6:40 PM · Restricted Project
Quuxplusone added a comment to D85097: [Sema] add warning for comparisons like 'x<=y<=z'.

Btw, this is an awesome patch! I'm looking forward to getting to use it.

Aug 2 2020, 11:08 AM · Restricted Project
Quuxplusone added inline comments to D85097: [Sema] add warning for comparisons like 'x<=y<=z'.
Aug 2 2020, 11:03 AM · Restricted Project

Jul 29 2020

Quuxplusone added inline comments to D79714: [Diagnostics] Restore -Wdeprecated warning when user-declared copy assignment operator is defined as deleted (PR45634).
Jul 29 2020, 9:16 AM · Restricted Project

Jul 21 2020

Quuxplusone added a comment to D84244: [clang] Disable -Wsuggest-override for unittests/.

For GTest and GMock specifically, it would be a good medium-term idea to try to upstream patches into those libraries. I did eventually have success upstreaming fixes for -Wdeprecated into GTest, for example: https://github.com/google/googletest/pull/2815
Disabling the warning in unittests for now still seems like a good short-term fix though.

Jul 21 2020, 9:22 AM · Restricted Project

Jul 6 2020

Quuxplusone added a comment to D82728: [clang] Add -Wsuggest-override.

(the presence of at least one "override" being a signal the user intended to use override and missed some [...]

Jul 6 2020, 12:48 PM · Restricted Project

Jul 5 2020

Quuxplusone added inline comments to D77598: Integral template argument suffix and cast printing.
Jul 5 2020, 12:15 PM · Restricted Project

Jun 30 2020

Quuxplusone abandoned D82736: [clangd] Rename FS.view(None) to FS.viewWithDefaultCWD().

Superseded by D82793. :)

Jun 30 2020, 7:00 AM · Restricted Project

Jun 29 2020

Quuxplusone added a comment to D82736: [clangd] Rename FS.view(None) to FS.viewWithDefaultCWD().

viewWithDefaultCWD suggests to me the default has some semantics which don't exist, if using this API "shape" I'd substitute Arbitrary here

Jun 29 2020, 8:03 AM · Restricted Project

Jun 28 2020

Quuxplusone created D82736: [clangd] Rename FS.view(None) to FS.viewWithDefaultCWD().
Jun 28 2020, 10:59 PM · Restricted Project

Jun 26 2020

Quuxplusone added a comment to D82617: Disable GCC's -Woverloaded-virtual, which has false positives..

what would be really useful is to clarify your position on whether the warning in clang is delivering value

Jun 26 2020, 1:08 PM · Restricted Project
Quuxplusone added a comment to D82617: Disable GCC's -Woverloaded-virtual, which has false positives..

FWIW, I think the example you gave is correct for GCC to warn on.

Everything the warning says is correct, but in this pattern the polymorphic usage is the whole point of the hierarchy, the subclasses are never exposed. There's no actual danger of confusion.

Jun 26 2020, 11:29 AM · Restricted Project
Quuxplusone added inline comments to D81920: [clangd] Change FSProvider::getFileSystem to take CurrentWorkingDirectory.
Jun 26 2020, 8:10 AM · Restricted Project
Quuxplusone added a comment to D82617: Disable GCC's -Woverloaded-virtual, which has false positives..

FWIW, I think the example you gave is correct for GCC to warn on. You said:

class Base {
  virtual void foo(); // to be overridden
  void foo(int); // implemented in terms of foo()
};

foo(int) is hidden in derived classes. So if someone derives from Base (which someone must, because Base is polymorphic), then the derived class violates the Liskov substitution principle: it doesn't have an obj.foo(42) method. The correct solution is to rename the implementation method from foo() to e.g. fooImpl() or (my personal style, following the NVI idiom) do_foo().

Jun 26 2020, 8:10 AM · Restricted Project

Jun 25 2020

Quuxplusone created D82589: Fix some typos in the comment header for <regex>.
Jun 25 2020, 11:20 AM · Restricted Project

May 22 2020

Quuxplusone added inline comments to D79800: [Sema] Implement DR2233.
May 22 2020, 12:37 AM · Restricted Project

May 21 2020

Quuxplusone added inline comments to D79800: [Sema] Implement DR2233.
May 21 2020, 10:45 PM · Restricted Project
Quuxplusone added inline comments to D80079: [clang-format] [NFC] isCpp() is inconsistently used to mean both C++ and Objective C, add language specific isXXX() functions.
May 21 2020, 10:15 AM · Restricted Project, Restricted Project

May 13 2020

Quuxplusone added inline comments to D79714: [Diagnostics] Restore -Wdeprecated warning when user-declared copy assignment operator is defined as deleted (PR45634).
May 13 2020, 9:10 AM · Restricted Project

May 11 2020

Quuxplusone added inline comments to D79714: [Diagnostics] Restore -Wdeprecated warning when user-declared copy assignment operator is defined as deleted (PR45634).
May 11 2020, 8:01 AM · Restricted Project

Apr 27 2020

Quuxplusone added inline comments to D78938: Make LLVM build in C++20 mode.
Apr 27 2020, 10:43 AM · Restricted Project, Restricted Project

Apr 23 2020

Quuxplusone added inline comments to D78785: Fix x86/x86_64 calling convention for _ExtInt.
Apr 23 2020, 9:42 PM · Restricted Project

Apr 20 2020

Quuxplusone added inline comments to D78511: [Driver][doc] Document option -mtune as a no-op. NFC..
Apr 20 2020, 1:00 PM · Restricted Project

Apr 17 2020

Quuxplusone added inline comments to D46317: [clang-tidy] New check bugprone-map-subscript-operator-lookup.
Apr 17 2020, 8:05 AM · Restricted Project

Apr 3 2020

Quuxplusone updated subscribers of D76572: Replace `T(x)` with `reinterpret_cast<T>(x)` everywhere it means reinterpret_cast. No functional change.

Ah. Then I'm not sure who else to ping, or even which pieces remain in need of review.
CODE_OWNERS.TXT isn't being very helpful here...
@kparzysz for HexagonCommonGEP.cpp ("Hexagon backend")?
@Bigcheese for Binary.h ("Object")?

Apr 3 2020, 2:05 PM · Restricted Project
Quuxplusone added a comment to D76572: Replace `T(x)` with `reinterpret_cast<T>(x)` everywhere it means reinterpret_cast. No functional change.

@DiggerLin @ahatanak @espindola @reames Gentle ping!

Apr 3 2020, 12:57 PM · Restricted Project

Mar 25 2020

Quuxplusone added a comment to D76572: Replace `T(x)` with `reinterpret_cast<T>(x)` everywhere it means reinterpret_cast. No functional change.

Btw, @jhenderson and @rsmith, if you wanted to land your own files' pieces of this patch while waiting on whoever-it-is to approve the pieces in other files, that'd be cool. As I mentioned initially, I don't have the access necessary to land any part of it myself.

Mar 25 2020, 12:27 PM · Restricted Project

Mar 23 2020

Quuxplusone added a comment to D76572: Replace `T(x)` with `reinterpret_cast<T>(x)` everywhere it means reinterpret_cast. No functional change.

Passing-by remark:

I wrote a Clang warning [not pictured] to diagnose any use of T(x) which was not equivalent to static_cast<T>(x).

I'm not sure whether or not this will pass the bar for a clang diagnostic

I'd like to try it out on a larger codebase, but it sounds at least potentially good to me. There's a simple syntactic workaround (use (T)x instead of T(x)), and there's a high likelihood that the code doesn't mean what the programmer intended.

Does the warning catch the cases where the code is equivalent to static_cast<T>(x) except that it ignores access? That seems like a really good thing to warn on regardless of whether we warn on the general case.

Mar 23 2020, 1:06 PM · Restricted Project
Quuxplusone added a comment to D76572: Replace `T(x)` with `reinterpret_cast<T>(x)` everywhere it means reinterpret_cast. No functional change.
Mar 23 2020, 7:36 AM · Restricted Project
Quuxplusone updated the diff for D76572: Replace `T(x)` with `reinterpret_cast<T>(x)` everywhere it means reinterpret_cast. No functional change.

@jhenderson: Updated! clang-format's suggested linebreaks look horrendous to me, but if this makes that buildbot happy, okay... I guess the moral of the story is "deeply nested expressions that also use lots of reinterpret_casts, should be avoided," and I can't argue with that. ;)

Mar 23 2020, 7:36 AM · Restricted Project

Mar 22 2020

Quuxplusone created D76572: Replace `T(x)` with `reinterpret_cast<T>(x)` everywhere it means reinterpret_cast. No functional change.
Mar 22 2020, 1:23 PM · Restricted Project

Mar 14 2020

Quuxplusone added a comment to D74692: [clang-tidy][bugprone-use-after-move] Warn on std::move for consts.

I still think this entire patch is misguided; there's no reason to make the note for const std::string s; std::move(s) any longer than the note for int i; std::move(i) or volatile std::string v; std::move(v). People should not be using moved-from objects, period; and those who want to use moved-from objects, should not enable this clang-tidy check.

Mar 14 2020, 4:07 PM · Restricted Project, Restricted Project

Mar 13 2020

Quuxplusone added inline comments to D72282: [clang-tidy] Add `bugprone-unintended-adl`.
Mar 13 2020, 11:17 AM · Restricted Project, Restricted Project

Mar 11 2020

Quuxplusone added inline comments to D72282: [clang-tidy] Add `bugprone-unintended-adl`.
Mar 11 2020, 7:47 PM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D72282: [clang-tidy] Add `bugprone-unintended-adl`.
Mar 11 2020, 5:35 PM · Restricted Project, Restricted Project

Mar 7 2020

Quuxplusone added inline comments to D74692: [clang-tidy][bugprone-use-after-move] Warn on std::move for consts.
Mar 7 2020, 7:28 AM · Restricted Project, Restricted Project
Quuxplusone added a comment to D74692: [clang-tidy][bugprone-use-after-move] Warn on std::move for consts.

Anyway, I still don't see the point of this patch. It seems like you're just duplicating the work of performance-move-const-arg. People who want to be shown notes about moves-of-const-args should just enable that check instead.

Mar 7 2020, 7:28 AM · Restricted Project, Restricted Project

Mar 2 2020

Quuxplusone added inline comments to D74361: [Clang] Undef attribute for global variables.
Mar 2 2020, 3:39 PM · Restricted Project
Quuxplusone added inline comments to D74361: [Clang] Undef attribute for global variables.
Mar 2 2020, 12:29 PM · Restricted Project
Quuxplusone added inline comments to D74361: [Clang] Undef attribute for global variables.
Mar 2 2020, 11:36 AM · Restricted Project

Feb 27 2020

Quuxplusone added inline comments to D74361: [Clang] Undef attribute for global variables.
Feb 27 2020, 6:54 PM · Restricted Project

Feb 26 2020

Quuxplusone added inline comments to D74692: [clang-tidy][bugprone-use-after-move] Warn on std::move for consts.
Feb 26 2020, 6:54 AM · Restricted Project, Restricted Project
Quuxplusone retitled D74692: [clang-tidy][bugprone-use-after-move] Warn on std::move for consts from [clang-tidy][bugprone-use-after-mnove] Warn on std::move for consts to [clang-tidy][bugprone-use-after-move] Warn on std::move for consts.
Feb 26 2020, 6:45 AM · Restricted Project, Restricted Project

Feb 19 2020

Quuxplusone added a comment to D74692: [clang-tidy][bugprone-use-after-move] Warn on std::move for consts.

(I sent this to the mailing list, but I guess it doesn't show up here unless I do it through Phab. Quoting myself—)

Feb 19 2020, 7:56 PM · Restricted Project, Restricted Project

Feb 11 2020

Quuxplusone added a comment to D74251: [libc++] Make sure that vector copy-construction is disabled for non-copyable types.

LGTM! Nice.

Feb 11 2020, 8:09 AM · Restricted Project

Feb 8 2020

Quuxplusone added a comment to D74290: [libcxx] Qualify make_move_iterator in vector::insert for input iterators.

I don't understand the actual algorithm being used in insert-with-input-iterators, but the ADL change certainly looks good to me. :)

Feb 8 2020, 6:54 PM · Restricted Project
Quuxplusone added a comment to D74287: [libcxx] Fix unintended ADL inside ref(reference_wrapper<T>) and cref(reference_wrapper<T>).

@logan-5: LGTM! (not that I have any power to commit it).

Feb 8 2020, 1:00 PM · Restricted Project

Feb 6 2020

Quuxplusone added a comment to D72640: [libcxx] Qualify make_pair in searcher implementations to prevent ADL.

@EricWF ping! (@logan-5 says he needs someone to land this patch, and I think that's you.)

Feb 6 2020, 11:19 AM · Restricted Project

Jan 30 2020

Quuxplusone added inline comments to D73675: Avoid many std::tie/tuple instantiations in ASTImporter.
Jan 30 2020, 6:49 AM · Restricted Project

Jan 29 2020

Quuxplusone added inline comments to D73675: Avoid many std::tie/tuple instantiations in ASTImporter.
Jan 29 2020, 5:27 PM · Restricted Project

Jan 28 2020

Quuxplusone added inline comments to D73548: [clang-tidy] Added option for disabling const qualifiers in readability-qualified-auto.
Jan 28 2020, 7:17 AM · Restricted Project, Restricted Project

Jan 26 2020

Quuxplusone added inline comments to D73441: [clang-tidy] Fix bugprone-use-after-move when move is in noexcept operator.
Jan 26 2020, 5:53 PM · Restricted Project, Restricted Project

Jan 24 2020

Quuxplusone added a comment to D71059: [LLD][ELF] Add time-trace to ELF LLD (1/2).

I'm not qualified to comment on the functionality. This seems like it'll be OK with respect to thread_local on Mac OSX. No further comments from me.

Jan 24 2020, 8:04 AM · Restricted Project

Jan 13 2020

Quuxplusone added a comment to D72640: [libcxx] Qualify make_pair in searcher implementations to prevent ADL.

there seems to be an issue with a vector<value_type> __scratch in a helper function that I don't understand

Jan 13 2020, 2:30 PM · Restricted Project

Jan 8 2020

Quuxplusone updated subscribers of D72282: [clang-tidy] Add `bugprone-unintended-adl`.

Re which libc++ folks could give feedback on this ADL-diagnosing patch: I don't know precisely, but the candidates are few! @mclow.lists @EricWF @ldionne @zoecarver @CaseyCarter.

Jan 8 2020, 6:15 PM · Restricted Project, Restricted Project
Quuxplusone added a comment to D72282: [clang-tidy] Add `bugprone-unintended-adl`.

Repeating for emphasis: This is awesome. :)

Jan 8 2020, 10:49 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D72282: [clang-tidy] Add `bugprone-unintended-adl`.
Jan 8 2020, 10:40 AM · Restricted Project, Restricted Project

Jan 7 2020

Quuxplusone added a comment to D50119: P1144 "Trivially relocatable" (0/3): Compiler support for `__is_trivially_relocatable(T)`.

If the committee is actively looking into this problem and considering multiple alternatives, I don't see a particular need to accept your proposal into Clang in advance of the committee's decision. Arguably that would even be somewhat inappropriate, since it might be seen as an endorsement of your proposal over the alternatives, which I don't believe anyone from Clang has looked into. Letting the committee make a decision also addresses our disagreements about the language design and avoids introducing unnecessary divergence if the eventually-accepted design doesn't match your proposal.

Having a workable patch that you've taken advantage of in various projects should count as implementation experience for the committee's purposes.

If the committee *isn't* taking this up, they absolutely should, though.

Jan 7 2020, 1:46 PM · Restricted Project
Quuxplusone added a comment to D50119: P1144 "Trivially relocatable" (0/3): Compiler support for `__is_trivially_relocatable(T)`.

@rjmccall ping? any further thoughts on [[maybe_trivially_relocatable]], in light of the followup libc++ patches? (Those patches do not use [[maybe_trivially_relocatable]], although that may just be because I wrote them.)

Jan 7 2020, 11:42 AM · Restricted Project

Jan 6 2020

Quuxplusone added inline comments to D71059: [LLD][ELF] Add time-trace to ELF LLD (1/2).
Jan 6 2020, 1:11 PM · Restricted Project

Jan 1 2020

Quuxplusone updated the diff for D67524: P1144 "Trivially relocatable" (3/3): optimize std::vector reallocate/insert and std::swap for trivially relocatable types.

Migrate to the monorepo.
@EricWF ping? What's the deal with this new benchmark?

Jan 1 2020, 4:56 PM · Restricted Project
Quuxplusone updated the diff for D61761: P1144 "Trivially relocatable" (1/3): is_trivially_relocatable, relocate_at, and uninitialized_relocate.

Migrate to the monorepo.
@ldionne @EricWF ping?

Jan 1 2020, 4:56 PM · Restricted Project
Quuxplusone updated the diff for D63620: P1144 "Trivially relocatable" (2/3): explicit warrants for std library types.

Migrate to the monorepo.

Jan 1 2020, 4:56 PM · Restricted Project
Quuxplusone updated the diff for D50119: P1144 "Trivially relocatable" (0/3): Compiler support for `__is_trivially_relocatable(T)`.

Migrate this patch to the monorepo.
Apply @Mordante's improvements and test-suite fixes.
This patch now passes all tests (although it had to change the expected output of some of them).

Jan 1 2020, 4:47 PM · Restricted Project

Dec 23 2019

Quuxplusone added inline comments to D71548: Fix time trace multi threaded support with LLVM_ENABLE_THREADS=OFF.
Dec 23 2019, 2:23 PM · Restricted Project
Quuxplusone added inline comments to D71548: Fix time trace multi threaded support with LLVM_ENABLE_THREADS=OFF.
Dec 23 2019, 1:28 PM · Restricted Project
Quuxplusone added inline comments to D71548: Fix time trace multi threaded support with LLVM_ENABLE_THREADS=OFF.
Dec 23 2019, 5:08 AM · Restricted Project

Dec 16 2019

Quuxplusone added a comment to D71059: [LLD][ELF] Add time-trace to ELF LLD (1/2).

This patch breaks the build on Apple Clang (Mac OSX 10.13.6).

Dec 16 2019, 5:50 AM · Restricted Project

Nov 19 2019

Quuxplusone added a comment to D70390: [clang-tidy] new performance-no-automatic-move check..

Hi, I'm the main original author (although I would not claim "current maintainer") of the Clang warning.
Clang doesn't warn about const vector<int> v; return v; because in that case, adding std::move to the return would not help anything. I had not considered that we might suggest a "fixit" of "Change the declared type of this variable from vector to const vector"; that sounds like a big non-local change whose correctness would be very difficult to verify. I think (FWIW) that such a fixit would be a very hard sell, but at the same time I admit that I had not even thought of it when I was working on the diagnostic originally.

Nov 19 2019, 7:26 AM · Restricted Project, Restricted Project

Nov 7 2019

Quuxplusone added a comment to D69762: [Diagnostics] Try to improve warning message for -Wreturn-type.

How about "this non-void {function|block} {may|does} not return a value"

Nov 7 2019, 1:18 PM · Restricted Project, Restricted Project
Quuxplusone added a comment to D58896: Suppress -Wchar-subscripts if the index is a literal char.

Well, i am not sure if one twitter report is good motivation to criple warning.

The motivation for suppressing the warning was that it is not uncommon to use a character literal in lookup tables. In addition in brings the warning inline with the behaviour of -Wchar-subscripts in GCC.

Nov 7 2019, 12:42 PM · Restricted Project
Quuxplusone added inline comments to D69762: [Diagnostics] Try to improve warning message for -Wreturn-type.
Nov 7 2019, 12:41 PM · Restricted Project, Restricted Project

Oct 30 2019

Quuxplusone added inline comments to D68845: Don't emit unwanted constructor calls in co_return statements.
Oct 30 2019, 7:10 AM · Restricted Project

Oct 29 2019

Quuxplusone added a comment to D67524: P1144 "Trivially relocatable" (3/3): optimize std::vector reallocate/insert and std::swap for trivially relocatable types.

@EricWF ping!

Oct 29 2019, 2:35 PM · Restricted Project
Quuxplusone updated the diff for D67524: P1144 "Trivially relocatable" (3/3): optimize std::vector reallocate/insert and std::swap for trivially relocatable types.

Rebased on master, and fixed an exception-safety bug in my patch to vector::insert/erase.

Oct 29 2019, 2:33 PM · Restricted Project
Quuxplusone updated the diff for D63620: P1144 "Trivially relocatable" (2/3): explicit warrants for std library types.

Rebased on master.

Oct 29 2019, 2:28 PM · Restricted Project
Quuxplusone updated the diff for D61761: P1144 "Trivially relocatable" (1/3): is_trivially_relocatable, relocate_at, and uninitialized_relocate.

Rebased on master.

Oct 29 2019, 2:26 PM · Restricted Project

Oct 23 2019

Quuxplusone added a reviewer for D67524: P1144 "Trivially relocatable" (3/3): optimize std::vector reallocate/insert and std::swap for trivially relocatable types: EricWF.

I'm putting the benchmarks right here in this patch so that @EricWF can run them. (Zoe and I produced some good-looking benchmark numbers earlier tonight, with code similar to this code; but my build tree is too screwed up to reproduce them on demand.)

Oct 23 2019, 9:19 AM · Restricted Project

Oct 16 2019

Quuxplusone added inline comments to D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..
Oct 16 2019, 12:31 PM

Oct 15 2019

Quuxplusone added a comment to D67524: P1144 "Trivially relocatable" (3/3): optimize std::vector reallocate/insert and std::swap for trivially relocatable types.

@EricWF ping!

Oct 15 2019, 6:58 AM · Restricted Project

Oct 11 2019

Quuxplusone updated subscribers of D68845: Don't emit unwanted constructor calls in co_return statements.

One more test to add:

struct Widget {
    task<Widget> foo() && {
        co_return *this;  // IIUC this should call return_value(Widget&), not return_value(Widget&&)
    }
};
Oct 11 2019, 10:23 AM · Restricted Project

Oct 10 2019

Quuxplusone added a comment to D68845: Don't emit unwanted constructor calls in co_return statements.

Oh, and can you please make sure there are test cases for all the various cases covered in P1155? Specifically, I would expect all three of the following test cases to compile successfully. It looks like they compile successfully in trunk right now (Godbolt), so we're just testing that they don't get broken in the future.

Oct 10 2019, 9:56 PM · Restricted Project
Quuxplusone added inline comments to D68845: Don't emit unwanted constructor calls in co_return statements.
Oct 10 2019, 9:38 PM · Restricted Project

Oct 9 2019

Quuxplusone added inline comments to D51741: [coro]Pass rvalue reference for named local variable to return_value.
Oct 9 2019, 2:07 PM · Restricted Project
Quuxplusone added a comment to D51741: [coro]Pass rvalue reference for named local variable to return_value.

This change breaks the following code that worked before:

task<MoveOnly&> f(MoveOnly &value) {
  co_return value;
}
Oct 9 2019, 12:23 PM · Restricted Project
Quuxplusone added inline comments to D68681: [libc++][test] Miscellaneous MSVC cleanups.
Oct 9 2019, 10:27 AM · Restricted Project
Quuxplusone added inline comments to D68681: [libc++][test] Miscellaneous MSVC cleanups.
Oct 9 2019, 6:44 AM · Restricted Project

Oct 8 2019

Quuxplusone added a comment to D67524: P1144 "Trivially relocatable" (3/3): optimize std::vector reallocate/insert and std::swap for trivially relocatable types.

I'm putting the benchmarks right here in this patch so that @EricWF can run them. (Zoe and I produced some good-looking benchmark numbers earlier tonight, with code similar to this code; but my build tree is too screwed up to reproduce them on demand.)

Oct 8 2019, 9:57 AM · Restricted Project

Sep 28 2019

Quuxplusone added a comment to D68185: [Diagnostics] Warn when class implements a copy constructor/copy assignment operator, but missing the copy assignment operator/copy constructor.

Please add test cases showing the intended behavior for

  • when the copy constructor is explicitly defaulted but the copy assignment operator is {implicitly defaulted, implicitly deleted, user-provided}
  • when the copy assignment operator is explicitly defaulted but the copy constructor is {implicitly defaulted, implicitly deleted, user-provided}
  • when the {copy constructor, copy assignment operator} is user-provided but the other is implicitly deleted
Sep 28 2019, 1:37 PM · Restricted Project

Sep 22 2019

Quuxplusone added a comment to D67897: Fix __is_signed builtin.

But std::is_signed_v<float> needs to yield false.

It should yield true; the spec says "If is_­arithmetic_­v<T> is true, the same result as T(-1) < T(0); otherwise, false".

Sep 22 2019, 5:16 PM · Restricted Project