[PATCH] D41316: [libcxx] Allow random_device to be built optionally

2018-02-09 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added inline comments. Comment at: test/std/experimental/filesystem/lit.local.cfg:5 + +# filesystem_test_helper uses random_device to generate random path. +if 'libcpp-has-no-random-device' in config.available_features: EricWF wrote: > EricWF wrote: > > I

[PATCH] D42344: [libc++] Use multi-key tree search for {map, set}::{count, equal_range}

2018-02-09 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF closed this revision. EricWF added a comment. Committed as r324799. Thank you! https://reviews.llvm.org/D42344 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D41458: [libc++][C++17] Elementary string conversions for integral types

2018-02-09 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. Some initial thoughts. @mclow.lists Are you planning on moving forward with your implementation as well? Comment at: include/charconv:89 +_LIBCPP_BEGIN_NAMESPACE_STD + +enum class _LIBCPP_ENUM_VIS chars_format We need to hide these nam

[PATCH] D41458: [libc++][C++17] Elementary string conversions for integral types

2018-02-09 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. @lichray I should have mentioned: Although this header is C++17 only, the bits compiled into the dylib need to compile as C++11 still. Repository: rCXX libc++ https://reviews.llvm.org/D41458 ___ cfe-commits mailing list c

[PATCH] D43166: Add default C++ ABI libname and include paths for FreeBSD

2018-02-11 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added inline comments. Comment at: CMakeLists.txt:141 +set(LIBCXX_CXX_ABI_LIBNAME "libcxxrt") +set(LIBCXX_CXX_ABI_INCLUDE_PATHS "/usr/include/c++/v1") else() Actually, I'm not sure how much I love having other libc++ header on the include path.

[PATCH] D43166: Add default C++ ABI libname and include paths for FreeBSD

2018-02-11 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added inline comments. Comment at: CMakeLists.txt:141 +set(LIBCXX_CXX_ABI_LIBNAME "libcxxrt") +set(LIBCXX_CXX_ABI_INCLUDE_PATHS "/usr/include/c++/v1") else() EricWF wrote: > Actually, I'm not sure how much I love having other libc++ header on th

[PATCH] D43159: Modernize: Use nullptr more.

2018-02-11 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. So my main concern with this patch is that `nullptr` is actually `#defined`'ed in C++03 mode. That definition comes from the `__nullptr` header, and therefore we would need to add that header to each include which uses it. Which kind of sucks. Repository: rCXX libc+

[PATCH] D42354: Fix libcxx MSVC C++17 redefinition of 'align_val_t'

2018-02-11 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF closed this revision. EricWF added a comment. Committed as r324853. Repository: rCXX libc++ https://reviews.llvm.org/D42354 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D43224: Fix typos.

2018-02-12 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF accepted this revision. EricWF added a comment. This revision is now accepted and ready to land. LGTM. Repository: rCXX libc++ https://reviews.llvm.org/D43224 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cg

[PATCH] D42755: [libcxx] Fix last_write_time tests for filesystems that don't support very small times.

2018-02-13 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. LGTM except the removal of the test. I think it's probably valuable to keep around on platforms that allow it. What do you think? Comment at: libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp:360 - -

[PATCH] D42755: [libcxx] Fix last_write_time tests for filesystems that don't support very small times.

2018-02-13 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added inline comments. Comment at: libcxx/test/std/experimental/filesystem/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp:360 - -ec = GetTestEC(); -last_write_time(p, Clock::now()); vsapsai wrote: > EricWF wrote: > > I would really lov

[PATCH] D42139: Allow passing additional compiler/linker flags for the tests

2018-02-19 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF accepted this revision. EricWF added a comment. This revision is now accepted and ready to land. I'm fine with this, but I don't really think it's a good solution (but none of our LIT config is ideal). In particular for the link flags might not work well, because the order of linker flags

[PATCH] D40218: [Clang] Add __builtin_launder

2018-02-19 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 134986. EricWF added a comment. Ping. https://reviews.llvm.org/D40218 Files: include/clang/Basic/Builtins.def include/clang/Basic/DiagnosticSemaKinds.td lib/AST/ExprConstant.cpp lib/CodeGen/CGBuiltin.cpp lib/Sema/SemaChecking.cpp test/CodeGen/bui

[PATCH] D43047: [Builtins] Overload __builtin_operator_new/delete to allow forwarding to usual allocation/deallocation functions.

