> 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)`. >> >> 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
Description: Binary data
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits