зеркало из https://github.com/microsoft/clang-1.git
Add an assert to ParamCommandComment::getParamIndex() -- it should not be
called unless index is valid. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160970 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
cec9ce49dc
Коммит
b740316a12
|
@ -713,6 +713,7 @@ public:
|
|||
}
|
||||
|
||||
unsigned getParamIndex() const LLVM_READONLY {
|
||||
assert(isParamIndexValid());
|
||||
return ParamIndex;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче