Skip to content

Commit 5797130

Browse files
authored
Merge pull request #83119 from DougGregor/unsafe-covers-unsafe-6.2
2 parents 8e4d9a3 + b6ea296 commit 5797130

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

lib/Sema/TypeCheckEffects.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3816,7 +3816,6 @@ class CheckEffectsCoverage : public EffectsHandlingWalker<CheckEffectsCoverage>
38163816
}
38173817

38183818
void preserveCoverageFromUnsafeOperand() {
3819-
OldFlags.mergeFrom(ContextFlags::HasAnyUnsafeSite, Self.Flags);
38203819
OldFlags.mergeFrom(ContextFlags::HasAnyUnsafe, Self.Flags);
38213820
OldFlags.mergeFrom(ContextFlags::asyncAwaitFlags(), Self.Flags);
38223821
OldFlags.mergeFrom(ContextFlags::throwFlags(), Self.Flags);

test/Unsafe/safe.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,3 +374,10 @@ func testInterpolation(ptr: UnsafePointer<Int>) {
374374
// expected-note@-1{{reference to unsafe type 'UnsafePointer<Int>'}}
375375
// expected-note@-2{{argument #0 in call to instance method 'appendInterpolation' has unsafe type 'UnsafePointer<Int>'}}
376376
}
377+
378+
func superDuperUnsafe(_ bytes: UnsafeRawBufferPointer) {
379+
// expected-warning@+1{{no unsafe operations occur within 'unsafe' expression}}
380+
let byte = unsafe unsafe bytes.first ?? 0
381+
_ = byte
382+
_ = unsafe bytes.first ?? 0
383+
}

test/Unsafe/unsafe_nonstrict.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,10 @@ func testItAll(ut: UnsafeType, x: X, i: Int) {
1616
unsafe acceptP(x)
1717
_ = unsafe i // expected-warning{{no unsafe operations occur within 'unsafe' expression}}
1818
}
19+
20+
func superDuperUnsafe(_ bytes: UnsafeRawBufferPointer) {
21+
// expected-warning@+1{{no unsafe operations occur within 'unsafe' expression}}
22+
let byte = unsafe unsafe bytes.first ?? 0
23+
_ = byte
24+
_ = unsafe bytes.first ?? 0
25+
}

0 commit comments

Comments
 (0)