hanchenye-llvm-project/clang/test/Lexer
Akira Hatanaka 7275da0f2e [ObjC] Allow declaring __strong pointer fields in structs in Objective-C
ARC mode.

Declaring __strong pointer fields in structs was not allowed in
Objective-C ARC until now because that would make the struct non-trivial
to default-initialize, copy/move, and destroy, which is not something C
was designed to do. This patch lifts that restriction.

Special functions for non-trivial C structs are synthesized that are
needed to default-initialize, copy/move, and destroy the structs and
manage the ownership of the objects the __strong pointer fields point
to. Non-trivial structs passed to functions are destructed in the callee
function.

rdar://problem/33599681

Differential Revision: https://reviews.llvm.org/D41228

llvm-svn: 326307
2018-02-28 07:15:55 +00:00
..
Inputs Use the name of the file on disk to issue a new diagnostic about non-portable #include and #import paths. 2016-06-13 20:40:21 +00:00
11-27-2007-FloatLiterals.c
asm-preproc-no-unicode.s Skip Unicode character expansion in assembly files 2017-04-07 10:13:00 +00:00
badstring_in_if0.c
bcpl-escaped-newline.c
block_cmt_end.c
builtin_redef.c
c90.c
case-insensitive-include-ms.c [clang] Get rid of "%T" expansions 2017-08-15 19:47:06 +00:00
case-insensitive-include-pr31836.sh [clang] Get rid of "%T" expansions 2017-08-15 19:47:06 +00:00
case-insensitive-include.c [clang] Get rid of "%T" expansions 2017-08-15 19:47:06 +00:00
case-insensitive-system-include.c [clang] Get rid of "%T" expansions 2017-08-15 19:47:06 +00:00
char-escapes.c
char-literal-encoding-error.c
char-literal.cpp
comment-escape.c
conflict-marker.c
constants.c
coroutines.cpp [coroutines] Rename driver flag -fcoroutines to -fcoroutines-ts 2016-10-02 03:31:58 +00:00
counter.c
cross-windows-on-linux-default.cpp
cross-windows-on-linux.cpp
cxx-features.cpp Switch to gnu++14 as the default dialect. 2017-12-09 12:09:54 +00:00
cxx0x_keyword_as_cxx98.cpp
cxx0x_raw_string_delim_length.cpp
cxx0x_raw_string_directives.cpp
cxx0x_raw_string_unterminated.cpp
cxx1y_binary_literal.cpp
cxx1y_digit_separators.cpp [Lex] Fix handling numerical literals ending with ' and signed exponent. 2018-02-06 22:39:25 +00:00
cxx1z-trigraphs.cpp Do not warn about whitespace between ??/ trigraph and newline in line comments if trigraphs are disabled in the current language. 2017-04-18 21:45:04 +00:00
cxx2a-spaceship.cpp [c++2a] P0515R3: Support for overloaded operator<=>. 2017-12-01 02:13:10 +00:00
cxx2a_keyword_as_cxx17.cpp Add missing test for warning added in r310803. 2017-08-16 00:06:07 +00:00
digraph.c
dollar-idents.c
eof-char.c
eof-conflict-marker.c [Lexer] Don't read out of bounds if a conflict marker is at the end of a file 2016-04-01 09:58:45 +00:00
eof-file.c
eof-include.c
eof-number.c
eof-string.c
escape_newline.c
gnu-flags.c
half-literal.cpp Switch to gnu++14 as the default dialect. 2017-12-09 12:09:54 +00:00
has_attribute_objc_boxable.m
has_extension.c
has_extension_cxx.cpp
has_feature_address_sanitizer.cpp Hardware-assisted AddressSanitizer (clang part). 2017-12-09 01:32:07 +00:00
has_feature_boxed_nsvalue_expressions.m
has_feature_c1x.c
has_feature_cxx0x.cpp P0426: Make the library implementation of constexpr char_traits a little easier 2017-01-20 00:45:35 +00:00
has_feature_efficiency_sanitizer.cpp [esan|wset] Add working set tool driver flags 2016-05-25 00:41:24 +00:00
has_feature_exceptions.cpp
has_feature_memory_sanitizer.cpp
has_feature_modules.m
has_feature_objc_arc.m [ObjC] Allow declaring __strong pointer fields in structs in Objective-C 2018-02-28 07:15:55 +00:00
has_feature_rtti.cpp
has_feature_thread_sanitizer.cpp
has_feature_type_traits.cpp Revert "[Lex] Support more type-traits in __has_feature" 2016-05-24 17:21:42 +00:00
header.cpp
hexfloat.cpp Replace remaining user-visible mentions of C++1z with C++17. 2017-08-13 22:26:53 +00:00
keywords_test.c
keywords_test.cpp [c++2a] Treat 'concept' and 'requires' as keywords, add compat warning for C++17 and before. 2017-08-13 21:32:33 +00:00
long-long.cpp
modules-ts.cpp Add -fmodules-ts flag to cc1 for the provisional C++ modules TS, and mark 2016-07-23 02:32:21 +00:00
ms-compatibility.c
ms-extensions.c
ms-extensions.cpp
msdos-cpm-eof.c
multiple-include.c
newline-eof-c++98-compat.cpp
newline-eof.c
newline-nul.c Fix mishandling of escaped newlines followed by newlines or nuls. 2017-04-17 23:44:51 +00:00
null-character-in-literal.c [Lex] Avoid out-of-bounds dereference in LexAngledStringLiteral. 2018-01-12 18:54:35 +00:00
numeric-literal-trash.c
objc_macros.m
opencl-half-literal.cl [OpenCL] Add supported OpenCL extensions to target info. 2016-05-16 17:06:34 +00:00
pragma-mark.c
pragma-message.c
pragma-message2.c
pragma-operators.cpp
pragma-region.c
preamble.c Allow for unfinished #if blocks in preambles 2017-05-30 11:54:55 +00:00
preamble2.c Allow for unfinished #if blocks in preambles 2017-05-30 11:54:55 +00:00
rdar-8914293.c
rdr-6096838-2.c
rdr-6096838.c
string-literal-encoding.c
string-literal-errors.cpp
string_concat.cpp
token-concat.c
token-concat.cpp
unicode-strings.c
unicode.c Warn if we find a Unicode homoglyph for a symbol in an identifier. 2017-12-14 13:15:08 +00:00
unknown-char.c
utf-16.c
utf-16.c.txt
utf8-char-literal.cpp
utf8-invalid.c
warn-date-time.c
warn_binary_literals.cpp
wchar-signedness.c
wchar.c Driver: hoist the `wchar_t` handling to the driver 2017-10-06 23:09:55 +00:00