<div dir="ltr"><div>Could this failure be due to your change:</div><div><br></div><a href="http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules-2/builds/8365/steps/compile.llvm.stage2/logs/stdio">http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules-2/builds/8365/steps/compile.llvm.stage2/logs/stdio</a><div><br></div><div>?<br><div class="gmail_extra"><br><div class="gmail_quote">On 9 June 2017 at 14:00, Richard Trieu via cfe-commits <span dir="ltr"><<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</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">Author: rtrieu<br>
Date: Fri Jun  9 16:00:10 2017<br>
New Revision: 305110<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=305110&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=305110&view=rev</a><br>
Log:<br>
[ODRHash] Add support for TemplateArgument types.<br>
<br>
Recommit r304592 that was reverted in r304618.  r305104 should have fixed the<br>
issue.<br>
<br>
Modified:<br>
    cfe/trunk/lib/AST/ODRHash.cpp<br>
    cfe/trunk/test/Modules/odr_<wbr>hash.cpp<br>
<br>
Modified: cfe/trunk/lib/AST/ODRHash.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ODRHash.cpp?rev=305110&r1=305109&r2=305110&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/cfe/trunk/lib/AST/<wbr>ODRHash.cpp?rev=305110&r1=<wbr>305109&r2=305110&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- cfe/trunk/lib/AST/ODRHash.cpp (original)<br>
+++ cfe/trunk/lib/AST/ODRHash.cpp Fri Jun  9 16:00:10 2017<br>
@@ -140,7 +140,25 @@ void ODRHash::AddTemplateName(<wbr>TemplateNa<br>
   }<br>
 }<br>
<br>
-void ODRHash::AddTemplateArgument(<wbr>TemplateArgument TA) {}<br>
+void ODRHash::AddTemplateArgument(<wbr>TemplateArgument TA) {<br>
+  auto Kind = TA.getKind();<br>
+  ID.AddInteger(Kind);<br>
+<br>
+  switch (Kind) {<br>
+  case TemplateArgument::Null:<br>
+  case TemplateArgument::Declaration:<br>
+  case TemplateArgument::NullPtr:<br>
+  case TemplateArgument::Integral:<br>
+  case TemplateArgument::Template:<br>
+  case TemplateArgument::<wbr>TemplateExpansion:<br>
+  case TemplateArgument::Expression:<br>
+  case TemplateArgument::Pack:<br>
+    break;<br>
+  case TemplateArgument::Type:<br>
+    AddQualType(TA.getAsType());<br>
+    break;<br>
+  }<br>
+}<br>
 void ODRHash::<wbr>AddTemplateParameterList(const TemplateParameterList *TPL) {}<br>
<br>
 void ODRHash::clear() {<br>
<br>
Modified: cfe/trunk/test/Modules/odr_<wbr>hash.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/odr_hash.cpp?rev=305110&r1=305109&r2=305110&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/cfe/trunk/test/<wbr>Modules/odr_hash.cpp?rev=<wbr>305110&r1=305109&r2=305110&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- cfe/trunk/test/Modules/odr_<wbr>hash.cpp (original)<br>
+++ cfe/trunk/test/Modules/odr_<wbr>hash.cpp Fri Jun  9 16:00:10 2017<br>
@@ -900,6 +900,24 @@ S2 s2;<br>
 #endif<br>
 }<br>
<br>
+namespace TemplateArgument {<br>
+#if defined(FIRST)<br>
+template<typename> struct U1 {};<br>
+struct S1 {<br>
+  U1<int> u;<br>
+};<br>
+#elif defined(SECOND)<br>
+template<typename> struct U1 {};<br>
+struct S1 {<br>
+  U1<double> u;<br>
+};<br>
+#else<br>
+S1 s1;<br>
+// expected-error@first.h:* {{'TemplateArgument::S1::u' from module 'FirstModule' is not present in definition of 'TemplateArgument::S1' in module 'SecondModule'}}<br>
+// expected-note@second.h:* {{declaration of 'u' does not match}}<br>
+#endif<br>
+}<br>
+<br>
 // Interesting cases that should not cause errors.  struct S should not error<br>
 // while struct T should error at the access specifier mismatch at the end.<br>
 namespace AllDecls {<br>
<br>
<br>
______________________________<wbr>_________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org">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/<wbr>mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div></div></div>