aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authordrh <>2023-12-06 18:25:41 +0000
committerdrh <>2023-12-06 18:25:41 +0000
commit82fc1b63f6e89afec382e7ddbb2d3ffe3ac8cefe (patch)
treedfa0d5a333428b0c8a863d770e868edf726090f3 /src/expr.c
parent83ac79282acb7c78647d1a7474c0061da450f124 (diff)
downloadsqlite-82fc1b63f6e89afec382e7ddbb2d3ffe3ac8cefe.tar.gz
sqlite-82fc1b63f6e89afec382e7ddbb2d3ffe3ac8cefe.zip
Work around LLVM's newfound hatred of function pointer casts.
[forum:/forumpost/1a7d257346636292|Forum post 1a7d257346636292]. FossilOrigin-Name: ec0ae4030968c782af48d1c776351c14b2ada21d40aeb97915f33df30706e18f
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/expr.c b/src/expr.c
index 8a664ffb9..047d2b6b3 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -1223,9 +1223,7 @@ void sqlite3ExprAddFunctionOrderBy(
assert( ExprUseXList(pExpr) );
if( pExpr->x.pList==0 || NEVER(pExpr->x.pList->nExpr==0) ){
/* Ignore ORDER BY on zero-argument aggregates */
- sqlite3ParserAddCleanup(pParse,
- (void(*)(sqlite3*,void*))sqlite3ExprListDelete,
- pOrderBy);
+ sqlite3ParserAddCleanup(pParse, sqlite3ExprListDeleteGeneric, pOrderBy);
return;
}
if( IsWindowFunc(pExpr) ){
@@ -1406,6 +1404,9 @@ static SQLITE_NOINLINE void sqlite3ExprDeleteNN(sqlite3 *db, Expr *p){
void sqlite3ExprDelete(sqlite3 *db, Expr *p){
if( p ) sqlite3ExprDeleteNN(db, p);
}
+void sqlite3ExprDeleteGeneric(sqlite3 *db, void *p){
+ if( p ) sqlite3ExprDeleteNN(db, (Expr*)p);
+}
/*
** Clear both elements of an OnOrUsing object
@@ -1431,9 +1432,7 @@ void sqlite3ClearOnOrUsing(sqlite3 *db, OnOrUsing *p){
** pExpr to the pParse->pConstExpr list with a register number of 0.
*/
void sqlite3ExprDeferredDelete(Parse *pParse, Expr *pExpr){
- sqlite3ParserAddCleanup(pParse,
- (void(*)(sqlite3*,void*))sqlite3ExprDelete,
- pExpr);
+ sqlite3ParserAddCleanup(pParse, sqlite3ExprDeleteGeneric, pExpr);
}
/* Invoke sqlite3RenameExprUnmap() and sqlite3ExprDelete() on the
@@ -2239,6 +2238,9 @@ static SQLITE_NOINLINE void exprListDeleteNN(sqlite3 *db, ExprList *pList){
void sqlite3ExprListDelete(sqlite3 *db, ExprList *pList){
if( pList ) exprListDeleteNN(db, pList);
}
+void sqlite3ExprListDeleteGeneric(sqlite3 *db, void *pList){
+ if( pList ) exprListDeleteNN(db, (ExprList*)pList);
+}
/*
** Return the bitwise-OR of all Expr.flags fields in the given