[PATCH] D148827: -fsanitize=function: support C

Mike Hommey via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon May 29 16:05:10 PDT 2023


glandium added a comment.

This breaks sqlite:

  /builds/worker/checkouts/gecko/third_party/sqlite3/src/sqlite3.c:137791:5: runtime error: call to function sqlite3DeleteTable through pointer to incorrect function type 'void (*)(struct sqlite3 *, void *)'
  /builds/worker/checkouts/gecko/third_party/sqlite3/src/sqlite3.c:118360: note: sqlite3DeleteTable defined here

The function is declared as `void sqlite3DeleteTable(sqlite3 *db, Table *pTable)` so technically, it's not wrong, but is it really a problem that needs to be caught? (when the difference is between `type*` and `void*`)

This also breaks NSS:

  /builds/worker/checkouts/gecko/security/nss/lib/freebl/loader.c:95:12: runtime error: call to function BL_Init through pointer to incorrect function type 'enum _SECStatus (*)(void)'
  /builds/worker/checkouts/gecko/security/nss/lib/freebl/blinit.c:557: note: BL_Init defined here

Pointer type is:

  SECStatus (*p_BL_Init)(void);

and BL_Init is declared as:

  SECStatus BL_Init()

I guess it's tripping on the missing `void`... should that be an error?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148827/new/

https://reviews.llvm.org/D148827



More information about the cfe-commits mailing list