summaryrefslogtreecommitdiffstats
path: root/clang/tools/libclang/CXComment.cpp
diff options
context:
space:
mode:
authorDmitri Gribenko <gribozavr@gmail.com>2012-07-30 17:38:19 +0000
committerDmitri Gribenko <gribozavr@gmail.com>2012-07-30 17:38:19 +0000
commita260c030b85b72a3efa5179239e11933b02ef37a (patch)
tree814351bbd76c51dd50803030fd7bfd8397d7d2ab /clang/tools/libclang/CXComment.cpp
parenteb488fe16532518160ef55bbbfcdc0d1f14ea64c (diff)
downloadbcm5719-llvm-a260c030b85b72a3efa5179239e11933b02ef37a.tar.gz
bcm5719-llvm-a260c030b85b72a3efa5179239e11933b02ef37a.zip
Add an assert to ParamCommandComment::getParamIndex() -- it should not be
called unless index is valid. llvm-svn: 160970
Diffstat (limited to 'clang/tools/libclang/CXComment.cpp')
-rw-r--r--clang/tools/libclang/CXComment.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/clang/tools/libclang/CXComment.cpp b/clang/tools/libclang/CXComment.cpp
index dfa782005b3..4189b31446a 100644
--- a/clang/tools/libclang/CXComment.cpp
+++ b/clang/tools/libclang/CXComment.cpp
@@ -256,7 +256,7 @@ unsigned clang_ParamCommandComment_isParamIndexValid(CXComment CXC) {
unsigned clang_ParamCommandComment_getParamIndex(CXComment CXC) {
const ParamCommandComment *PCC = getASTNodeAs<ParamCommandComment>(CXC);
- if (!PCC)
+ if (!PCC || !PCC->isParamIndexValid())
return ParamCommandComment::InvalidParamIndex;
return PCC->getParamIndex();
@@ -316,11 +316,18 @@ namespace {
class ParamCommandCommentCompareIndex {
public:
+ /// This comparison will sort parameters with valid index by index and
+ /// invalid (unresolved) parameters last.
bool operator()(const ParamCommandComment *LHS,
const ParamCommandComment *RHS) const {
- // To sort invalid (unresolved) parameters last, this comparison relies on
- // invalid indices to be UINT_MAX.
- return LHS->getParamIndex() < RHS->getParamIndex();
+ unsigned LHSIndex = UINT_MAX;
+ unsigned RHSIndex = UINT_MAX;
+ if (LHS->isParamIndexValid())
+ LHSIndex = LHS->getParamIndex();
+ if (RHS->isParamIndexValid())
+ RHSIndex = RHS->getParamIndex();
+
+ return LHSIndex < RHSIndex;
}
};
OpenPOWER on IntegriCloud