hanchenye-llvm-project/clang/test/SemaObjC
Steven Wu 49d7c2f597 [Sema][ObjC] Do not DiagnoseUseOfDecl in LookupMemberExpr
Summary:
Remove the call to DiagnoseUseOfDecl in LookupMemberExpr because:
1. LookupMemberExpr eagerly lookup both getter and setter, reguardless
if they are used or not. It causes wrong diagnostics if you are only
using getter.
2. LookupMemberExpr only diagnoses getter, but not setter.
3. ObjCPropertyOpBuilder already DiagnoseUseOfDecl when building getter
and setter. Doing it again in LookupMemberExpr causes duplicated
diagnostics.

rdar://problem/38479756

Reviewers: erik.pilkington, arphaman, doug.gregor

Reviewed By: arphaman

Subscribers: cfe-commits

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

llvm-svn: 333148
2018-05-24 01:01:43 +00:00
..
Inputs PR35815: Separate out the ns-consumed diagnostic into an error and 2018-01-03 23:52:42 +00:00
ClassPropertyNotObject.m
ContClassPropertyLookup.m
DoubleMethod.m
NSString-type.m
access-property-getter.m
alias-test-1.m
alias-test-2.m
arc-bridged-cast.m
arc-cf.m
arc-decls.m [ObjC] Allow declaring __strong pointer fields in structs in Objective-C 2018-02-28 07:15:55 +00:00
arc-dict-bridged-cast.m
arc-invalid.m
arc-jump-block.m
arc-no-runtime.m
arc-non-pod-memaccess.m
arc-nsconsumed-errors.m [Sema][ObjC] Warn about mismatches in attributes between overriding and 2017-09-20 05:39:18 +00:00
arc-objc-lifetime-conflict.m
arc-objc-lifetime.m
arc-objcbridge-related-attribute.m
arc-peformselector.m Fix typos in clang 2018-04-06 15:14:32 +00:00
arc-property-decl-attrs.m [ObjC] The absence of ownership qualifiers on an ambiguous property leads 2018-05-02 22:40:19 +00:00
arc-property-lifetime.m Determine the attribute subject for diagnostics based on declarative information in DeclNodes.td. This greatly reduces the number of enumerated values used for more complex diagnostics; these are now only required when the "attribute only applies to" diagnostic needs to be generated manually as part of semantic processing. 2017-11-26 20:01:12 +00:00
arc-property.m
arc-readonly-property-ivar-1.m
arc-readonly-property-ivar.m
arc-repeated-weak.mm [Objective-C] Fix "repeated use of weak" warning with -fobjc-weak 2017-03-29 17:55:11 +00:00
arc-setter-property-match.m
arc-system-header.m [ObjC] Allow declaring __strong pointer fields in structs in Objective-C 2018-02-28 07:15:55 +00:00
arc-type-conversion.m
arc-unavailable-for-weakref.m [Objective-C] Fix "weak-unavailable" warning with -fobjc-weak 2017-03-29 18:09:02 +00:00
arc-unavailable-system-function.m
arc-unbridged-cast.m
arc-unsafe-assigns.m
arc-unsafe_unretained.m
arc.m Remove the fixit for the diagnostics regarding capturing autoreleasing variables in a block 2018-05-14 20:29:16 +00:00
argument-checking.m
assign-rvalue-message.m DR616, and part of P0135R1: member access (or pointer-to-member access) on a 2016-12-03 01:14:32 +00:00
at-defs.m
atomoic-property-synnthesis-rules.m
attr-availability-1.m Use dotted format of version tuple for availability diagnostics 2018-05-17 11:51:49 +00:00
attr-availability.m [Sema] Improve some -Wunguarded-availability diagnostics 2017-08-14 19:49:12 +00:00
attr-cf_returns.m
attr-cleanup.m
attr-deprecated-pch.m
attr-deprecated-replacement-fixit.m [Sema] Make deprecation fix-it replace all multi-parameter ObjC method slots. 2018-03-29 17:34:09 +00:00
attr-deprecated.m [Sema][ObjC] Don't emit availability diags for category @implementations 2017-05-31 15:45:57 +00:00
attr-designated-init.m
attr-malloc.m
attr-nodebug.m
attr-ns_returns_retained.m Use ARC parsing rules for ns_returns_retained in MRC so that code can 2017-07-15 11:06:46 +00:00
attr-objc-exception.m
attr-objc-gc.m
attr-objc-runtime-visible.m
attr-print.m
attr-root-class.m
autoreleasepool.m
avoid-unavailable-implementation-warning-in-app-extension.m [ObjC] Supress the 'implementing unavailable method' warning when 2018-05-03 01:12:06 +00:00
bad-property-synthesis-crash.m
bad-receiver-1.m
block-as-object.m
block-attr.m
block-compare.mm Allow equality comparisons between block pointers and 2018-04-07 17:42:06 +00:00
block-explicit-return-type.m
block-id-as-block-argtype.m
block-ivar.m
block-literal-with-attribute.m Remove redundant copy-pasted comment in test file from r317736 2017-11-08 22:47:15 +00:00
block-omitted-return-type.m [ObjC] The declarator for a block literal should be a definition 2017-01-06 11:31:12 +00:00
block-on-method-param.m
block-return.m
block-type-safety.m
blocks.m
bool-type.m
boxing-illegal.m
builtin_objc_assign_ivar.m
builtin_objc_lib_functions.m
builtin_objc_msgSend.m
builtin_objc_nslog.m
call-super-2.m [SemaObjC] Do not RebuildObjCMessageExpr without valid method decl 2016-08-22 21:50:22 +00:00
catch-invalid.m Sema: diagnose invalid catch parameter in ObjC 2018-05-20 19:26:44 +00:00
catch-stmt.m
category-1.m
category-attribute.m Support attributes for Objective-C categories 2017-03-23 11:44:25 +00:00
category-method-lookup-2.m
category-method-lookup.m
check-dup-decl-methods-1.m
check-dup-objc-decls-1.m Add -Wduplicate-protocol for existing diagnostic 2016-11-10 18:30:26 +00:00
check-objcbridge-related-attribute-lookup.m
circular-container.m
class-bitfield.m
class-conforming-protocol-1.m
class-conforming-protocol-2.m
class-def-test-1.m
class-extension-after-implementation.m
class-extension-dup-methods.m
class-getter-using-dotsyntax.m
class-impl-1.m
class-message-protocol-lookup.m [ObjC][Sema] Avoid warning about a call to an instance method on an 2017-03-15 17:16:41 +00:00
class-method-lookup.m
class-method-self.m
class-property-access.m
class-proto-1.m
class-protocol-method-match.m
class-protocol.m
class-unavail-warning.m Remove the temporary availability checking workaround for 2018-04-05 18:12:06 +00:00
cocoa-api-usage.m
cocoa-api-usage.m.fixed
compare-qualified-class.m Fix typos in clang 2018-04-06 15:14:32 +00:00
compare-qualified-id.m
compatible-protocol-qualified-types.m
compound-init.m
comptypes-1.m
comptypes-2.m
comptypes-3.m
comptypes-4.m
comptypes-5.m
comptypes-6.m
comptypes-7.m
comptypes-8.m
comptypes-9.m
comptypes-10.m
comptypes-a.m
comptypes-legal.m Fix some handling of AST nodes with diagnostics. 2018-03-28 04:16:13 +00:00
conditional-expr-2.m
conditional-expr-3.m
conditional-expr-4.m
conditional-expr-5.m
conditional-expr-6.m
conditional-expr-7.m
conditional-expr-8.m
conditional-expr.m
conflict-atomic-property.m
conflict-nonfragile-abi2.m
conflicting-ivar-test-1.m
continuation-class-err.m
continuation-class-property.m
conversion.m
crash-label.m
crash-on-objc-bool-literal.m
crash-on-type-args-protocols.m [SemaObjC] Be more strict while parsing type arguments and protocols 2016-09-13 20:04:35 +00:00
custom-atomic-property.m
dealloc.m
debugger-cast-result-to-id.m
debugger-support.m
default-synthesize-1.m [Sema] Silence -Wobjc-missing-property-synthesis for unavailable properties 2017-08-15 12:40:01 +00:00
default-synthesize-2.m
default-synthesize-3.m Add a fixit for -Wobjc-protocol-property-synthesis 2017-07-03 10:12:24 +00:00
default-synthesize.m Add a fixit for -Wobjc-protocol-property-synthesis 2017-07-03 10:12:24 +00:00
delay-parsing-cfunctions.m
deprecate_function_containers.m
deprecated-objc-introspection.m
deref-interface.m
diagnose_if.m Change __has_feature(objc_diagnose_if_attr) to __has_feature(attribute_diagnose_if_objc) for consistency with rest of attribute checks. 2017-05-24 01:38:00 +00:00
direct-synthesized-ivar-access.m
dist-object-modifiers.m
dllexport.m Determine the attribute subject for diagnostics based on declarative information in DeclNodes.td. This greatly reduces the number of enumerated values used for more complex diagnostics; these are now only required when the "attribute only applies to" diagnostic needs to be generated manually as part of semantic processing. 2017-11-26 20:01:12 +00:00
dllimport.m Determine the attribute subject for diagnostics based on declarative information in DeclNodes.td. This greatly reduces the number of enumerated values used for more complex diagnostics; these are now only required when the "attribute only applies to" diagnostic needs to be generated manually as part of semantic processing. 2017-11-26 20:01:12 +00:00
duplicate-ivar-check.m
duplicate-ivar-in-class-extension.m
duplicate-property-class-extension.m
duplicate-property.m
encode-typeof-test.m
enhanced-proto-2.m
enum-fixed-type.m
err-ivar-access-in-class-method.m
error-implicit-property.m
error-missing-getter.m
error-outof-scope-property-use.m
error-property-gc-attr.m
exprs.m
flexible-array-arc.m [Sema] Add support for flexible array members in Obj-C. 2017-10-23 22:01:41 +00:00
flexible-array.m [Sema] Add support for flexible array members in Obj-C. 2017-10-23 22:01:41 +00:00
foreach.m [Sema][ObjC] Disallow jumping into ObjC fast enumeration loops. 2017-04-19 17:54:08 +00:00
foreachtemplatized.mm [ast] Do not auto-initialize Objective-C for-loop variables in Objective-C++ in templatized code under ARC 2018-03-29 00:56:24 +00:00
format-arg-attribute.m Determine the attribute subject for diagnostics based on declarative information in DeclNodes.td. This greatly reduces the number of enumerated values used for more complex diagnostics; these are now only required when the "attribute only applies to" diagnostic needs to be generated manually as part of semantic processing. 2017-11-26 20:01:12 +00:00
format-cstrings-warning.m
format-ostrace-warning.m
format-strings-objc.m Fix printf specifier handling: invalid specifier should not be marked as "consuming data arguments" 2016-12-15 18:54:00 +00:00
format-strings-oslog.m Fix diagnostic format string for err_os_log_argument_to_big 2016-10-25 12:39:28 +00:00
format-strings-system.h
format-strings-utf8.m
forward-class-1.m
forward-class-receiver.m
forward-class-redeclare.m
forward-protocol-incomplete-impl-warn.m Add a fixit for -Wobjc-protocol-property-synthesis 2017-07-03 10:12:24 +00:00
gc-attributes.m
gcc-cast-ext.m
generic-selection.m
getter-setter-defined-in-category-of-parent.m
ibaction.m
iboutlet.m
iboutletcollection-attr.m
id.m
id_builtin.m
idiomatic-parentheses.m
ignore-qualifier-on-qualified-id.m
ignore-weakimport-method.m
illegal-nonarc-bridged-cast.m [Sema][ObjC] Fix spurious -Wcast-qual warnings. 2017-08-11 00:06:49 +00:00
incompatible-protocol-qualified-types.m
incomplete-implementation.m
inst-method-lookup-in-root.m
instancetype.m
integer-overflow.m [Sema] Emit -Winteger-overflow for arguments in function calls, ObjC messages. 2018-03-27 21:29:05 +00:00
interface-1.m
interface-layout-2.m
interface-layout.m
interface-scope-2.m
interface-scope.m
interface-tu-variable.m
invalid-code.m
invalid-objc-decls-1.m
invalid-receiver.m
invalid-typename.m
ivar-access-package.m
ivar-access-tests.m
ivar-in-class-extension-error.m
ivar-in-class-extension.m
ivar-in-implementations.m
ivar-lookup-resolution-builtin.m
ivar-lookup.m
ivar-ref-misuse.m
ivar-sem-check-1.m [Sema] Add support for flexible array members in Obj-C. 2017-10-23 22:01:41 +00:00
ivar-sem-check-2.m
kindof.m ObjectiveC Generics: Start using ObjCTypeParamType. 2016-09-13 17:41:05 +00:00
legacy-implementation-1.m
message.m
method-arg-qualifier-warning.m
method-attributes.m
method-bad-param.m Fix errored return value in CheckFunctionReturnType and add a fixit hint 2017-05-10 20:03:16 +00:00
method-conflict-1.m
method-conflict-2.m
method-conflict.m
method-def-1.m
method-def-2.m
method-encoding-2.m
method-in-class-extension-impl.m
method-lookup-2.m
method-lookup-3.m
method-lookup-4.m
method-lookup-5.m
method-lookup.m
method-no-context.m
method-not-defined.m
method-prototype-scope.m
method-redecls-invalid-interface.m [ObjC] Prevent infinite loops when iterating over redeclaration 2016-11-21 11:16:30 +00:00
method-sentinel-attr.m
method-typecheck-1.m
method-typecheck-2.m
method-typecheck-3.m
method-undef-category-warn-1.m
method-undef-extension-warn-1.m
method-undefined-warn-1.m
method-unused-attribute.m
method-warn-unused-attribute.m
mismatched-undefined-method.m
missing-atend-metadata.m
missing-method-context.m
missing-method-return-type.m
mrc-no-weak.m
mrc-weak.m
multiple-method-names.m
multiple-property-deprecated-decl.m
narrow-property-type-in-cont-class.m
nested-typedef-decl.m
newproperty-class-method-1.m
no-gc-weak-test.m
no-ivar-access-control.m
no-ivar-in-interface-block.m
no-objc-exceptions.m
no-protocol-option-tests.m
no-warn-qual-mismatch.m
no-warn-synth-protocol-meth.m
no-warn-unimpl-method.m
no-warning-unavail-unimp.m
nonnull.h
nonnull.m
nowarn-superclass-method-mismatch.m
ns-consumed-error-not-warning.m PR35815: Separate out the ns-consumed diagnostic into an error and 2018-01-03 23:52:42 +00:00
ns_returns_retained_block_return.m
nsobject-attribute-1.m
nsobject-attribute.m Objective-C diagnostics: isObjCNSObjectType should check through AttributedType. 2016-08-15 21:05:00 +00:00
nullability-arc.m
nullability.m Accept nullability qualifiers on array parameters. 2016-11-10 23:28:17 +00:00
nullable-weak-property.m
objc-array-literal.m
objc-asm-attribute-neg-test.m Determine the attribute subject for diagnostics based on declarative information in DeclNodes.td. This greatly reduces the number of enumerated values used for more complex diagnostics; these are now only required when the "attribute only applies to" diagnostic needs to be generated manually as part of semantic processing. 2017-11-26 20:01:12 +00:00
objc-boxed-expressions-nsvalue.m
objc-buffered-methods.m
objc-cf-audited-warning.m
objc-class-property.m Sema: use PropertyDecl for property selector 2017-02-20 23:45:49 +00:00
objc-container-subscripting-1.m [ObjC] Check that a subscript methods is declared for a qualified id type 2017-07-11 10:18:35 +00:00
objc-container-subscripting-2.m [ObjC] Check that a subscript methods is declared for a qualified id type 2017-07-11 10:18:35 +00:00
objc-container-subscripting-3.m
objc-container-subscripting-attr.m
objc-container-subscripting.m
objc-cstyle-args-in-methods.m
objc-dictionary-literal.m
objc-independent-class-attribute.m
objc-literal-comparison.m
objc-literal-nsnumber.m
objc-literal-sig.m
objc-mixed-bridge-attribute.m
objc-qualified-property-lookup.m
objc-string-constant.m
objc2-merge-gc-attribue-decl.m
objc2-warn-weak-decl.m
objcbridge-attribute-arc.m Determine the attribute subject for diagnostics based on declarative information in DeclNodes.td. This greatly reduces the number of enumerated values used for more complex diagnostics; these are now only required when the "attribute only applies to" diagnostic needs to be generated manually as part of semantic processing. 2017-11-26 20:01:12 +00:00
objcbridge-attribute.m Determine the attribute subject for diagnostics based on declarative information in DeclNodes.td. This greatly reduces the number of enumerated values used for more complex diagnostics; these are now only required when the "attribute only applies to" diagnostic needs to be generated manually as part of semantic processing. 2017-11-26 20:01:12 +00:00
objcbridge-related-attribute.m
objcbridgemutable-attribute.m
opaque-is-access-warn.m
opaque-is-access.m
override-nullability.m
overriding-property-in-class-extension.m
ovl-check.m
parameterized_classes.m
parameterized_classes_arc.m
parameterized_classes_collection_literal.m
parameterized_classes_subst.m ObjectiveC Generics: Start using ObjCTypeParamType. 2016-09-13 17:41:05 +00:00
pedantic-dynamic-test.m
pragma-pack.m
property-2.m
property-3.m
property-4.m
property-5.m
property-6.m
property-7.m
property-8.m
property-9-impl-method.m
property-9.m
property-10.m Remove GC-related warning terminology 2018-04-17 04:25:18 +00:00
property-11.m
property-12.m
property-13.m
property-ambiguous-synthesis.m [ObjC] Pick a 'readwrite' property when synthesizing ambiguous 2017-07-13 11:06:22 +00:00
property-and-class-extension.m
property-and-ivar-use.m
property-atomic-bool.m
property-atomic-redecl.m
property-category-1.m
property-category-2.m
property-category-3.m
property-category-4.m
property-category-impl.m
property-choose-expr.m
property-deprecated-warning.m [Sema][ObjC] Do not DiagnoseUseOfDecl in LookupMemberExpr 2018-05-24 01:01:43 +00:00
property-dot-receiver.m
property-error-readonly-assign.m
property-expression-error.m
property-impl-misuse.m
property-implement-readonly-with-custom-setter.m [ObjC] Don't warn on readwrite properties with custom setters that 2017-10-06 19:24:26 +00:00
property-in-class-extension-1.m
property-in-class-extension.m
property-inherited.m
property-ivar-mismatch.m Fix typos in clang 2018-04-06 15:14:32 +00:00
property-lookup-in-id.m
property-method-lookup-impl.m
property-missing.m
property-nonfragile-abi.m
property-noninherited-availability-attr.m
property-noprotocol-warning.m
property-not-lvalue.m
property-ns-returns-not-retained-attr.m
property-ownership-attr.m
property-redundant-decl-accessor.m
property-typecheck-1.m [Sema][ObjC] Avoid the "type of property does not match type of accessor" 2017-03-30 13:33:51 +00:00
property-user-setter.m
property-weak.m
property.m Remove GC-related warning terminology 2018-04-17 04:25:18 +00:00
props-on-prots.m
protocol-archane.m
protocol-attribute.m
protocol-expr-1.m
protocol-expr-neg-1.m Fix some handling of AST nodes with diagnostics. 2018-03-28 04:16:13 +00:00
protocol-id-test-1.m
protocol-id-test-2.m
protocol-id-test-3.m
protocol-implementation-inherited.m
protocol-implementing-class-methods.m
protocol-lookup-2.m
protocol-lookup.m
protocol-qualified-class-unsupported.m
protocol-typecheck.m
protocol-warn.m
protocols-suppress-conformance.m
protocols.m
provisional-ivar-lookup.m
qualified-protocol-method-conflicts.m
rdar6248119.m
rdr-6211479-array-property.m
receiver-forward-class.m
related-result-type-inference.m
resolve-method-in-global-pool.m
restrict-id-type.m
return.m
scope-check.m
selector-1.m
selector-2.m
selector-3.m
selector-4.m
selector-error.m
selector-overload.m
self-assign.m
self-comparison.m
self-declared-in-block.m
self-in-function.m
setter-dotsyntax.m
severe-syntax-error.m
sign-conversion.m
sizeof-interface.m
special-dep-unavail-warning.m Correct class-template deprecation behavior-REDUX 2017-03-23 18:51:54 +00:00
stand-alone-implementation.m
static-ivar-ref-1.m
stmts.m
string.m
strong-in-c-struct.m [ObjC] Allow declaring __strong pointer fields in structs in Objective-C 2018-02-28 07:15:55 +00:00
subclassing-restricted-attr.m [Objective-C] Add objc_subclassing_restricted attribute 2016-10-28 10:25:10 +00:00
super-cat-prot.m
super-class-protocol-conformance.m
super-dealloc-attribute.m
super-property-message-expr.m
super-property-notation.m
super.m
suspicious-pragma-pack.m Recommit r308327 3rd time: Add a warning for missing 2017-07-28 14:41:21 +00:00
synchronized.m
synth-provisional-ivars-1.m
synth-provisional-ivars.m
synthesize-setter-contclass.m
synthesized-ivar.m
tentative-property-decl.m
transfer-boxed-string-nullability.m [ObjC] Boxed strings should use the nullability from stringWithUTF8String's return type 2017-11-08 21:33:15 +00:00
transparent-union.m
try-catch.m
typedef-class.m
typo-correction-arc.m
typo-correction.m [Sema] Correct typos in LHS, RHS before building a binop expression. 2017-09-15 00:08:37 +00:00
ucn-objc-string.m
undeclared-selector.m
undef-arg-super-method-call.m
undef-class-messagin-error.m
undef-class-property-error.m [Sema] Avoid crash for category implementation without interface 2018-03-27 18:58:28 +00:00
undef-protocol-methods-1.m
undef-superclass-1.m
undefined-protocol-type-1.m
unguarded-availability-category-protocol-use.m [Sema][ObjC] Process category attributes before checking protocol uses 2018-02-23 23:49:43 +00:00
unguarded-availability-new.m [Sema] Improve some -Wunguarded-availability diagnostics 2017-08-14 19:49:12 +00:00
unguarded-availability.m [Availability] Improve availability to consider functions run at load time 2018-04-16 23:34:18 +00:00
unimplemented-protocol-prop.m
uninit-variables.m
unknown-anytype.m
unqualified-to-qualified-class-warn.m
unsafe-perform-selector.m [Sema][ObjC] Warn about 'performSelector' calls with selectors 2017-03-06 15:58:34 +00:00
unused-backing-ivar-warning.m
unused.m
va-method-1.m
warn-assign-property-nscopying.m
warn-cast-of-sel-expr.m
warn-category-method-deprecated.m
warn-deprecated-implementations.m Extend -Wdeprecated-implementations to warn about unavailable methods 2017-07-13 16:37:11 +00:00
warn-direct-ivar-access.m
warn-explicit-call-initialize.m
warn-forward-class-attr-deprecated.m
warn-implicit-atomic-property.m
warn-implicit-self-in-block.m
warn-incompatible-builtin-types.m
warn-loop-analysis.m
warn-messaging-id.mm [ObjC] Add a -Wobjc-messaging-id warning 2017-08-25 16:12:17 +00:00
warn-missing-super.m
warn-nontrivial-struct-memaccess.m [Sema] Warn about memcpy'ing non-trivial C structs. 2018-04-17 19:13:41 +00:00
warn-protocol-method-deprecated.m
warn-retain-block-property.m
warn-retain-cycle.m [ObjC][ARC] Honor noescape attribute for -Warc-retain-cycles 2017-11-17 20:44:25 +00:00
warn-selector-selection.m
warn-strict-selector-match.m
warn-superclass-method-mismatch.m
warn-thread-safety-analysis.m
warn-unreachable.m
warn-unused-exception-param.m
warn-weak-field.m
warn-write-strings.m
warning-missing-selector-name.m
weak-attr-ivar.m
weak-property.m
writable-property-in-superclass.m
x86-method-vector-values.m [ObjC] Don't disallow vector parameters/return values in methods 2017-05-05 16:15:17 +00:00