2018-02-19 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 134989. EricWF added a comment. Ping. https://reviews.llvm.org/D43047 Files: include/clang/Basic/Builtins.def include/clang/Basic/DiagnosticSemaKinds.td include/clang/Sema/Sema.h lib/CodeGen/CGBuiltin.cpp lib/CodeGen/CGExprCXX.cpp lib/CodeGen/Cod

[PATCH] D37035: Implement __builtin_LINE() et. al. to support source location capture.

2018-02-19 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 134987. EricWF added a comment. Ping. https://reviews.llvm.org/D37035 Files: docs/LanguageExtensions.rst include/clang/AST/Expr.h include/clang/AST/ExprCXX.h include/clang/AST/RecursiveASTVisitor.h include/clang/AST/SourceLocExprScope.h include/c

[PATCH] D33532: [coroutines] Fix fallthrough diagnostics for coroutines

2017-05-24 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF created this revision. This patch fixes a number of issues with the analysis warnings emitted when a coroutine may reach the end of the function w/o returning. - Fix bug where coroutines with `return_value` are incorrectly diagnosed as missing `co_return`'s. - Rework diagnostic message t

[PATCH] D33532: [coroutines] Fix fallthrough diagnostics for coroutines

2017-05-24 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added inline comments. Comment at: lib/Sema/AnalysisBasedWarnings.cpp:378 const Stmt *S = CS.getStmt(); -if ((isa(S) && !IsCoroutine) || isa(S)) { +if (isa(S) || isa(S)) { HasLiveReturn = true; GorNishanov wrote: > Is this check no long

[PATCH] D33534: [coroutines] Diagnose when promise types fail to declare either return_void or return_value.

2017-05-24 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF created this revision. According to the PDTS it's perfectly legal to have a promise type that defines neither `return_value` nor `return_void`. However a coroutine that uses such a promise type will almost always have UB, because it can never `co_return`. This patch changes Clang to diag

[PATCH] D33536: [coroutines] Bump __cpp_coroutines version

2017-05-24 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF created this revision. This patch is needed so that Libc++ can actually tess if Clang supports coroutines, instead of just paying lip service with a partial implementation. Otherwise the libc++ test suite will fail against older versions of Clang https://reviews.llvm.org/D33536 Files:

[PATCH] D33538: [coroutines] Support "coroutines" feature to module map "requires"

2017-05-24 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF created this revision. In order for libc++ to add `` to its module map, there has to be a feature that can be used to detect if coroutines support is enabled in Clang. https://reviews.llvm.org/D33538 Files: docs/Modules.rst lib/Basic/Module.cpp test/Modules/Inputs/DependsOnModule

[PATCH] D33538: [coroutines] Support "coroutines" feature to module map "requires"

2017-05-24 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 100207. EricWF added a comment. - Alphabetize newly added switch case. https://reviews.llvm.org/D33538 Files: docs/Modules.rst lib/Basic/Module.cpp test/Modules/Inputs/DependsOnModule.framework/Headers/coroutines.h test/Modules/Inputs/DependsOnModule

[PATCH] D30837: [libcxx] Support for shared_ptr

2017-05-25 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF accepted this revision. EricWF added a comment. This revision is now accepted and ready to land. LGTM after addressing inline comments. Sorry for the delay. Comment at: include/memory:3663 +template +struct rebind +{ This rebind isn't gettin

[PATCH] D33538: [coroutines] Support "coroutines" feature in module map requires clause

2017-05-25 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added inline comments. Comment at: test/Modules/requires-coroutines.mm:1 +// RUN: rm -rf %t +// RUN: %clang_cc1 -Wauto-import -fmodules-cache-path=%t -fmodules -fimplicit-module-maps -F %S/Inputs %s -verify Should this test be called `requires-coroutines.

[PATCH] D33340: [libcxx] [test] Add string nullptr asserts to erase functions.

2017-05-25 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF accepted this revision. EricWF added a comment. This revision is now accepted and ready to land. Sorry for the delay reviewing such a simple change. https://reviews.llvm.org/D33340 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http:

[PATCH] D33290: [libcxx] [test] Remove workaround for C1XX conversion-to-nullptr bug

2017-05-25 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF accepted this revision. EricWF added a comment. This revision is now accepted and ready to land. LGTM. https://reviews.llvm.org/D33290 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-

[PATCH] D33290: [libcxx] [test] Remove workaround for C1XX conversion-to-nullptr bug

2017-05-25 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. @CaseyCarter Changes like this are good for post-commit review (ie just commit it) https://reviews.llvm.org/D33290 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-co

[PATCH] D33340: [libcxx] [test] Add string nullptr asserts to erase functions.

2017-05-25 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. @BillyONeal Changes like this are good for post-commit review (ie just commit it). Adding clearly correct assertions and test cases is never an objectionable thing. https://reviews.llvm.org/D33340 ___ cfe-commits mailing li

[PATCH] D32671: [libcxx] [test] variant: test coverage for P0602 extension

2017-05-25 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added inline comments. Comment at: test/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp:389 +template +constexpr bool triviality_test = + std::is_trivially_copy_assignable>::value == `triviality_test` should also compare to an explicit

[PATCH] D33082: Fix Libc++ build with MinGW64

2017-05-25 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF marked 6 inline comments as done. EricWF added inline comments. Comment at: include/__locale:370 static const mask blank = _ISblank; -#elif defined(_LIBCPP_MSVCRT) +#elif defined(_LIBCPP_WIN32API) typedef unsigned short mask; compnerd wrote: > A

[PATCH] D33082: Fix Libc++ build with MinGW64

2017-05-25 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF marked 3 inline comments as done. EricWF added a comment. In https://reviews.llvm.org/D33082#760516, @martell wrote: > I want to give some context here to dispel the confusion of what is and isn't > win32 api specific. > > First lets take `vasprintf` and `asprintf ` which are not implemen

[PATCH] D33082: Fix Libc++ build with MinGW64

2017-05-25 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 100263. EricWF added a comment. Add `_LIBCPP_MSVCRT_LIKE` and use it to replace `_LIBCPP_WIN32API` where appropriate. https://reviews.llvm.org/D33082 Files: include/__config include/__locale include/locale include/stdio.h include/support/win32/loc

[PATCH] D33080: [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows

2017-05-25 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. In https://reviews.llvm.org/D33080#754442, @compnerd wrote: > I think that we should sink the `min`/`max` checks into `__undef_macros`. I > don't like the idea of littering that check everywhere. I would much rather litter at the cost of the implementation than needles

[PATCH] D33080: [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows

2017-05-25 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 100269. EricWF added a comment. - Remove the external include guards for `__undef_macros` as requested by @compnerd. I couldn't come up with a easy test case that showed any notable difference having the external guards. https://reviews.llvm.org/D33080 Fi

[PATCH] D33550: Make __wrap_iter constexpr

2017-05-25 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. @mclow.lists Could you update this diff with more context? https://reviews.llvm.org/D33550 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D33538: [coroutines] Support "coroutines" feature in module map requires clause

2017-05-25 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. In https://reviews.llvm.org/D33538#765045, @rsmith wrote: > Do we need to conditionalize this part of libc++? Nothing in the > header appears to need compiler support. That's correct. I was mistaken as to why this was needed. I mistook a bug in libc++ for the reason t

[PATCH] D33538: [coroutines] Support "coroutines" feature in module map requires clause

2017-05-25 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. Also see r303936, which re-adds to the module map and fixes the bug. https://reviews.llvm.org/D33538 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D33538: [coroutines] Support "coroutines" feature in module map requires clause

2017-05-25 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. In https://reviews.llvm.org/D33538#765225, @rsmith wrote: > In https://reviews.llvm.org/D33538#765146, @EricWF wrote: > > > In https://reviews.llvm.org/D33538#765045, @rsmith wrote: > > > > > Do we need to conditionalize this part of libc++? Nothing in the > > > header a

[PATCH] D33082: Fix Libc++ build with MinGW64

2017-05-25 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. In https://reviews.llvm.org/D33082#765282, @bcraig wrote: > I think that we generally shouldn't be giving functions names that are > already claimed elsewhere (like mbsnrtowcs and wcsnrtombs). It is my opinion > that these should always be qualified as __libcpp_* symbol

[PATCH] D33082: Fix Libc++ build with MinGW64

2017-05-25 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 100358. EricWF added a comment. - remove `asprintf` declaration and definition entirely. It's not used anywhere within libc++. https://reviews.llvm.org/D33082 Files: include/__config include/__locale include/locale include/stdio.h include/support/

[PATCH] D33080: [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows

2017-05-25 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 100361. EricWF added a comment. - Fix whitespace in `__config`. @compnerd Any final thoughts? https://reviews.llvm.org/D33080 Files: include/__bit_reference include/__config include/__hash_table include/__mutex_base include/__split_buffer includ

[PATCH] D33588: Fix two sources of UB in __next_hash_pow2 (from __hash_table)

2017-05-26 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. @vsk: I would include your fuzzing test in this patch. Simply put it somewhere under `test/libcxx/containers/unordered`. https://reviews.llvm.org/D33588 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.ll

[PATCH] D33082: Fix Libc++ build with MinGW64

2017-05-26 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. In https://reviews.llvm.org/D33082#765644, @martell wrote: > LGTM but I can't speak for the area where you added `#include ` and > killed off the `_NEWLIB_VERSION` check > Seems in order based on > https://sourceware.org/ml/newlib-cvs/2014-q3/msg00038.html > Maybe make

[PATCH] D29877: Warn about unused static file scope function template declarations.

2017-05-26 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. I think this patch still gets the following case wrong: // foo.h constexpr struct { template void operator()(T) {} // emits unused template warning } foo; https://reviews.llvm.org/D29877 ___ cfe-commits mailing li

[PATCH] D29877: Warn about unused static file scope function template declarations.

2017-05-26 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. In https://reviews.llvm.org/D29877#766176, @rsmith wrote: > In https://reviews.llvm.org/D29877#765968, @EricWF wrote: > > > I think this patch still gets the following case wrong: > > > > // foo.h > > constexpr struct { > > template void operator()(T) {} // emits

[PATCH] D29877: Warn about unused static file scope function template declarations.

2017-05-26 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. In https://reviews.llvm.org/D29877#766196, @EricWF wrote: > In https://reviews.llvm.org/D29877#766176, @rsmith wrote: > > > In https://reviews.llvm.org/D29877#765968, @EricWF wrote: > > > > > I think this patch still gets the following case wrong: > > > > > > // foo.h >

[PATCH] D29877: Warn about unused static file scope function template declarations.

2017-05-26 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added inline comments. Comment at: include/clang/Basic/DiagnosticGroups.td:631 // UnusedParameter, (matches GCC's behavior) +// UnusedTemplate, (clean-up libc++ before enabling) // UnusedMemberFuncti

[PATCH] D33538: [coroutines] Support "coroutines" feature in module map requires clause

2017-05-26 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. Even after fixing the libc++ guards, the header still emits a #warning when it's processed when coroutines are unavailable. It seems like a useful feature test to have available. I'll commit shortly. https://reviews.llvm.org/D33538 ___

[PATCH] D33625: [coroutines] Diagnose invalid result types for `await_resume` and `await_suspend` and add missing conversions.

2017-05-27 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF created this revision. The expression `await_ready` is required to be contextually convertible to bool and `await_suspend` must be a prvalue of either `void` or `bool`. This patch adds diagnostics for when those requirements are violated. It also correctly performs the contextual conversi

[PATCH] D33625: [coroutines] Diagnose invalid result types for `await_resume` and `await_suspend` and add missing conversions.

2017-05-27 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 100541. EricWF added a comment. - Format changes https://reviews.llvm.org/D33625 Files: include/clang/Basic/DiagnosticSemaKinds.td lib/Sema/SemaCoroutine.cpp test/SemaCXX/coroutines.cpp Index: test/SemaCXX/coroutines.cpp ==

[PATCH] D33625: [coroutines] Diagnose invalid result types for `await_resume` and `await_suspend` and add missing conversions.

2017-05-28 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF marked an inline comment as done. EricWF added inline comments. Comment at: lib/Sema/SemaCoroutine.cpp:324 struct ReadySuspendResumeResult { + enum AwaitCallType { ACT_Ready, ACT_Suspend, ACT_Resume }; Expr *Results[3]; GorNishanov wrote: > enum class

[PATCH] D33625: [coroutines] Diagnose invalid result types for `await_resume` and `await_suspend` and add missing conversions.

2017-05-28 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 100557. EricWF added a comment. - Add requested test case. https://reviews.llvm.org/D33625 Files: include/clang/Basic/DiagnosticSemaKinds.td lib/Sema/SemaCoroutine.cpp test/SemaCXX/coroutines.cpp Index: test/SemaCXX/coroutines.cpp

[PATCH] D33625: [coroutines] Diagnose invalid result types for `await_resume` and `await_suspend` and add missing conversions.

2017-05-28 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF marked an inline comment as done. EricWF added inline comments. Comment at: lib/Sema/SemaCoroutine.cpp:393 +// - await-suspend is the expression e.await_suspend(h), which shall be +// a prvalue of type void or bool. +QualType RetType = AwaitSuspend->getTy

[PATCH] D33636: [coroutines] Fix checking for prvalue-ness of `await_suspend` return type

2017-05-28 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF created this revision. @rsmith Does this correctly address the issues mentioned in https://reviews.llvm.org/D33625#inline-292971 ? https://reviews.llvm.org/D33636 Files: include/clang/Basic/DiagnosticSemaKinds.td lib/Sema/SemaCoroutine.cpp test/SemaCXX/coroutines.cpp Index: test

[PATCH] D33538: [coroutines] Support "coroutines" feature in module map requires clause

2017-05-28 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 100567. EricWF added a comment. This patch was initially reverted due to a failing test it caused elsewhere; which has been address in this version. https://reviews.llvm.org/D33538 Files: docs/Modules.rst lib/Basic/Module.cpp test/Index/index-module.m

[PATCH] D33660: [coroutines] Fix assertion during -Wuninitialized analysis

2017-05-29 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF created this revision. @rsmith Is there a better place to put this test? https://reviews.llvm.org/D33660 Files: lib/Sema/SemaCoroutine.cpp test/SemaCXX/coreturn.cpp test/SemaCXX/coroutine-uninitialized-warning-crash.cpp Index: test/SemaCXX/coroutine-uninitialized-warning-crash.cp

[PATCH] D33080: [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows

2017-05-31 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF accepted this revision. EricWF added a comment. LGTM. https://reviews.llvm.org/D33080 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D33080: [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows

2017-05-31 Thread Eric Fiselier via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL304357: [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows (authored by EricWF). Changed prior to commit: https://reviews.llvm.org/D33080?vs=100361&id=100925#toc Repository:

[PATCH] D33178: Remove requirement for libunwind sources.

2017-05-31 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF closed this revision. EricWF added a comment. Committed as r304359. Repository: rL LLVM https://reviews.llvm.org/D33178 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D33082: Fix Libc++ build with MinGW64

2017-05-31 Thread Eric Fiselier via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL304360: Fix Libc++ build with MinGW64 (authored by EricWF). Changed prior to commit: https://reviews.llvm.org/D33082?vs=100358&id=100926#toc Repository: rL LLVM https://reviews.llvm.org/D33082 Files

[PATCH] D33741: [libc++] Undef min/max in test_macros.h

2017-05-31 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF created this revision. After changing libc++ to push/pop the min/max macros on Windows we have a bunch of new test failures, caused by tests using min/max. I would like to use test_macros.h to undefine it. Would this work for you? How have you been dealing with these failures? https:/

[PATCH] D33741: [libc++] Undef min/max in test_macros.h

2017-05-31 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. In https://reviews.llvm.org/D33741#769371, @STL_MSFT wrote: > I haven't seen min/max test failures, probably because our CRT/STL headers > never drag in Windows.h. Ah, that makes sense. Libc++ currently does although the plan is to fix that eventually. :-S > I have no

[PATCH] D33741: [libc++] Undef min/max in test_macros.h

2017-05-31 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF abandoned this revision. EricWF added a comment. In https://reviews.llvm.org/D33741#769421, @CaseyCarter wrote: > In https://reviews.llvm.org/D33741#769381, @EricWF wrote: > > > In https://reviews.llvm.org/D33741#769371, @STL_MSFT wrote: > > > > > I haven't seen min/max test failures, prob

[PATCH] D33636: [coroutines] Fix checking for prvalue-ness of `await_suspend` return type

2017-05-31 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF accepted this revision. EricWF added a comment. This revision is now accepted and ready to land. LGTM. https://reviews.llvm.org/D33636 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-

[PATCH] D24371: Add diagnostics to require_constant_initialization

2017-05-31 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. @loladiro The patch doesn't apply correctly to the test. Do you mind if I hijack this and fix it? Repository: rL LLVM https://reviews.llvm.org/D24371 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.ll

[PATCH] D24371: Add diagnostics to require_constant_initialization

2017-05-31 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 100949. EricWF added a comment. - Fix patch so it applies cleanly. https://reviews.llvm.org/D24371 Files: lib/Sema/SemaDecl.cpp test/SemaCXX/attr-require-constant-initialization.cpp Index: test/SemaCXX/attr-require-constant-initialization.cpp ==

[PATCH] D24371: Add diagnostics to require_constant_initialization

2017-05-31 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF accepted this revision. EricWF added a comment. This revision is now accepted and ready to land. LGTM. @loladiro Would you like to commit this? https://reviews.llvm.org/D24371 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lis

[PATCH] D33588: Fix two sources of UB in __next_hash_pow2 (from __hash_table)

2017-05-31 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added inline comments. Comment at: include/__hash_table:139 { -return size_t(1) << (std::numeric_limits::digits - __clz(__n-1)); +return (__n > 1) ? (size_t(1) << (std::numeric_limits::digits - __clz(__n-1))) : __n; } Shouldn't this return `__n

[PATCH] D33797: [coroutines] Fix rebuilding of dependent coroutine parameters

2017-06-02 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. @GorNishanov I think we should be transforming the move parameters, instead of re-building them entirely. I'll put together a different set of changes. https://reviews.llvm.org/D33797 ___ cfe-commits mailing list cfe-commits

[PATCH] D33797: [coroutines] Fix rebuilding of dependent coroutine parameters

2017-06-02 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 101291. EricWF added a comment. - Diagnose non-moveable but otherwise unnamed parameters. - Have TreeTransform.h check if building the move params is successful. https://reviews.llvm.org/D33797 Files: lib/Sema/CoroutineStmtBuilder.h lib/Sema/SemaCoroutin

[PATCH] D33797: [coroutines] Fix rebuilding of dependent coroutine parameters

2017-06-02 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added inline comments. Comment at: lib/Sema/SemaCoroutine.cpp:1285 + // We needed to check it, but we don't need to generate code for it. + if (!paramDecl->getIdentifier()) +continue; @rsmith Is there a better way to check if the move wou

[PATCH] D33797: [coroutines] Fix rebuilding of dependent coroutine parameters

2017-06-02 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 101293. EricWF added a comment. - No longer unnamed parameters from the AST. https://reviews.llvm.org/D33797 Files: lib/Sema/CoroutineStmtBuilder.h lib/Sema/SemaCoroutine.cpp lib/Sema/TreeTransform.h test/CodeGenCoroutines/coro-params.cpp test/Sema

[PATCH] D33797: [coroutines] Fix rebuilding of dependent coroutine parameters

2017-06-02 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added inline comments. Comment at: lib/Sema/SemaCoroutine.cpp:1285 + // We needed to check it, but we don't need to generate code for it. + if (!paramDecl->getIdentifier()) +continue; rsmith wrote: > EricWF wrote: > > @rsmith Is there a b

[PATCH] D32111: [modules] Attempt to fix PR31905 - #include "stddef.h" breaks module map search paths; causes redefinitions.

2017-06-02 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 101307. EricWF edited the summary of this revision. EricWF added reviewers: rtrieu, dexonsmith, dblaikie, aprantl, v.g.vassilev. EricWF added a comment. - Only allow the top level header search directories to be search for `module.modulemap` files when loadin

[PATCH] D34021: [coroutines] Fix co_await for range statement

2017-06-07 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF created this revision. Currently we build the co_await expressions on the wrong implicit statements of the implicit ranged for; Specifically we build the co_await expression wrapping the range declaration, but it should wrap the begin expression. This patch fixes co_await on range for.

[PATCH] D34021: [coroutines] Fix co_await for range statement

2017-06-07 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 101853. EricWF added a comment. - Add FIXME comments for incorrect use of `getCurScope()` after initial parse. https://reviews.llvm.org/D34021 Files: include/clang/Sema/Sema.h lib/Sema/SemaCoroutine.cpp lib/Sema/SemaStmt.cpp test/SemaCXX/coawait_rang

[PATCH] D34021: [coroutines] Fix co_await for range statement

2017-06-07 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 101854. EricWF added a comment. - Fix clang-format nonsense in tests. https://reviews.llvm.org/D34021 Files: include/clang/Sema/Sema.h lib/Sema/SemaCoroutine.cpp lib/Sema/SemaStmt.cpp test/SemaCXX/coawait_range_for.cpp Index: test/SemaCXX/coawait_ra

[PATCH] D34021: [coroutines] Fix co_await for range statement

2017-06-07 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 101857. EricWF added a comment. - More test cleanup. Sorry for the noise. https://reviews.llvm.org/D34021 Files: include/clang/Sema/Sema.h lib/Sema/SemaCoroutine.cpp lib/Sema/SemaStmt.cpp test/SemaCXX/coawait_range_for.cpp Index: test/SemaCXX/coawai

[PATCH] D34021: [coroutines] Fix co_await for range statement

2017-06-07 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 101858. https://reviews.llvm.org/D34021 Files: include/clang/Sema/Sema.h lib/Sema/SemaCoroutine.cpp lib/Sema/SemaStmt.cpp test/SemaCXX/coawait_range_for.cpp Index: test/SemaCXX/coawait_range_for.cpp

[PATCH] D34021: [coroutines] Fix co_await for range statement

2017-06-08 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 101862. EricWF added a comment. - Fix value category of `co_await`/`co_yield` expression. ie use the return type of the resume expression to determine the value category. @rsmith Should the `CoroutineSuspendExpr` constructor be using `getCallReturnType()` to

[PATCH] D34021: [coroutines] Fix co_await for range statement

2017-06-08 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added inline comments. Comment at: test/SemaCXX/coawait_range_for.cpp:133 + +struct ForLoopAwaiterCoawaitLookup { + struct promise_type { This test is incorrect WRT ADL lookup. https://reviews.llvm.org/D34021

[PATCH] D30268: Avoid copy of __atoms when char_type is char

2017-06-13 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF accepted this revision. EricWF added a comment. This revision is now accepted and ready to land. LGTM. Could you please add the benchmark under `libcxx/benchmarks`. Could you also make sure that the existing tests (under `test/std`) for number parsing have sufficient test coverages for t

[PATCH] D34021: [coroutines] Fix co_await for range statement

2017-06-13 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added inline comments. Comment at: include/clang/AST/ExprCXX.h:4136 + : Expr(SC, Resume->getType(), + (Resume->getType()->isLValueReferenceType() ? VK_LValue : + Resume->getType()->isRValueReferenceType() ? VK_XValue : @rsmith

[PATCH] D34021: [coroutines] Fix co_await for range statement

2017-06-13 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 102472. EricWF added a comment. - Remove changes to how `CoroutineSuspendExpr`s `ExprValueType` is calculated. They were incorrect. However this means that Clang still fails to compile `co_await` and `co_yield` expressions where `await_resume` returns an lval

[PATCH] D34194: [coroutines] Allow co_await and co_yield expressions that return an lvalue to compile

2017-06-13 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF created this revision. The title says it all. However I can't figure out how to test `int& x = co_yield 42;` since that expression doesn't seem to want to parse. https://reviews.llvm.org/D34194 Files: lib/CodeGen/CGCoroutine.cpp lib/CodeGen/CGExpr.cpp lib/CodeGen/CodeGenFunction.

[PATCH] D34194: [coroutines] Allow co_await and co_yield expressions that return an lvalue to compile

2017-06-13 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 102485. EricWF edited the summary of this revision. EricWF added a comment. - Fix assertion for co_yield. https://reviews.llvm.org/D34194 Files: lib/AST/ExprClassification.cpp lib/CodeGen/CGCoroutine.cpp lib/CodeGen/CGExpr.cpp lib/CodeGen/CodeGenFunc

[PATCH] D34194: [coroutines] Allow co_await and co_yield expressions that return an lvalue to compile

2017-06-13 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 102486. EricWF added a comment. - Remove unneeded assertion. https://reviews.llvm.org/D34194 Files: lib/AST/ExprClassification.cpp lib/CodeGen/CGCoroutine.cpp lib/CodeGen/CGExpr.cpp lib/CodeGen/CodeGenFunction.h test/CodeGenCoroutines/coro-await.cp

[PATCH] D34194: [coroutines] Allow co_await and co_yield expressions that return an lvalue to compile

2017-06-13 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 102487. EricWF added a comment. - Improve tests https://reviews.llvm.org/D34194 Files: lib/AST/ExprClassification.cpp lib/CodeGen/CGCoroutine.cpp lib/CodeGen/CGExpr.cpp lib/CodeGen/CodeGenFunction.h test/CodeGenCoroutines/coro-await.cpp Index: tes

[PATCH] D34194: [coroutines] Allow co_await and co_yield expressions that return an lvalue to compile

2017-06-13 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 102492. EricWF added a comment. - Improve test by using regular expressions and [[Name]] where possible. https://reviews.llvm.org/D34194 Files: lib/AST/ExprClassification.cpp lib/CodeGen/CGCoroutine.cpp lib/CodeGen/CGExpr.cpp lib/CodeGen/CodeGenFunct

[PATCH] D34194: [coroutines] Allow co_await and co_yield expressions that return an lvalue to compile

2017-06-14 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 102494. https://reviews.llvm.org/D34194 Files: lib/AST/ExprClassification.cpp lib/CodeGen/CGCoroutine.cpp lib/CodeGen/CGExpr.cpp lib/CodeGen/CodeGenFunction.h test/CodeGenCoroutines/coro-await.cpp Index: test/CodeGenCoroutines/coro-await.cpp ===

[PATCH] D34225: [clang-format] Teach clang-format how to handle C++ coroutines

2017-06-14 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF created this revision. Herald added a subscriber: klimek. This patch (1) enable parsing for coroutines by default and (2) teaches clang-format how to properly handle them. https://reviews.llvm.org/D34225 Files: lib/Format/Format.cpp lib/Format/TokenAnnotator.cpp lib/Format/Unwrapp

[PATCH] D34194: [coroutines] Allow co_await and co_yield expressions that return an lvalue to compile

2017-06-15 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF marked 2 inline comments as done. EricWF added inline comments. Comment at: test/CodeGenCoroutines/coro-await.cpp:310 + int& x = co_await a; + // CHECK: await2.ready: + // CHECK-NEXT: %[[RES2:.+]] = call dereferenceable(4) i32* @_ZN24AwaitResumeReturnsLValue12await_res

[PATCH] D34194: [coroutines] Allow co_await and co_yield expressions that return an lvalue to compile

2017-06-15 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 102701. EricWF added a comment. - Address most inline comments. https://reviews.llvm.org/D34194 Files: lib/AST/ExprClassification.cpp lib/CodeGen/CGCoroutine.cpp lib/CodeGen/CGExpr.cpp lib/CodeGen/CodeGenFunction.h test/CodeGenCoroutines/coro-await

[PATCH] D34194: [coroutines] Allow co_await and co_yield expressions that return an lvalue to compile

2017-06-15 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 102705. EricWF added a comment. - Fix the test when -discard-value-names is present, at least my part of the test. https://reviews.llvm.org/D34194 Files: lib/AST/ExprClassification.cpp lib/CodeGen/CGCoroutine.cpp lib/CodeGen/CGExpr.cpp lib/CodeGen/C

[PATCH] D34249: [libc++] Don't use UTIME_OMIT to detect utimensat on Apple

2017-06-15 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF created this revision. This fixes llvm.org/PR33469. https://reviews.llvm.org/D34249 Files: src/experimental/filesystem/operations.cpp Index: src/experimental/filesystem/operations.cpp === --- src/experimental/filesystem/

[PATCH] D34249: [libc++] Don't use UTIME_OMIT to detect utimensat on Apple

2017-06-15 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added inline comments. Comment at: src/experimental/filesystem/operations.cpp:23-28 +// We can use the presence of UTIME_OMIT to detect platforms that do not +// provide utimensat, with some exceptions on OS X. +#if !defined(UTIME_OMIT) || \ + (defined(__MAC_OS_X_VERSION

[PATCH] D34237: Mark the operations of __wrap_iter as constexpr

2017-06-15 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. Could you re-upload this with a updated diff against trunk, and one with more context. https://reviews.llvm.org/D34237 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cf

[PATCH] D34237: Mark the operations of __wrap_iter as constexpr

2017-06-15 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added a comment. A large portion of this patch is UB. Any function that unconditionally calls `__get_db()` can never be a valid constant expression, hence UB. Is there a smaller set of operations or `__wrap_iter` that *must* be made constexpr? Or do they all need to be? ==

[PATCH] D34249: [libc++] Don't use UTIME_OMIT to detect utimensat on Apple

2017-06-15 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 102782. https://reviews.llvm.org/D34249 Files: src/experimental/filesystem/operations.cpp Index: src/experimental/filesystem/operations.cpp === --- src/experimental/filesystem/operations.cpp +

[PATCH] D34249: [libc++] Don't use UTIME_OMIT to detect utimensat on Apple

2017-06-15 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF updated this revision to Diff 102783. EricWF marked an inline comment as done. EricWF added a comment. - Address inline comments. https://reviews.llvm.org/D34249 Files: src/experimental/filesystem/operations.cpp Index: src/experimental/filesystem/operations.cpp ==

[PATCH] D34249: [libc++] Don't use UTIME_OMIT to detect utimensat on Apple

2017-06-15 Thread Eric Fiselier via Phabricator via cfe-commits
EricWF added inline comments. Comment at: src/experimental/filesystem/operations.cpp:22-24 +#if defined(__APPLE__) +#include +#endif dexonsmith wrote: > I only just noticed you were including Availability.h. That shouldn't be > necessary, since the macros shou

<    1   2   3   4   5   6   7   8   9   10   >