Skip to content

Commit 889e109

Browse files
committed
Test casts which preserve qualifiers work as expected
1 parent 92e7ad7 commit 889e109

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

clang/test/SemaObjCXX/arc-type-conversion.mm

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,16 @@ void test_reinterpret_cast(__strong id *sip, __weak id *wip,
8181
auto *wp = reinterpret_cast<__weak NSString *>(sip);
8282
(void)reinterpret_cast<__strong id *>(wp);
8383
(void)reinterpret_cast<unsigned long *>(csip); // expected-error {{reinterpret_cast from '__strong id const *' to 'unsigned long *' casts away qualifiers}}
84+
(void)reinterpret_cast<const unsigned long *>(csip);
8485
const unsigned long *cul = nullptr;
8586
(void)reinterpret_cast<__strong id *>(cul); // expected-error {{reinterpret_cast from 'const unsigned long *' to '__strong id *' casts away qualifiers}}
87+
(void)reinterpret_cast<const __strong id *>(cul);
8688
volatile __strong id *vsip = nullptr;
8789
(void)reinterpret_cast<unsigned long *>(vsip); // expected-error {{reinterpret_cast from '__strong id volatile *' to 'unsigned long *' casts away qualifiers}}
90+
(void)reinterpret_cast<volatile unsigned long *>(vsip);
8891
volatile unsigned long *vul = nullptr;
8992
(void)reinterpret_cast<__strong id *>(vul); // expected-error {{reinterpret_cast from 'volatile unsigned long *' to '__strong id *' casts away qualifiers}}
93+
(void)reinterpret_cast<volatile __strong id *>(vul);
9094
auto uip = reinterpret_cast<uintptr_t>(sip);
9195
(void)reinterpret_cast<__strong id *>(uip); // expected-error {{to '__strong id *' is disallowed with ARC}}
9296
}

0 commit comments

Comments
 (0)