unsigned clang_ParamCommandComment_getParamIndex(CXComment CXC) {
const ParamCommandComment *PCC = getASTNodeAs<ParamCommandComment>(CXC);
- if (!PCC)
+ if (!PCC || !PCC->isParamIndexValid())
return ParamCommandComment::InvalidParamIndex;
return PCC->getParamIndex();
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;
}
};