diff options
author | Alex Lorenz <arphaman@gmail.com> | 2016-10-28 10:25:10 +0000 |
---|---|---|
committer | Alex Lorenz <arphaman@gmail.com> | 2016-10-28 10:25:10 +0000 |
commit | a8c44ba2c01e395ce478ae961ac9f8de1c37c149 (patch) | |
tree | 293ab8805019b760ec4b104f1aba243347e90ef3 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 3315a6a662d20edef65355eb69102fd5baad5e78 (diff) | |
download | bcm5719-llvm-a8c44ba2c01e395ce478ae961ac9f8de1c37c149.tar.gz bcm5719-llvm-a8c44ba2c01e395ce478ae961ac9f8de1c37c149.zip |
[Objective-C] Add objc_subclassing_restricted attribute
This patch adds an objc_subclassing_restricted attribute into clang. This
attribute acts similarly to 'final' - Objective-C classes with this attribute
can't be subclassed. However, @interface declarations that have
objc_subclassing_restricted but don't have @implementation are allowed to
inherit other @interface declarations with objc_subclassing_restricted. This is
needed to describe the Swift class hierarchy in clang while making sure that
the Objective-C classes cannot subclass the Swift classes.
This attribute is already implemented in a fork of clang that's used for Swift
(https://github.com/apple/swift-clang) and this patch moves that code to the
upstream clang repository.
rdar://28937548
Differential Revision: https://reviews.llvm.org/D25993
llvm-svn: 285391
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions