We probably want this in 5.0. On Mon, Jul 24, 2017 at 12:54 PM, Nico Weber via cfe-commits < cfe-commits@lists.llvm.org> wrote:
> Author: nico > Date: Mon Jul 24 09:54:11 2017 > New Revision: 308897 > > URL: http://llvm.org/viewvc/llvm-project?rev=308897&view=rev > Log: > Work around an MSVC2017 update 3 codegen bug. > > C2017 update 3 produces a clang that crashes when compiling clang. > Disabling > optimizations for StmtProfiler::VisitCXXOperatorCallExpr() makes the > crash go > away. > > Patch from Bruce Dawson <brucedaw...@chromium.org>! > https://reviews.llvm.org/D35757 > > Modified: > cfe/trunk/lib/AST/StmtProfile.cpp > > Modified: cfe/trunk/lib/AST/StmtProfile.cpp > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ > StmtProfile.cpp?rev=308897&r1=308896&r2=308897&view=diff > ============================================================ > ================== > --- cfe/trunk/lib/AST/StmtProfile.cpp (original) > +++ cfe/trunk/lib/AST/StmtProfile.cpp Mon Jul 24 09:54:11 2017 > @@ -1412,6 +1412,15 @@ static Stmt::StmtClass DecodeOperatorCal > llvm_unreachable("Invalid overloaded operator expression"); > } > > +#if defined(_MSC_VER) > +#if _MSC_VER == 1911 > +// Work around https://developercommunity.visualstudio.com/content/ > problem/84002/clang-cl-when-built-with-vc-2017-crashes-cause-vc.html > +// MSVC 2017 update 3 miscompiles this function, and a clang built with it > +// will crash in stage 2 of a bootstrap build. > +#pragma optimize("", off) > +#endif > +#endif > + > void StmtProfiler::VisitCXXOperatorCallExpr(const CXXOperatorCallExpr > *S) { > if (S->isTypeDependent()) { > // Type-dependent operator calls are profiled like their underlying > @@ -1444,6 +1453,12 @@ void StmtProfiler::VisitCXXOperatorCallE > ID.AddInteger(S->getOperator()); > } > > +#if defined(_MSC_VER) > +#if _MSC_VER == 1911 > +#pragma optimize("", on) > +#endif > +#endif > + > void StmtProfiler::VisitCXXMemberCallExpr(const CXXMemberCallExpr *S) { > VisitCallExpr(S); > } > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits