mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-01 08:42:13 +00:00
Bug 1418415 - Add a patch to win64-clang to downgrade a mangling error. r=dmajor
Depends on D10354 Differential Revision: https://phabricator.services.mozilla.com/D10355 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
86cb4f4e4d
commit
e27c90bb3c
@ -19,6 +19,7 @@
|
|||||||
"r342652-unpoison-thread-stacks.patch",
|
"r342652-unpoison-thread-stacks.patch",
|
||||||
"r343123-pin-asan-dll.patch",
|
"r343123-pin-asan-dll.patch",
|
||||||
"aarch64-vastart-checking.patch",
|
"aarch64-vastart-checking.patch",
|
||||||
|
"downgrade-mangling-error.patch",
|
||||||
"loosen-msvc-detection.patch"
|
"loosen-msvc-detection.patch"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
33
build/build-clang/downgrade-mangling-error.patch
Normal file
33
build/build-clang/downgrade-mangling-error.patch
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
Downgrade unimplemented mangling diagnostic from error to note.
|
||||||
|
This codepath is exercised by MozsearchIndexer.cpp (the searchfox
|
||||||
|
indexer) when indexing on Windows. We can do without having the
|
||||||
|
unimplemented bits for now as long the compiler doesn't fail the
|
||||||
|
build. See also https://bugs.llvm.org/show_bug.cgi?id=39294
|
||||||
|
|
||||||
|
diff --git a/clang/lib/AST/ItaniumMangle.cpp b/clang/lib/AST/ItaniumMangle.cpp
|
||||||
|
index b483187394..fb01348ebb 100644
|
||||||
|
--- a/clang/lib/AST/ItaniumMangle.cpp
|
||||||
|
+++ b/clang/lib/AST/ItaniumMangle.cpp
|
||||||
|
@@ -3557,20 +3557,21 @@ recurse:
|
||||||
|
case Expr::AsTypeExprClass:
|
||||||
|
case Expr::PseudoObjectExprClass:
|
||||||
|
case Expr::AtomicExprClass:
|
||||||
|
case Expr::FixedPointLiteralClass:
|
||||||
|
{
|
||||||
|
if (!NullOut) {
|
||||||
|
// As bad as this diagnostic is, it's better than crashing.
|
||||||
|
DiagnosticsEngine &Diags = Context.getDiags();
|
||||||
|
- unsigned DiagID = Diags.getCustomDiagID(DiagnosticsEngine::Error,
|
||||||
|
+ unsigned DiagID = Diags.getCustomDiagID(DiagnosticsEngine::Remark,
|
||||||
|
"cannot yet mangle expression type %0");
|
||||||
|
Diags.Report(E->getExprLoc(), DiagID)
|
||||||
|
<< E->getStmtClassName() << E->getSourceRange();
|
||||||
|
+ Out << "MOZ_WE_HACKED_AROUND_BUG_1418415";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case Expr::CXXUuidofExprClass: {
|
||||||
|
const CXXUuidofExpr *UE = cast<CXXUuidofExpr>(E);
|
||||||
|
if (UE->isTypeOperand()) {
|
||||||
|
QualType UuidT = UE->getTypeOperand(Context.getASTContext());
|
Loading…
Reference in New Issue
Block a user