mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-02-12 21:28:48 +00:00
[Doc parsing]: Add available and deprecated attribute info
to XML output. // rdar://12378879 llvm-svn: 165039
This commit is contained in:
parent
35c79da3f8
commit
de0ae1e406
@ -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>
|
||||
|
||||
<define name="Abstract">
|
||||
<element name="Abstract">
|
||||
<zeroOrMore>
|
||||
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Function>
|
||||
<Name>aaa</Name>
|
||||
<Abstract><Para>Aaa.</Para></Abstract>
|
||||
<Deprecated>true</Deprecated>
|
||||
</Function>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Function>
|
||||
<Name>aaa</Name>
|
||||
<Abstract><Para>Aaa.</Para></Abstract>
|
||||
<Unavailable>true</Unavailable>
|
||||
</Function>
|
@ -10,3 +10,20 @@ void cfunction_availability(int arg1, double d) __attribute__((availability(maco
|
||||
|
||||
|
||||
// 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>
|
||||
|
@ -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
|
||||
|
@ -1175,8 +1175,13 @@ void CommentASTToXMLConverter::visitFullComment(const FullComment *C) {
|
||||
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";
|
||||
|
Loading…
x
Reference in New Issue
Block a user