mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-12 01:18:53 +00:00
629170fe45
This commit implements [temp.deduct]p9. Test updates include: - New notes in `cxx1y-init-captures.cpp`, `lambda-expressions.cpp` and 'warn-unused-lambda-capture.cpp'. This seems to be caused by diagnosing errors earlier (during deduction) that were previously surfaced later (during instantiation). - New error `lambda-unevaluated.cpp` is in line with [temp.deduct]p9. Reviewed By: erichkeane, #clang-language-wg Differential Revision: https://reviews.llvm.org/D148802
24 lines
649 B
C++
24 lines
649 B
C++
// RUN: %clang_cc1 -std=c++20 -Wno-unused-value -fsyntax-only -verify %s
|
|
|
|
namespace GH49266 {
|
|
struct X {
|
|
X() = default;
|
|
X(X const&) = delete; // expected-note {{'X' has been explicitly marked deleted here}}
|
|
};
|
|
|
|
void take_by_copy(auto &...args) {
|
|
[...args = args] {}(); // expected-error {{call to deleted constructor}}
|
|
// expected-note@-1 {{substituting into a lambda}}
|
|
}
|
|
|
|
void take_by_ref(auto &...args) {
|
|
[&...args = args] {}(); // args is passed by reference and not copied.
|
|
}
|
|
|
|
void foo() {
|
|
X x;
|
|
take_by_copy(x); // expected-note {{in instantiation of function template specialization}}
|
|
take_by_ref(x);
|
|
}
|
|
}
|