hanchenye-llvm-project/clang/test/Misc
John McCall 2c91c3b7af Add the `objc_class_stub` attribute.
Swift requires certain classes to be not just initialized lazily on first
use, but actually allocated lazily using information that is only available
at runtime.  This is incompatible with ObjC class initialization, or at least
not efficiently compatible, because there is no meaningful class symbol
that can be put in a class-ref variable at load time.  This leaves ObjC
code unable to access such classes, which is undesirable.

objc_class_stub says that class references should be resolved by calling
a new ObjC runtime function with a pointer to a new "class stub" structure.
Non-ObjC compilers (like Swift) can simply emit this structure when ObjC
interop is required for a class that cannot be statically allocated,
then apply this attribute to the `@interface` in the generated ObjC header
for the class.

This attribute can be thought of as a generalization of the existing
`objc_runtime_visible` attribute which permits more efficient class
resolution as well as supporting the additon of categories to the class.
Subclassing these classes from ObjC is currently not allowed.

Patch by Slava Pestov!

llvm-svn: 362054
2019-05-30 04:09:01 +00:00
..
Inputs Move AST tests into their own test directory; NFC. 2018-11-30 18:43:02 +00:00
amdgcn.languageOptsOpenCL.cl
attr-source-range.cpp
backend-optimization-failure-nodbg.cpp [Unroll/UnrollAndJam/Vectorizer/Distribute] Add followup loop attributes. 2018-12-12 17:32:52 +00:00
backend-optimization-failure.cpp [Unroll/UnrollAndJam/Vectorizer/Distribute] Add followup loop attributes. 2018-12-12 17:32:52 +00:00
backend-resource-limit-diagnostics.cl Revert "Mark test as unsupported until r315808 is fixed" 2017-10-14 22:24:31 +00:00
backend-stack-frame-diagnostics-fallback.cpp Ensure there is stack usage in stack size warning test 2019-05-03 19:04:14 +00:00
backend-stack-frame-diagnostics.cpp Recommit r335063: [Darwin] Add a warning for missing include path for libstdc++ 2018-06-19 22:47:53 +00:00
caret-diags-macros.c
caret-diags-multiline.cpp PR33902: Invalidate line number cache when adding more text to existing buffer. 2017-07-30 06:31:29 +00:00
caret-diags-scratch-buffer.c
cc1as-asm-debug.s [DWARF] Make -g with empty assembler source work better. 2019-03-01 20:58:04 +00:00
cc1as-asm.s
cc1as-compress.s
cc1as-split-dwarf.s Reland r332885, "CodeGen, Driver: Start using direct split dwarf emission in clang." 2018-05-22 18:52:37 +00:00
dev-fd-fs.c Restrict a test using named file descriptors to using the system shell 2018-04-03 18:22:14 +00:00
diag-aka-types.cpp
diag-format.c Remove extraneous space in MSVC-style diagnostic output 2019-02-19 16:58:25 +00:00
diag-greatergreater.cpp PR37189 Fix incorrect end source location and spelling for a split '>>' token. 2018-04-30 05:25:48 +00:00
diag-line-wrapping.cpp
diag-macro-backtrace.c
diag-macro-backtrace2.c DR1687: When overload resolution selects a built-in operator, implicit 2018-06-27 20:30:34 +00:00
diag-mapping.c
diag-mapping2.c
diag-null-bytes-in-line.cpp
diag-presumed.c
diag-special-chars.c
diag-template-diffing-color.cpp
diag-template-diffing-cxx98.cpp
diag-template-diffing.cpp [c++20] Implement P0846R0: allow (ADL-only) calls to template-ids whose 2019-05-09 03:31:27 +00:00
diag-trailing-null-bytes.cpp
diag-verify.cpp
diagnostic-crash.cpp
driver-verify.c
emit-html-insert.c
emit-html.c
error-limit-multiple-notes.cpp
error-limit.c
find-diagnostic-id.c [diagtool] Add ability to pass in the id and return the name for a 2017-08-03 16:13:13 +00:00
freebsd-arm-size_t.c
include-stack-for-note-flag.cpp
integer-literal-printing.cpp
interpreter.c
languageOptsOpenCL.cl
macro-backtrace.c
message-length.c
no-warn-in-system-macro.c Fix isInSystemMacro in presence of macro and pasted token 2019-05-16 12:40:00 +00:00
no-warn-in-system-macro.c.inc Fix isInSystemMacro to handle pasted macros 2019-02-01 06:11:44 +00:00
nvptx.languageOptsOpenCL.cl
permissions.cpp
pr32207.c
pragma-attribute-cxx.cpp Extend -ast-dump for CXXRecordDecl to dump the flags from the DefinitionData. 2017-09-22 00:11:15 +00:00
pragma-attribute-objc.m
pragma-attribute-strict-subjects.c
pragma-attribute-supported-attributes-list.test Add the `objc_class_stub` attribute. 2019-05-30 04:09:01 +00:00
predefines.c
r600.languageOptsOpenCL.cl
reduced-diags-macros-backtrace.cpp
reduced-diags-macros.cpp
remap-file.c
serialized-diags-bcanalyzer.c Add tests for llvm-bcanalyzer stream types 2018-04-22 00:04:35 +00:00
serialized-diags-driver.c
serialized-diags-frontend.c
serialized-diags-no-category.c
serialized-diags-no-issue.c
serialized-diags-really-long-text.cpp
serialized-diags-single-issue.c
serialized-diags-stable.c
serialized-diags.c
serialized-diags.h
serialized-diags.m
show-diag-options.c
tabstop.c
target-invalid-cpu-note.c [X86] AMD znver2 enablement 2019-02-26 17:15:36 +00:00
target-parser.c
unnecessary-elipses.cpp
unprintable.c
verify.c
warn-in-system-header.c
warn-in-system-header.h
warn-in-system-macro-def.c Fix some tests I broke in r354190 2019-02-16 01:51:19 +00:00
warn-in-system-macro-def.c.inc Fix isInSystemMacro to handle pasted macros 2019-02-01 06:11:44 +00:00
warn-sysheader.cpp
warning-flags-enabled.c
warning-flags-tree.c [diagtool] Change default tree behavior to print only flags 2017-09-05 18:04:40 +00:00
warning-flags.c [OpenCL] Allow variadic macros as Clang feature. 2019-03-26 11:22:37 +00:00
win32-macho.c
working-directory.c
wrong-encoding.c
wrong-encoding2.c