This patch looks good to me. But I am not sure if Aaron has any comment. > On Feb 22, 2016, at 6:19 PM, Duncan P. N. Exon Smith <dexonsm...@apple.com> > wrote: > >> >> On 2016-Feb-22, at 17:24, Manman Ren <m...@apple.com> wrote: >> >> >> >>> On Feb 8, 2016, at 8:17 PM, Duncan P. N. Exon Smith <dexonsm...@apple.com> >>> wrote: >>> >>> This patch adds support for templates in availability attributes. >>> - If the context for an availability diagnostic is a >>> `FunctionTemplateDecl`, look through it to the `FunctionDecl`. >> >>> AvailabilityResult Decl::getAvailability(std::string *Message) const { >>> + if (auto *FTD = dyn_cast<FunctionTemplateDecl>(this)) >>> + return FTD->getTemplatedDecl()->getAvailability(Message); >>> + >>> AvailabilityResult Result = AR_Available; >> >> This looks generally correct to me. >> The UnavailableAttr is attached to the FunctionDecl, not the >> FunctionTemplateDecl, so looking through sounds right. >> >>> - Add `__has_feature(attribute_availability_in_templates)`.
@Aaron, any comment on this? This patch adds extra support for Availability attribute (similar to attribute_availability_with_strict in r261548). Not sure if has_attribute can be used for this purpose. Manman >>> >>> Is there anything else I should be testing to be sure availability >>> works correctly in templates? >> >> Maybe >> test<UnavailableClass>() >> calling unavailable function from an unavailable template function >> calling an unavailable template function >> >> I think these all work with the current compiler. But I am not sure if we >> have existing test coverage. > > Thanks for the ideas; let me know if you have any others. > > Can you have a look at the new patch? > >> Cheers, >> Manman >> >>> I'm working on a patch to add >>> availability markup to the libc++ headers, and this is the only >>> problem I've hit so far. Anyone have thoughts on other things I >>> should test? > > <0001-SemaCXX-Support-templates-in-availability-attributes.patch>
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits