Merge pull request #79109 from eeckstein/workaround-clang-crash

Sema: don't use `llvm::StringSwitch` for runtime function names
This commit is contained in:
eeckstein
2025-02-03 13:57:47 +01:00
committed by GitHub

View File

@@ -2520,14 +2520,14 @@ static bool canDeclareSymbolName(StringRef symbol, ModuleDecl *fromModule) {
// to predict ways. Warn when code attempts to do so; hopefully we can
// promote this to an error after a while.
return llvm::StringSwitch<bool>(symbol)
#define FUNCTION(_, Module, Name, ...) \
.Case(#Name, false) \
.Case("_" #Name, false) \
.Case(#Name "_", false) \
.Case("_" #Name "_", false)
if (symbol == #Name) { return false; } \
if (symbol == "_" #Name) { return false; } \
if (symbol == #Name "_") { return false; } \
if (symbol == "_" #Name "_") { return false; }
#include "swift/Runtime/RuntimeFunctions.def"
.Default(true);
return true;
}
void AttributeChecker::visitCDeclAttr(CDeclAttr *attr) {