gecko-dev/build/build-clang/android-mangling-error_clang_12.patch
David Major 219799577d Bug 1694280 - Add clang 12.0.0 rc2 toolchains (not yet used) r=firefox-build-system-reviewers,glandium
Just adding the toolchain tasks for now. They are not yet used by anything, but bug 1693288 might be interested eventually.

As with earlier releases, clang-tidy and mingw builds are not included here, they'll be separate patches.

Differential Revision: https://phabricator.services.mozilla.com/D106554
2021-03-03 16:53:28 +00:00

25 lines
937 B
Diff

Workaround segfault in clang's mangling code that is tickled when
attempting to mangle the declaration:
std:__ndk1::__find_detail::__find_exactly_one_checked::__matches
in the <tuple> header in the Android NDK.
This codepath is exercised by MozsearchIndexer.cpp (the searchfox
indexer) when indexing on Android. See also
https://bugs.llvm.org/show_bug.cgi?id=40747
diff --git a/clang/lib/AST/ItaniumMangle.cpp b/clang/lib/AST/ItaniumMangle.cpp
index 4420f6a2c1c3..39792e6b7350 100644
--- a/clang/lib/AST/ItaniumMangle.cpp
+++ b/clang/lib/AST/ItaniumMangle.cpp
@@ -3954,6 +3954,11 @@ void CXXNameMangler::mangleExpression(const Expr *E, unsigned Arity,
// produces no output, where ImplicitlyConvertedToType and AsTemplateArg need
// to be preserved.
recurse:
+ if (!E) {
+ Out << "MOZ_WE_HACKED_AROUND_BUG_1500941";
+ return;
+ }
+
switch (E->getStmtClass()) {
case Expr::NoStmtClass:
#define ABSTRACT_STMT(Type)