【发布时间】:2011-06-06 14:03:12
【问题描述】:
cppcheck 已确定以下语句在 sqlite3.c 中产生语法错误:
for(i=0; i<db->nDb; i++){
全功能:
SQLITE_PRIVATE void sqlite3BtreeLeaveAll(sqlite3 *db){
int i;
Btree *p;
assert( sqlite3_mutex_held(db->mutex) );
for(i=0; i<db->nDb; i++){
p = db->aDb[i].pBt;
if( p && p->sharable ){
assert( p->wantToLock>0 );
p->wantToLock--;
if( p->wantToLock==0 ){
unlockBtreeMutex(p);
}
}
}
}
我看不出这是一个语法错误。请解释。这是误报吗?
【问题讨论】:
-
对我来说看起来不错,显然它确实可以编译 - 我不得不说我一直发现 cppcheck 几乎完全没有价值。
-
会不会被
assert宏搞糊涂了?只是一个疯狂的猜测。 -
你可能会发现这个有趣的阅读sqlite.org/faq.html#q17
-
@mu 太短。好像没有。
标签: c sqlite syntax-error cppcheck