diff options
author | Nicholas Allegra <comexk@gmail.com> | 2019-09-17 01:43:33 +0000 |
---|---|---|
committer | Nicholas Allegra <comexk@gmail.com> | 2019-09-17 01:43:33 +0000 |
commit | cbd13bc1edfe3c08b7e9012428acb0bc789b0f5f (patch) | |
tree | 1ad309fa32540b9ddbe92558b886e2d01f6e85f7 /clang/test/SemaTemplate/default-arguments-cxx0x.cpp | |
parent | 66e9f239b5b3b4367eef580696b4e695164f164a (diff) | |
download | bcm5719-llvm-cbd13bc1edfe3c08b7e9012428acb0bc789b0f5f.tar.gz bcm5719-llvm-cbd13bc1edfe3c08b7e9012428acb0bc789b0f5f.zip |
Push lambda scope earlier when transforming lambda expression
Differential Revision: https://reviews.llvm.org/D66067
llvm-svn: 372058
Diffstat (limited to 'clang/test/SemaTemplate/default-arguments-cxx0x.cpp')
-rw-r--r-- | clang/test/SemaTemplate/default-arguments-cxx0x.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/test/SemaTemplate/default-arguments-cxx0x.cpp b/clang/test/SemaTemplate/default-arguments-cxx0x.cpp index c24ed12a024..2114cc94e6c 100644 --- a/clang/test/SemaTemplate/default-arguments-cxx0x.cpp +++ b/clang/test/SemaTemplate/default-arguments-cxx0x.cpp @@ -1,4 +1,5 @@ // RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s +// RUN: %clang_cc1 -fsyntax-only -std=c++14 -verify %s // expected-no-diagnostics // Test default template arguments for function templates. @@ -114,3 +115,17 @@ namespace rdar34167492 { S<int> _a{}; }; } + +#if __cplusplus >= 201402L +namespace lambda { + // Verify that a default argument in a lambda can refer to the type of a + // previous `auto` argument without crashing. + template <class T> + void bar() { + (void) [](auto c, int x = sizeof(decltype(c))) {}; + } + void foo() { + bar<int>(); + } +} // namespace lambda +#endif |