<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 23 January 2017 at 08:57, David Blaikie <span dir="ltr"><<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Should this test that some specific mangling comes out the other end (tests that amount to "test that this does anything other than crashing" always make me a bit suspicious that there's /some/ specific behavior that is intended/should be tested for)</div></blockquote><div><br></div><div>A very reasonable suggestion :) r292978, thanks!</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail-HOEnZb"><div class="gmail-h5"><div class="gmail_quote"><div dir="ltr">On Fri, Jan 20, 2017 at 11:01 AM Richard Smith via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Author: rsmith<br class="gmail-m_6068517352880964798gmail_msg">
Date: Fri Jan 20 12:50:12 2017<br class="gmail-m_6068517352880964798gmail_msg">
New Revision: 292632<br class="gmail-m_6068517352880964798gmail_msg">
<br class="gmail-m_6068517352880964798gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=292632&view=rev" rel="noreferrer" class="gmail-m_6068517352880964798gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=292632&view=rev</a><br class="gmail-m_6068517352880964798gmail_msg">
Log:<br class="gmail-m_6068517352880964798gmail_msg">
Fix actually-reachable llvm_unreachable.<br class="gmail-m_6068517352880964798gmail_msg">
<br class="gmail-m_6068517352880964798gmail_msg">
Modified:<br class="gmail-m_6068517352880964798gmail_msg">
    cfe/trunk/lib/AST/<wbr>ItaniumMangle.cpp<br class="gmail-m_6068517352880964798gmail_msg">
    cfe/trunk/test/CodeGenCXX/<wbr>mangle.cpp<br class="gmail-m_6068517352880964798gmail_msg">
<br class="gmail-m_6068517352880964798gmail_msg">
Modified: cfe/trunk/lib/AST/<wbr>ItaniumMangle.cpp<br class="gmail-m_6068517352880964798gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ItaniumMangle.cpp?rev=292632&r1=292631&r2=292632&view=diff" rel="noreferrer" class="gmail-m_6068517352880964798gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/cfe/trunk/lib/AST/<wbr>ItaniumMangle.cpp?rev=292632&<wbr>r1=292631&r2=292632&view=diff</a><br class="gmail-m_6068517352880964798gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="gmail-m_6068517352880964798gmail_msg">
--- cfe/trunk/lib/AST/<wbr>ItaniumMangle.cpp (original)<br class="gmail-m_6068517352880964798gmail_msg">
+++ cfe/trunk/lib/AST/<wbr>ItaniumMangle.cpp Fri Jan 20 12:50:12 2017<br class="gmail-m_6068517352880964798gmail_msg">
@@ -3043,6 +3043,7 @@ void CXXNameMangler::mangleType(<wbr>const De<br class="gmail-m_6068517352880964798gmail_msg">
   //                   ::= Te <name> # dependent elaborated type specifier using<br class="gmail-m_6068517352880964798gmail_msg">
   //                                 # 'enum'<br class="gmail-m_6068517352880964798gmail_msg">
   switch (T->getKeyword()) {<br class="gmail-m_6068517352880964798gmail_msg">
+    case ETK_None:<br class="gmail-m_6068517352880964798gmail_msg">
     case ETK_Typename:<br class="gmail-m_6068517352880964798gmail_msg">
       break;<br class="gmail-m_6068517352880964798gmail_msg">
     case ETK_Struct:<br class="gmail-m_6068517352880964798gmail_msg">
@@ -3056,8 +3057,6 @@ void CXXNameMangler::mangleType(<wbr>const De<br class="gmail-m_6068517352880964798gmail_msg">
     case ETK_Enum:<br class="gmail-m_6068517352880964798gmail_msg">
       Out << "Te";<br class="gmail-m_6068517352880964798gmail_msg">
       break;<br class="gmail-m_6068517352880964798gmail_msg">
-    default:<br class="gmail-m_6068517352880964798gmail_msg">
-      llvm_unreachable("unexpected keyword for dependent type name");<br class="gmail-m_6068517352880964798gmail_msg">
   }<br class="gmail-m_6068517352880964798gmail_msg">
   // Typename types are always nested<br class="gmail-m_6068517352880964798gmail_msg">
   Out << 'N';<br class="gmail-m_6068517352880964798gmail_msg">
<br class="gmail-m_6068517352880964798gmail_msg">
Modified: cfe/trunk/test/CodeGenCXX/<wbr>mangle.cpp<br class="gmail-m_6068517352880964798gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/mangle.cpp?rev=292632&r1=292631&r2=292632&view=diff" rel="noreferrer" class="gmail-m_6068517352880964798gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/cfe/trunk/test/<wbr>CodeGenCXX/mangle.cpp?rev=<wbr>292632&r1=292631&r2=292632&<wbr>view=diff</a><br class="gmail-m_6068517352880964798gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="gmail-m_6068517352880964798gmail_msg">
--- cfe/trunk/test/CodeGenCXX/<wbr>mangle.cpp (original)<br class="gmail-m_6068517352880964798gmail_msg">
+++ cfe/trunk/test/CodeGenCXX/<wbr>mangle.cpp Fri Jan 20 12:50:12 2017<br class="gmail-m_6068517352880964798gmail_msg">
@@ -1125,3 +1125,14 @@ namespace test57 {<br class="gmail-m_6068517352880964798gmail_msg">
   // CHECK-LABEL: @_<wbr>ZN6test571fILi0EEEvDTplcldtL_<wbr>ZNS_1xEE1fIXLi0EEEET_E<br class="gmail-m_6068517352880964798gmail_msg">
   template void f<0>(int);<br class="gmail-m_6068517352880964798gmail_msg">
 }<br class="gmail-m_6068517352880964798gmail_msg">
+<br class="gmail-m_6068517352880964798gmail_msg">
+namespace test58 {<br class="gmail-m_6068517352880964798gmail_msg">
+  struct State {<br class="gmail-m_6068517352880964798gmail_msg">
+   bool m_fn1();<br class="gmail-m_6068517352880964798gmail_msg">
+  } a;<br class="gmail-m_6068517352880964798gmail_msg">
+  template <class T> struct identity_ { typedef T type; };<br class="gmail-m_6068517352880964798gmail_msg">
+  struct A {<br class="gmail-m_6068517352880964798gmail_msg">
+   template <typename T> A(T, bool (identity_<T>::type::*)());<br class="gmail-m_6068517352880964798gmail_msg">
+  };<br class="gmail-m_6068517352880964798gmail_msg">
+  void fn1() { A(a, &State::m_fn1); }<br class="gmail-m_6068517352880964798gmail_msg">
+}<br class="gmail-m_6068517352880964798gmail_msg">
<br class="gmail-m_6068517352880964798gmail_msg">
<br class="gmail-m_6068517352880964798gmail_msg">
______________________________<wbr>_________________<br class="gmail-m_6068517352880964798gmail_msg">
cfe-commits mailing list<br class="gmail-m_6068517352880964798gmail_msg">
<a href="mailto:cfe-commits@lists.llvm.org" class="gmail-m_6068517352880964798gmail_msg" target="_blank">cfe-commits@lists.llvm.org</a><br class="gmail-m_6068517352880964798gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" class="gmail-m_6068517352880964798gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-commits</a><br class="gmail-m_6068517352880964798gmail_msg">
</blockquote></div>
</div></div></blockquote></div><br></div></div>