Skip to content

Commit dab3666

Browse files
committed
[Strict memory safety] Temporarily disable warning about stray "unsafe" in _SwiftifyImport expansions
We need to improve on the macro so it doesn't generate unnecessary "unsafe" expressions. (cherry picked from commit 81b68e5)
1 parent 7f29a27 commit dab3666

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

lib/Sema/TypeCheckEffects.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4599,6 +4599,15 @@ class CheckEffectsCoverage : public EffectsHandlingWalker<CheckEffectsCoverage>
45994599
if (!Ctx.LangOpts.hasFeature(Feature::StrictMemorySafety))
46004600
return;
46014601

4602+
// Silence this warning in the expansion of the _SwiftifyImport macro.
4603+
// This is a hack because it's tricky to determine when to insert "unsafe".
4604+
unsigned bufferID =
4605+
Ctx.SourceMgr.findBufferContainingLoc(E->getUnsafeLoc());
4606+
if (auto sourceInfo = Ctx.SourceMgr.getGeneratedSourceInfo(bufferID)) {
4607+
if (sourceInfo->macroName == "_SwiftifyImport")
4608+
return;
4609+
}
4610+
46024611
if (auto *SVE = SingleValueStmtExpr::tryDigOutSingleValueStmtExpr(E)) {
46034612
// For an if/switch expression, produce a tailored warning.
46044613
Ctx.Diags.diagnose(E->getUnsafeLoc(),

0 commit comments

Comments
 (0)