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