Hi,
This is a patch for clang and one for llvm (perhaps should post it on llvm
mailing list) allowing to build clang without error on MSVC2005.
Mainly project change but also a few missing std include header and one
compiler bug (or not, I don't know what the standard say):
for (GRExprEngine::null_iterator I=CheckerState->null_begin(),
E=CheckerState->null_end(); I!=E; ++I) {
const PostStmt& L = cast<PostStmt>((*I)->getLocation());
Expr* E = cast<Expr>(L.getStmt());
Diag.Report(FullSourceLoc(E->getExprLoc(), Ctx.getSourceManager()),
diag::chkr_null_deref_after_check);
}
Not Expr* E who redefine E from the for initialization. Is it the same
scope? The strangest thing was that MSVC didn't complain about redefinition
but seemed to ignore the Expr* E; definition and was thinking E was a
null_iterator. Took me some time to understand the problem.
Didn't run the test, but it compile without error (not without warning...)
Regards,
Ps: What should I use as LLVM_HOSTTRIPLE: "i386-win32-WinXP" ??
llvm-msvc.patch (28.2 KB)
clang-msvc.patch (7.8 KB)