llvm-project/clang/test/SemaObjCXX
Douglas Gregor acf4fd3039 Stop back-patching 'readonly' Objective-C properties with 'readwrite' ones.
A 'readonly' Objective-C property declared in the primary class can
effectively be shadowed by a 'readwrite' property declared within an
extension of that class, so long as the types and attributes of the
two property declarations are compatible.

Previously, this functionality was implemented by back-patching the
original 'readonly' property to make it 'readwrite', destroying source
information and causing some hideously redundant, incorrect
code. Simplify the implementation to express how this should actually
be modeled: as a separate property declaration in the extension that
shadows (via the name lookup rules) the declaration in the primary
class. While here, correct some broken Fix-Its, eliminate a pile of
redundant code, clean up the ARC migrator's handling of properties
declared in extensions, and fix debug info's naming of methods that
come from categories.

A wonderous side effect of doing this write is that it eliminates the
"AddedObjCPropertyInClassExtension" method from the AST mutation
listener, which in turn eliminates the last place where we rewrite
entire declarations in a chained PCH file or a module file. This
change (which fixes rdar://problem/18475765) will allow us to
eliminate the rewritten-decls logic from the serialization library,
and fixes a crash (rdar://problem/23247794) illustrated by the
test/PCH/chain-categories.m example.

llvm-svn: 251874
2015-11-03 01:15:46 +00:00
..
Inputs Fix inference of _Nullable for weak Objective-C properties. 2015-10-09 20:36:17 +00:00
NSString-type.mm
abstract-class-type-ivar.mm Remove referece type onproperty of abstract 2013-07-05 23:50:55 +00:00
arc-0x.mm One can override an Objective-C ARC ownership qualifier that came from 2013-01-17 23:59:28 +00:00
arc-bool-conversion.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
arc-bridged-cast.mm Recognize objc_bridge(id) on bridged casts to CF types. 2015-03-10 18:41:23 +00:00
arc-libstdcxx.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
arc-memfunc.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
arc-nsconsumed-errors.mm Don't produce duplicate notes if we have deduction failure notes when resolving 2013-08-14 00:00:44 +00:00
arc-objc-lifetime.mm objective-C++ test for my previous patch. 2012-09-12 21:27:26 +00:00
arc-overloading.mm
arc-ppe.mm Adding a -Wunused-value warning for expressions with side effects used in an unevaluated expression context, such as sizeof(), or decltype(). Also adds a similar warning when the expression passed to typeid() *is* evaluated, since it is equally likely that the user would expect the expression operand to be unevaluated in that case. 2014-12-17 21:57:17 +00:00
arc-system-header.mm Refine r251469 to give better (and more localizable) diagnostics 2015-10-28 05:03:19 +00:00
arc-templates.mm Objective-C ARC++: Prefer references to __strong/__weak over __unsafe_unretained. 2014-01-02 19:42:02 +00:00
arc-type-conversion.mm Some minor ARC diagnostic improvements. 2015-10-21 18:06:38 +00:00
arc-type-traits.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
arc-unavailable-for-weakref.mm
arc-unbridged-cast.mm objective-C arc: Diagnostic can not say to use bridge 2013-02-22 01:22:48 +00:00
argument-dependent-lookup.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
blocks.mm
boxing-illegal-types.mm Allow objc @() syntax for enum types. 2012-05-15 19:17:44 +00:00
capturing-flexible-array-in-block.mm put back diagnostics when flexible members are captured 2013-01-09 00:09:15 +00:00
category-lookup.mm When disambiguating an expression-statement from a declaraton-statement, if the 2012-08-23 20:19:14 +00:00
composite-objc-pointertype.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
conditional-expr.mm
const-cast.mm
contextual-convert-to-id.mm Allow Objective-C pointer conversions following an explicit user conversion. 2013-12-18 21:46:16 +00:00
conversion-ranking.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
conversion-to-objc-pointer-2.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
conversion-to-objc-pointer.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
crash.mm Fix new check for missing semicolon after struct definition to deal with the 2013-11-20 23:40:57 +00:00
cstyle-block-pointer-cast.mm
cstyle-cast.mm
cxx1y-lambda.mm Perform Objective-C lifetime adjustments before comparing deduced lambda result types. 2015-10-01 20:20:47 +00:00
cxxoperator-selector.mm
debugger-cast-result-to-id.mm Improve LLDB's implicit cast-to-id to work with C++11 auto and any Objective-C object type <rdar://problem/13338107>. 2013-03-07 22:57:58 +00:00
debugger-support.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
decltype.mm Add a simple test involving decltype on Objective-C properties and ivars 2012-10-24 14:13:21 +00:00
deduction.mm
delay-parsing-cfunctions.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
delay-parsing-cplusfuncs.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
delay-parsing-func-tryblock.mm Add a new frontend warning for referencing members from the handler of a constructor or destructor function-try-block, which is UB in C++. 2015-09-01 14:49:24 +00:00
exceptions-fragile.mm Replace "can not" with "cannot" in diagnostics messages. 2014-03-07 22:36:23 +00:00
exceptions.mm [Sema] Be consistent about diagnostic wording: always use "cannot". 2015-08-15 15:23:14 +00:00
expr-objcxx.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
foreach-block.mm
foreach.mm <rdar://problem/13540921> Fix a crasher when an Objective-C for-in loop gets a non-variable iteration declaration. 2013-04-08 20:52:24 +00:00
format-strings.mm -Wformat: Don't check format strings in uninstantiated templates. 2012-10-02 01:49:54 +00:00
fragile-abi-object-assign.m Restructure how the driver communicates information about the 2012-06-20 06:18:46 +00:00
function-pointer-void-star.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
gc-attributes.mm
goto.mm
instancetype.mm improve of note message and minor refactoring of my last 2013-05-15 15:27:35 +00:00
instantiate-expr.mm Objective-C: Issue more precise warning when user 2013-03-27 21:19:25 +00:00
instantiate-message.mm
instantiate-method-return.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
instantiate-property-access.mm Fix assertion hit or bogus compiler error in cases when instantiating ObjC property accesses used with overloaded binary operators. 2014-06-19 14:45:16 +00:00
instantiate-stmt.mm objective-c: improve diagnostic when collection expression is 2012-06-22 15:37:00 +00:00
ivar-construct.mm Fix some confusing diagnostic wording. s/implicit default/implicit/ if we're 2013-06-13 03:34:55 +00:00
ivar-lookup.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
ivar-reference-type.mm
ivar-struct.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
linkage-spec.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
lit.local.cfg Disallow driver use in more Sema tests 2014-04-19 19:07:31 +00:00
literals.mm
message.mm Restructure how the driver communicates information about the 2012-06-20 06:18:46 +00:00
microsoft-abi-byval.mm Remove the -cxx-abi command-line flag. 2014-01-14 19:35:09 +00:00
missing-lhs-gun-extension.mm Objective-C++ (and c++) Sema: Patch fixes a sema crash when gnu’s ?: extension 2013-05-17 16:29:36 +00:00
namespace-lookup.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
null_objc_pointer.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
nullability-consistency.mm Replace __double_underscored type nullability qualifiers with _Uppercase_underscored 2015-06-24 22:02:08 +00:00
nullability-pragmas.mm Substitute type arguments into uses of Objective-C interface members. 2015-07-07 03:57:53 +00:00
nullptr.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
objc-boxed-expressions-nsvalue.mm Cleanup ObjCInterfaceDecl lookup for ObjC literals 2015-07-24 05:09:40 +00:00
objc-container-subscripting.mm Capitalize "Objective-C" and "C++" in user-facing contexts. 2012-07-19 18:10:18 +00:00
objc-decls-inside-namespace.mm
objc-extern-c.mm
objc-pointer-conv.mm
objc2-merge-gc-attribue-decl.mm [Sema] Emit a better diagnostic when variable redeclarations disagree 2015-07-14 20:08:49 +00:00
objcbridge-attribute-arc.mm [Objective-C Sema] Fixes a typo which did not allow 2015-04-10 22:07:47 +00:00
objcbridge-attribute.mm [Objective-C Sema] Fixes a typo which did not allow 2015-04-10 22:07:47 +00:00
objcbridge-related-attribute.mm ObjectiveC. Further improvements of use 2013-12-16 22:54:37 +00:00
objcbridge-static-cast.mm [Objective-C Sema] Fixes a typo which did not allow 2015-04-10 22:07:47 +00:00
old-style-cast.mm Test to ensure no old-style-cast warning is emitted for objc-arc __bridge casts 2013-12-03 05:31:51 +00:00
overload-gc.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
overload.mm Introduce a new mangling for protocol-qualified ObjC types in C++. This allows 2013-06-18 22:41:37 +00:00
parameterized_classes.mm Handle Objective-C type arguments. 2015-07-07 03:57:35 +00:00
parameterized_classes_arc.mm Forbid qualifiers on ObjC generic parameters and arguments, but 2015-09-23 22:14:21 +00:00
parameterized_classes_subst.mm Implement variance for Objective-C type parameters. 2015-07-07 03:58:54 +00:00
parameters.mm Fold together the two implementations of 6.7.3p2 in SemaType. Fix two bugs, each of which was only present in one version: 2013-03-28 00:03:10 +00:00
pointer-to-objc-pointer-conv.mm clang/test: Suppress two tests on LLP64 target, Windows x64. 2012-11-19 10:00:59 +00:00
propert-dot-error.mm Update error message text. 2015-01-18 19:05:48 +00:00
properties.mm ObjectiveC++: support for passing C++11 style initialized temporaries to 2013-10-16 17:51:43 +00:00
property-invalid-type.mm Stop back-patching 'readonly' Objective-C properties with 'readwrite' ones. 2015-11-03 01:15:46 +00:00
property-reference.mm When checking for illegal expressions in a default-argument 2013-04-09 01:56:28 +00:00
property-synthesis-error.mm Replace -fobjc-default-synthesize-properties with disable-objc-default-synthesize-properties. 2013-09-27 20:21:48 +00:00
property-type-mismatch.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
protocol-lookup.mm Improvements to vexing-parse warnings. Make the no-parameters case more 2012-07-30 21:30:52 +00:00
references.mm Grab-bag of bit-field fixes: 2013-05-06 21:39:12 +00:00
reinterpret-cast-objc-pointertype.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
related-result-type-inference.mm
reserved-keyword-methods.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
sel-address.mm Don't crash when passing &@selector to a _Nonnull parameter. Fixes PR24774. 2015-09-15 23:17:17 +00:00
standard-conversion-to-bool.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
static-cast.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
synchronized.mm Allow @synchronized to contextually convert a C++ object to an ObjC object pointer. 2014-08-12 16:20:36 +00:00
unknown-anytype.mm Accept and pass arguments to __unknown_anytype in argument 2012-11-14 00:49:39 +00:00
vararg-non-pod.mm
vla.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
void_to_obj.mm
warn-missing-super.mm objective-C: Improving diagnostocs for missing call to 2012-09-10 16:51:09 +00:00
warn-objc-literal-conversion.mm A new conversion warning for when an Objective-C object literal is implicitly 2014-01-28 23:40:26 +00:00
warn-strict-selector-match.mm