summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2012-10-18 21:42:42 +0000
committerFariborz Jahanian <fjahanian@apple.com>2012-10-18 21:42:42 +0000
commit9d2f1e753bf3d526327f34a42d9945aa15aafe7b (patch)
treec346ce897650b21dceda990bae0d7282e93860b6 /clang/lib
parent43897975cca762079193a229d3108c5cbbc0aa1d (diff)
downloadbcm5719-llvm-9d2f1e753bf3d526327f34a42d9945aa15aafe7b.tar.gz
bcm5719-llvm-9d2f1e753bf3d526327f34a42d9945aa15aafe7b.zip
[doc parsing] use getParamName to access parameter
for current(rewritten) comment and getParamNameAsWritten to access param name coming with \param marker. llvm-svn: 166231
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/AST/Comment.cpp24
-rw-r--r--clang/lib/AST/CommentDumper.cpp13
-rw-r--r--clang/lib/AST/CommentSema.cpp4
3 files changed, 23 insertions, 18 deletions
diff --git a/clang/lib/AST/Comment.cpp b/clang/lib/AST/Comment.cpp
index 03b58a7aa3c..edb0f60fdfe 100644
--- a/clang/lib/AST/Comment.cpp
+++ b/clang/lib/AST/Comment.cpp
@@ -306,24 +306,22 @@ void DeclInfo::fill() {
}
StringRef ParamCommandComment::getParamName(comments::FullComment *FC) const {
- if (FC && isParamIndexValid())
- return FC->getThisDeclInfo()->ParamVars[getParamIndex()]->getName();
- return Args[0].Text;
+ assert(isParamIndexValid());
+ return FC->getThisDeclInfo()->ParamVars[getParamIndex()]->getName();
}
StringRef TParamCommandComment::getParamName(comments::FullComment *FC) const {
- if (FC && isPositionValid()) {
- const TemplateParameterList *TPL = FC->getThisDeclInfo()->TemplateParameters;
- for (unsigned i = 0, e = getDepth(); i != e; ++i) {
- if (i == e-1)
- return TPL->getParam(getIndex(i))->getName();
- const NamedDecl *Param = TPL->getParam(getIndex(i));
- if (const TemplateTemplateParmDecl *TTP =
+ assert(isPositionValid());
+ const TemplateParameterList *TPL = FC->getThisDeclInfo()->TemplateParameters;
+ for (unsigned i = 0, e = getDepth(); i != e; ++i) {
+ if (i == e-1)
+ return TPL->getParam(getIndex(i))->getName();
+ const NamedDecl *Param = TPL->getParam(getIndex(i));
+ if (const TemplateTemplateParmDecl *TTP =
dyn_cast<TemplateTemplateParmDecl>(Param))
- TPL = TTP->getTemplateParameters();
- }
+ TPL = TTP->getTemplateParameters();
}
- return Args[0].Text;
+ return "";
}
} // end namespace comments
diff --git a/clang/lib/AST/CommentDumper.cpp b/clang/lib/AST/CommentDumper.cpp
index 4f51cd5622c..18ba47ff6c7 100644
--- a/clang/lib/AST/CommentDumper.cpp
+++ b/clang/lib/AST/CommentDumper.cpp
@@ -186,8 +186,12 @@ void CommentDumper::visitParamCommandComment(const ParamCommandComment *C) {
else
OS << " implicitly";
- if (C->hasParamName())
- OS << " Param=\"" << C->getParamName(const_cast<FullComment*>(FC)) << "\"";
+ if (C->hasParamName()) {
+ if (C->isParamIndexValid())
+ OS << " Param=\"" << C->getParamName(const_cast<FullComment*>(FC)) << "\"";
+ else
+ OS << " Param=\"" << C->getParamNameAsWritten() << "\"";
+ }
if (C->isParamIndexValid())
OS << " ParamIndex=" << C->getParamIndex();
@@ -197,7 +201,10 @@ void CommentDumper::visitTParamCommandComment(const TParamCommandComment *C) {
dumpComment(C);
if (C->hasParamName()) {
- OS << " Param=\"" << C->getParamName(const_cast<FullComment*>(FC)) << "\"";
+ if (C->isPositionValid())
+ OS << " Param=\"" << C->getParamName(const_cast<FullComment*>(FC)) << "\"";
+ else
+ OS << " Param=\"" << C->getParamNameAsWritten() << "\"";
}
if (C->isPositionValid()) {
diff --git a/clang/lib/AST/CommentSema.cpp b/clang/lib/AST/CommentSema.cpp
index d664bdb6329..08ecb3a994d 100644
--- a/clang/lib/AST/CommentSema.cpp
+++ b/clang/lib/AST/CommentSema.cpp
@@ -574,7 +574,7 @@ void Sema::resolveParamCommandIndexes(const FullComment *FC) {
ParamCommandComment *PCC = dyn_cast<ParamCommandComment>(*I);
if (!PCC || !PCC->hasParamName())
continue;
- StringRef ParamName = PCC->getParamName(0);
+ StringRef ParamName = PCC->getParamNameAsWritten();
// Check that referenced parameter name is in the function decl.
const unsigned ResolvedParamIndex = resolveParmVarReference(ParamName,
@@ -609,7 +609,7 @@ void Sema::resolveParamCommandIndexes(const FullComment *FC) {
const ParamCommandComment *PCC = UnresolvedParamCommands[i];
SourceRange ArgRange = PCC->getParamNameRange();
- StringRef ParamName = PCC->getParamName(0);
+ StringRef ParamName = PCC->getParamNameAsWritten();
Diag(ArgRange.getBegin(), diag::warn_doc_param_not_found)
<< ParamName << ArgRange;
OpenPOWER on IntegriCloud