Go to file
Faisal Vali a734ab9808 [Cxx1z-constexpr-lambda-P0170R1] Support parsing of constexpr specifier (and its inference) on lambda expressions
Support the constexpr specifier on lambda expressions - and support its inference from the lambda call operator's body.

i.e.
  auto L = [] () constexpr { return 5; };
  static_assert(L() == 5); // OK
  auto Implicit = [] (auto a) { return a; };
  static_assert(Implicit(5) == 5); 

We do not support evaluation of lambda's within constant expressions just yet.

Implementation Strategy:
  - teach ParseLambdaExpressionAfterIntroducer to expect a constexpr specifier and mark the invented function call operator's declarator's decl-specifier with it; Have it emit fixits for multiple decl-specifiers (mutable or constexpr) in this location.
  - for cases where constexpr is not explicitly specified, have buildLambdaExpr check whether the invented function call operator satisfies the requirements of a constexpr function, by calling CheckConstexprFunctionDecl/Body.

Much obliged to Richard Smith for his patience and his care, in ensuring the code is clang-worthy.

llvm-svn: 264513
2016-03-26 16:11:37 +00:00
clang [Cxx1z-constexpr-lambda-P0170R1] Support parsing of constexpr specifier (and its inference) on lambda expressions 2016-03-26 16:11:37 +00:00
clang-tools-extra 3rd attempt of fixup with -std=c++11 2016-03-25 00:24:35 +00:00
compiler-rt [libprofile] Adjust dummy condition to be more forgiving. 2016-03-26 04:01:57 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc math: Fix ilogb(double) return type 2016-02-24 00:52:15 +00:00
libcxx Implement is_always_lock_free 2016-03-25 15:48:21 +00:00
libcxxabi [libcxxabi] Disable cxa_thread_atexit_test if unavailable 2016-03-17 10:00:24 +00:00
libunwind [AArch64] Fix libunwind build when using GNU assembler 2016-02-11 21:22:57 +00:00
lld Remove declaration of SymbolTable::codegen, this method was deleted in r264091 2016-03-25 18:20:33 +00:00
lldb When we import the definition for a Tagdecl, propagate its completeness too. 2016-03-26 00:37:55 +00:00
llgo [llgo] Increment "Debug Info Version" 2016-03-23 23:09:00 +00:00
llvm [X86][AVX] Enabled MULHS/MULHU v16i16 vectors on AVX1 targets 2016-03-26 15:44:55 +00:00
openmp [OMPT] Fix parallel_id and task_id in loop_end with schedule static 2016-03-24 12:52:20 +00:00
polly Add files forgotten in r264452 2016-03-25 20:32:51 +00:00