- User Since
- Dec 27 2014, 8:52 PM (207 w, 3 d)
Fri, Dec 14
Thu, Dec 13
LGTM at this point modulo my two comments (one important but trivial, the other completely trivial).
I don't know whether Chandler's concern about __has_feature in "include/llvm/ADT/PointerIntPair.h" has been 100% resolved yet — @chandlerc?
Tue, Dec 11
@courbet: On the cpplang Slack, Peter Feichtinger mentioned that defaulted template arguments should perhaps be treated differently. Is there any way to suppress the , std::allocator<int> part of this diagnostic? https://godbolt.org/z/TM0UHc
Mon, Dec 10
Address review comments.
Sun, Dec 9
@EricWF ping? This still needs someone to land it; I don't have commit privs. Thanks!
Sat, Dec 8
Fri, Dec 7
Thu, Dec 6
Rename -Wc++14-compat-ctad to just -Wctad, per @rsmith's comment to "move this out of -Wc++14-compat."
Tue, Dec 4
Fri, Nov 30
Looks fine to me; please don't let me block this any further. :) Someone else, e.g. @aaron.ballman, should be the one to accept it, though.
Thu, Nov 29
LGTM, for what that's worth!
Wed, Nov 28
My comment on D54472 didn't mention it because I thought it would be obvious, but the same pattern applies to your proposed diffs in "include/llvm/ADT/Optional.h".
Tue, Nov 27
Extend my check to include return ++x, which catches a couple more cases. These are iterator types, which means they are presumably "cheap" to copy; but they aren't trivial, unless my checker has a bug. :)
Mon, Nov 26
Sun, Nov 25
Wed, Nov 21
Change 1 << to size_t(1) << in one last place. @EricWF ping.
Tue, Nov 20
Mon, Nov 19
This is what I see when building make -j5 check-cxx with Clang trunk (built from source) on OS X.
Nov 17 2018
Implement [[clang::maybe_trivially_relocatable]] along the lines suggested by @rjmccall. The idea is that there are two levels of "opt-in-ness."
Nov 16 2018
Use [[clang::trivially_relocatable]] instead of [[trivially_relocatable]].
Canonicalize in QualType::isTriviallyRelocatableType.
Slight wording tweaks to the documentation.
Added a test case (partly copied from test/SemaCXX/cxx14-compat.cpp).
Discussed offline with @ldionne and my verdict was "If there is any rule for adding these attributes, then the current codebase doesn't follow that rule very well." So, abandoning; and if there's any ad-hoc fix to be made in the areas touched by this patch, then Louis can make it.
Nov 14 2018
Third time's the charm!
Fix naming. (Uploaded an earlier diff by accident.)
Nov 13 2018
Re-add _LIBCPP_TYPE_VIS to __assoc_sub_state because it is mentioned in the mangled names of functions exported from src/future.cpp.
Remove _LIBCPP_AVAILABILITY_FUTURE from types that aren't supposed to be visible to user-programmers anyway (IIUC).
Nov 11 2018
Oct 3 2018
Rebased on master. Added @ldionne as reviewer.
Sep 15 2018
Sep 6 2018
Aug 24 2018
Aug 22 2018
Aug 21 2018
Update to match the wording in D1144R0 draft revision 13. There's no longer any need to fail when we see a mutable member; on the other hand, we *always* need to perform the special member lookup to find out if our class is move-constructible and destructible.
Aug 19 2018
Aug 18 2018
Aug 17 2018
A type with no move-constructor, and some non-defaulted copy-constructors (even if it *also* has some defaulted copy-constructors) should not be considered naturally trivially relocatable. The paper already said this, but the Clang patch was misimplemented.
Aug 16 2018
I think that, ultimately, this warning isn't worth the code complexity in clang to support it.
Aug 14 2018
Rebased, and ping!
Aug 13 2018
Aug 11 2018
Aug 7 2018
Aug 3 2018
Correctly drop the attribute from non-relocatable instantiations of class templates (even though they don't print the diagnostic).
Aug 2 2018
Further removal of dead code based on @Rakete1111's feedback.
Aug 1 2018
Address feedback from @Rakete1111. Fix wrong ordering of 'class|struct|...' in the diagnostic. Add union test cases. Correctly drop the attribute whenever it is diagnosed as inapplicable.
Jul 31 2018
Jul 30 2018
@lichray: I'm interested in merging this patch into my libc++ fork, but the latest update seems to be missing a ton of files. For example charconv_test_helpers.h is included by one of the tests, but does not exist. Also there's a lot of boilerplate missing: you ought to add the new header to module.modulemap, and to double_include.sh.cpp, and so on. Might you upload a new patch anytime soon?
@mclow.lists: Well, anyway, is this pure refactoring acceptable, or would you prefer to keep these helpers inside allocator_traits until a better solution to constexpr-memcpy can be invented?
Jul 27 2018
@ldionne: I don't know if your "LGTM" is necessarily sufficient to commit this or not; but either way, I don't have commit privs, so could I ask you (or someone else) to commit this on my behalf? Thanks!