summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaTemplate/default-arguments-cxx0x.cpp
diff options
context:
space:
mode:
authorNicholas Allegra <comexk@gmail.com>2019-09-17 01:43:33 +0000
committerNicholas Allegra <comexk@gmail.com>2019-09-17 01:43:33 +0000
commitcbd13bc1edfe3c08b7e9012428acb0bc789b0f5f (patch)
tree1ad309fa32540b9ddbe92558b886e2d01f6e85f7 /clang/test/SemaTemplate/default-arguments-cxx0x.cpp
parent66e9f239b5b3b4367eef580696b4e695164f164a (diff)
downloadbcm5719-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.cpp15
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
OpenPOWER on IntegriCloud