On Oct 2, 2012, at 1:05 PM, Fariborz Jahanian <[email protected]> wrote:
> Author: fjahanian > Date: Tue Oct 2 15:05:47 2012 > New Revision: 165039 > > URL: http://llvm.org/viewvc/llvm-project?rev=165039&view=rev > Log: > [Doc parsing]: Add available and deprecated attribute info > to XML output. // rdar://12378879 > Added: > cfe/trunk/test/Index/Inputs/CommentXML/valid-deprecated-attr.xml > cfe/trunk/test/Index/Inputs/CommentXML/valid-unavailable-attr.xml > Modified: > cfe/trunk/bindings/xml/comment-xml-schema.rng > cfe/trunk/test/Index/annotate-comments-availability-attrs.cpp > cfe/trunk/test/Index/comment-xml-schema.c > cfe/trunk/tools/libclang/CXComment.cpp > > Modified: cfe/trunk/bindings/xml/comment-xml-schema.rng > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/bindings/xml/comment-xml-schema.rng?rev=165039&r1=165038&r2=165039&view=diff > ============================================================================== > --- cfe/trunk/bindings/xml/comment-xml-schema.rng (original) > +++ cfe/trunk/bindings/xml/comment-xml-schema.rng Tue Oct 2 15:05:47 2012 > @@ -82,6 +82,12 @@ > <zeroOrMore> > <ref name="Availability" /> > </zeroOrMore> > + <zeroOrMore> > + <ref name="Deprecated" /> > + </zeroOrMore> > + <zeroOrMore> > + <ref name="Unavailable" /> > + </zeroOrMore> > <optional> > <ref name="ResultDiscussion" /> > </optional> > @@ -313,13 +319,23 @@ > </element> > </optional> > <optional> > - <element name="Unavailable"> > - <data type="boolean" /> > - </element> > + <ref name="Unavailable" /> > </optional> > </element> > </define> > > + <define name="Deprecated"> > + <element name="Deprecated"> > + <data type="boolean" /> > + </element> > + </define> > + > + <define name="Unavailable"> > + <element name="Unavailable"> > + <data type="boolean" /> > + </element> > + </define> > + I don't think we need the boolean; the presence of <Deprecated> or <Unavailable> says that it's deprecated or unavailable. Also, shouldn't this include an optional message? That could be the content of the <Deprecated> or <Unavailable> tag. - Doug > <define name="Abstract"> > <element name="Abstract"> > <zeroOrMore> > > Added: cfe/trunk/test/Index/Inputs/CommentXML/valid-deprecated-attr.xml > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/Inputs/CommentXML/valid-deprecated-attr.xml?rev=165039&view=auto > ============================================================================== > --- cfe/trunk/test/Index/Inputs/CommentXML/valid-deprecated-attr.xml (added) > +++ cfe/trunk/test/Index/Inputs/CommentXML/valid-deprecated-attr.xml Tue Oct > 2 15:05:47 2012 > @@ -0,0 +1,6 @@ > +<?xml version="1.0" encoding="utf-8"?> > +<Function> > +<Name>aaa</Name> > +<Abstract><Para>Aaa.</Para></Abstract> > +<Deprecated>true</Deprecated> > +</Function> > > Added: cfe/trunk/test/Index/Inputs/CommentXML/valid-unavailable-attr.xml > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/Inputs/CommentXML/valid-unavailable-attr.xml?rev=165039&view=auto > ============================================================================== > --- cfe/trunk/test/Index/Inputs/CommentXML/valid-unavailable-attr.xml (added) > +++ cfe/trunk/test/Index/Inputs/CommentXML/valid-unavailable-attr.xml Tue Oct > 2 15:05:47 2012 > @@ -0,0 +1,6 @@ > +<?xml version="1.0" encoding="utf-8"?> > +<Function> > +<Name>aaa</Name> > +<Abstract><Para>Aaa.</Para></Abstract> > +<Unavailable>true</Unavailable> > +</Function> > > Modified: cfe/trunk/test/Index/annotate-comments-availability-attrs.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/annotate-comments-availability-attrs.cpp?rev=165039&r1=165038&r2=165039&view=diff > ============================================================================== > --- cfe/trunk/test/Index/annotate-comments-availability-attrs.cpp (original) > +++ cfe/trunk/test/Index/annotate-comments-availability-attrs.cpp Tue Oct 2 > 15:05:47 2012 > @@ -10,3 +10,20 @@ > > > // CHECK: annotate-comments-availability-attrs.cpp:8:6: > FunctionDecl=cfunction_availability:{{.*}} FullCommentAsXML=[<Function > file="{{.*}}annotate-comments-availability-attrs.cpp" line="8" > column="6"><Name>cfunction_availability</Name><USR>c:@F@cfunction_availability#I#d#</USR><Parameters><Parameter><Name>arg1</Name><Index>0</Index><Direction > isExplicit="1">in</Direction><Discussion><Para> ZZZ > </Para></Discussion></Parameter><Parameter><Name>d</Name><Index>1</Index><Direction > isExplicit="1">out</Direction><Discussion><Para> > xxx</Para></Discussion></Parameter></Parameters><Availability > distribution="iOS"> <DeprecationSummary>not for > iOS</DeprecationSummary><Unavailable>true</Unavailable></Availability><Availability > distribution="OS > X"><IntroducedInVersion>8.0</IntroducedInVersion><DeprecatedInVersion>9.0</DeprecatedInVersion><RemovedAfterVersion>10.0</RemovedAfterVersion> > <DeprecationSummary>use > availability_test</DeprecationSummary></Availability></Function>] > + > + > +/** > + * \param[in] arg1 ZZZ > + * \param[out] d xxx > + */ > +void dep(int arg1, double d) __attribute__((deprecated)); > + > +// CHECK: annotate-comments-availability-attrs.cpp:19:6: > FunctionDecl=dep:{{.*}} FullCommentAsXML=[<Function > file="{{.*}}annotate-comments-availability-attrs.cpp" line="19" > column="6"><Name>dep</Name><USR>c:@F@dep#I#d#</USR><Parameters><Parameter><Name>arg1</Name><Index>0</Index><Direction > isExplicit="1">in</Direction><Discussion><Para> ZZZ > </Para></Discussion></Parameter><Parameter><Name>d</Name><Index>1</Index><Direction > isExplicit="1">out</Direction><Discussion><Para> xxx > </Para></Discussion></Parameter></Parameters><Deprecated>true</Deprecated></Function> > + > + > +/** > + * \param[in] arg1 ZZZ > + */ > +void unv(int arg1) __attribute__((unavailable)); > + > +// CHECK: annotate-comments-availability-attrs.cpp:27:6: > FunctionDecl=unv:{{.*}} FullCommentAsXML=[<Function > file="{{.*}}annotate-comments-availability-attrs.cpp" line="27" > column="6"><Name>unv</Name><USR>c:@F@unv#I#</USR><Parameters><Parameter><Name>arg1</Name><Index>0</Index><Direction > isExplicit="1">in</Direction><Discussion><Para> ZZZ > </Para></Discussion></Parameter></Parameters><Unavailable>true</Unavailable></Function> > > Modified: cfe/trunk/test/Index/comment-xml-schema.c > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/comment-xml-schema.c?rev=165039&r1=165038&r2=165039&view=diff > ============================================================================== > --- cfe/trunk/test/Index/comment-xml-schema.c (original) > +++ cfe/trunk/test/Index/comment-xml-schema.c Tue Oct 2 15:05:47 2012 > @@ -13,6 +13,8 @@ > // RUN: xmllint --noout --relaxng > %S/../../bindings/xml/comment-xml-schema.rng > %S/Inputs/CommentXML/valid-function-09.xml > // > // RUN: xmllint --noout --relaxng > %S/../../bindings/xml/comment-xml-schema.rng > %S/Inputs/CommentXML/valid-availability-attr-01.xml > +// RUN: xmllint --noout --relaxng > %S/../../bindings/xml/comment-xml-schema.rng > %S/Inputs/CommentXML/valid-deprecated-attr.xml > +// RUN: xmllint --noout --relaxng > %S/../../bindings/xml/comment-xml-schema.rng > %S/Inputs/CommentXML/valid-unavailable-attr.xml > // > // RUN: xmllint --noout --relaxng > %S/../../bindings/xml/comment-xml-schema.rng > %S/Inputs/CommentXML/valid-class-01.xml > // RUN: xmllint --noout --relaxng > %S/../../bindings/xml/comment-xml-schema.rng > %S/Inputs/CommentXML/valid-class-02.xml > > Modified: cfe/trunk/tools/libclang/CXComment.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CXComment.cpp?rev=165039&r1=165038&r2=165039&view=diff > ============================================================================== > --- cfe/trunk/tools/libclang/CXComment.cpp (original) > +++ cfe/trunk/tools/libclang/CXComment.cpp Tue Oct 2 15:05:47 2012 > @@ -1175,8 +1175,13 @@ > const AttrVec &Attrs = DI->ThisDecl->getAttrs(); > for (unsigned i = 0, e = Attrs.size(); i != e; i++) { > const AvailabilityAttr *AA = dyn_cast<AvailabilityAttr>(Attrs[i]); > - if (!AA) > + if (!AA) { > + if (isa<DeprecatedAttr>(Attrs[i])) > + Result << "<Deprecated>true</Deprecated>"; > + else if (isa<UnavailableAttr>(Attrs[i])) > + Result << "<Unavailable>true</Unavailable>"; > continue; > + } > > // 'availability' attribute. > Result << "<Availability"; > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
