diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2016-03-08 06:12:54 +0000 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2016-03-08 06:12:54 +0000 |
commit | 5d6790c746d04636d284e47aea2c7cd68bbdf601 (patch) | |
tree | e52052e3e02a6665dee151decdc1c729a933e217 /llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp | |
parent | 443923b72d046d5adbce4e9fd6f20d5e25680389 (diff) | |
download | bcm5719-llvm-5d6790c746d04636d284e47aea2c7cd68bbdf601.tar.gz bcm5719-llvm-5d6790c746d04636d284e47aea2c7cd68bbdf601.zip |
Sema: Treat 'strict' availability flag like unavailable
This is a follow-up to r261512, which made the 'strict' availability
attribute flag behave like 'unavailable'. However, that fix was
insufficient. The following case would (erroneously) error when the
deployment target was older than 10.9:
struct __attribute__((availability(macosx,strict,introduced=10.9))) A;
__attribute__((availability(macosx,strict,introduced=10.9))) void f(A*);
The use of A* in the argument list for f is valid here, since f and A
have the same availability.
The fix is to return AR_Unavailable from DeclBase::getAvailability
instead of AR_NotYetIntroduced. This also reverts the special handling
added in r261163, instead relying on the well-tested logic for
AR_Unavailable.
rdar://problem/23791325
llvm-svn: 262915
Diffstat (limited to 'llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp')
0 files changed, 0 insertions, 0 deletions