MaskRay added a comment. In D148827#4379560 <https://reviews.llvm.org/D148827#4379560>, @glandium wrote:
> 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? These cases are UB and should be caught. It's not an excuse that they use C. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148827/new/ https://reviews.llvm.org/D148827 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits