<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Thu, 30 Aug 2018 at 12:18, Richard Smith via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: rsmith<br>
Date: Thu Aug 30 12:17:11 2018<br>
New Revision: 341099<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=341099&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=341099&view=rev</a><br>
Log:<br>
Add test file missed from r341097.<br></blockquote><div><br></div><div>Sorry, typo, this should say r341098.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Added:<br>
    cfe/trunk/test/SemaCXX/cxx14-compat.cpp<br>
<br>
Added: cfe/trunk/test/SemaCXX/cxx14-compat.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/cxx14-compat.cpp?rev=341099&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/cxx14-compat.cpp?rev=341099&view=auto</a><br>
==============================================================================<br>
--- cfe/trunk/test/SemaCXX/cxx14-compat.cpp (added)<br>
+++ cfe/trunk/test/SemaCXX/cxx14-compat.cpp Thu Aug 30 12:17:11 2018<br>
@@ -0,0 +1,34 @@<br>
+// RUN: %clang_cc1 -fsyntax-only -std=c++11 -Wc++14-compat-pedantic -verify %s<br>
+// RUN: %clang_cc1 -fsyntax-only -std=c++17 -Wc++14-compat-pedantic -verify %s<br>
+<br>
+#if __cplusplus < 201402L<br>
+<br>
+// expected-no-diagnostics<br>
+// FIXME: C++11 features removed or changed in C++14?<br>
+<br>
+#else<br>
+<br>
+static_assert(true); // expected-warning {{incompatible with C++ standards before C++17}}<br>
+<br>
+template<int ...N> int f() { return (N + ...); } // expected-warning {{incompatible with C++ standards before C++17}}<br>
+<br>
+namespace [[]] NS_with_attr {} // expected-warning {{incompatible with C++ standards before C++17}}<br>
+enum { e [[]] }; // expected-warning {{incompatible with C++ standards before C++17}}<br>
+<br>
+template<typename T = int> struct X {};<br>
+X x; // expected-warning {{class template argument deduction is incompatible with C++ standards before C++17}}<br>
+<br>
+template<template<typename> class> struct Y {};<br>
+Y<X> yx; // ok, not class template argument deduction<br>
+<br>
+template<typename T> void f(T t) {<br>
+  X x = t; // expected-warning {{incompatible}}<br>
+}<br>
+<br>
+template<typename T> void g(T t) {<br>
+  typename T::X x = t; // expected-warning {{incompatible}}<br>
+}<br>
+struct A { template<typename T> struct X { X(T); }; };<br>
+void h(A a) { g(a); } // expected-note {{in instantiation of}}<br>
+<br>
+#endif<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</blockquote></div></div>