From c49018d9cce52d8c9f34b44865ec3ba8e89a1488 Mon Sep 17 00:00:00 2001 From: dim Date: Sun, 12 Jun 2011 15:46:16 +0000 Subject: Vendor import of clang trunk r132879: http://llvm.org/svn/llvm-project/cfe/trunk@132879 --- test/SemaCXX/dependent-noexcept-unevaluated.cpp | 41 +++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 test/SemaCXX/dependent-noexcept-unevaluated.cpp (limited to 'test/SemaCXX/dependent-noexcept-unevaluated.cpp') diff --git a/test/SemaCXX/dependent-noexcept-unevaluated.cpp b/test/SemaCXX/dependent-noexcept-unevaluated.cpp new file mode 100644 index 0000000..5bf6f9e --- /dev/null +++ b/test/SemaCXX/dependent-noexcept-unevaluated.cpp @@ -0,0 +1,41 @@ +// RUN: %clang_cc1 -fsyntax-only -std=c++0x %s + +template +T&& +declval() noexcept; + +template +struct some_trait +{ + static const bool value = false; +}; + +template +void swap(T& x, T& y) noexcept(some_trait::value) +{ + T tmp(static_cast(x)); + x = static_cast(y); + y = static_cast(tmp); +} + +template +struct array +{ + T data[N]; + + void swap(array& a) noexcept(noexcept(swap(declval(), declval()))); +}; + +struct DefaultOnly +{ + DefaultOnly() = default; + DefaultOnly(const DefaultOnly&) = delete; + DefaultOnly& operator=(const DefaultOnly&) = delete; + ~DefaultOnly() = default; +}; + +int main() +{ + array a, b; +} + -- cgit v1.1