summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2015-11-12 23:39:39 +0000
committerJohn McCall <rjmccall@apple.com>2015-11-12 23:39:39 +0000
commitd6da23d2dfeb0d40cc49bb2b34c7ca3b6f8dfed9 (patch)
treee088169786e8cb6981f577ec4b3278402be42670
parentb883b01a8e44f841339023593b461b09e008f27a (diff)
downloadbcm5719-llvm-d6da23d2dfeb0d40cc49bb2b34c7ca3b6f8dfed9.tar.gz
bcm5719-llvm-d6da23d2dfeb0d40cc49bb2b34c7ca3b6f8dfed9.zip
Remove -Wobjc-weak-compat; there isn't a compelling use case for this.
llvm-svn: 252971
-rw-r--r--clang/include/clang/Basic/DiagnosticSemaKinds.td3
-rw-r--r--clang/lib/Sema/SemaType.cpp28
-rw-r--r--clang/test/SemaObjC/property-in-class-extension-1.m4
3 files changed, 15 insertions, 20 deletions
diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td
index 81a1f4a8498..76730e6fc7a 100644
--- a/clang/include/clang/Basic/DiagnosticSemaKinds.td
+++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td
@@ -4561,9 +4561,6 @@ def err_synthesizing_arc_weak_property_disabled : Error<
def err_synthesizing_arc_weak_property_no_runtime : Error<
"cannot synthesize weak property because the current deployment target "
"does not support weak references">;
-def warn_objc_weak_compat : Warning<
- "the meaning of __weak has changed in manual reference-counting">,
- InGroup<DiagGroup<"objc-weak-compat">>, DefaultIgnore;
def err_arc_unsupported_weak_class : Error<
"class is incompatible with __weak references">;
def err_arc_weak_unavailable_assign : Error<
diff --git a/clang/lib/Sema/SemaType.cpp b/clang/lib/Sema/SemaType.cpp
index bbd0c3fbd06..b6bc1594282 100644
--- a/clang/lib/Sema/SemaType.cpp
+++ b/clang/lib/Sema/SemaType.cpp
@@ -5187,6 +5187,18 @@ static bool handleObjCOwnershipTypeAttr(TypeProcessingState &state,
type = S.Context.getAttributedType(AttributedType::attr_objc_ownership,
origType, type);
+ auto diagnoseOrDelay = [](Sema &S, SourceLocation loc,
+ unsigned diagnostic, QualType type) {
+ if (S.DelayedDiagnostics.shouldDelayDiagnostics()) {
+ S.DelayedDiagnostics.add(
+ sema::DelayedDiagnostic::makeForbiddenType(
+ S.getSourceManager().getExpansionLoc(loc),
+ diagnostic, type, /*ignored*/ 0));
+ } else {
+ S.Diag(loc, diagnostic);
+ }
+ };
+
// Sometimes, __weak isn't allowed.
if (lifetime == Qualifiers::OCL_Weak &&
!S.getLangOpts().ObjCWeak && !NonObjCPointer) {
@@ -5197,26 +5209,12 @@ static bool handleObjCOwnershipTypeAttr(TypeProcessingState &state,
: diag::err_arc_weak_no_runtime);
// In any case, delay the diagnostic until we know what we're parsing.
- if (S.DelayedDiagnostics.shouldDelayDiagnostics()) {
- S.DelayedDiagnostics.add(
- sema::DelayedDiagnostic::makeForbiddenType(
- S.getSourceManager().getExpansionLoc(AttrLoc),
- diagnostic, type, /*ignored*/ 0));
- } else {
- S.Diag(AttrLoc, diagnostic);
- }
+ diagnoseOrDelay(S, AttrLoc, diagnostic, type);
attr.setInvalid();
return true;
}
- // If we accepted __weak, we might still need to warn about it.
- if (lifetime == Qualifiers::OCL_Weak &&
- !S.getLangOpts().ObjCAutoRefCount &&
- S.getLangOpts().ObjCWeak) {
- S.Diag(AttrLoc, diag::warn_objc_weak_compat);
- }
-
// Forbid __weak for class objects marked as
// objc_arc_weak_reference_unavailable
if (lifetime == Qualifiers::OCL_Weak) {
diff --git a/clang/test/SemaObjC/property-in-class-extension-1.m b/clang/test/SemaObjC/property-in-class-extension-1.m
index 8f5907b54d3..b25639cf062 100644
--- a/clang/test/SemaObjC/property-in-class-extension-1.m
+++ b/clang/test/SemaObjC/property-in-class-extension-1.m
@@ -1,5 +1,5 @@
-// RUN: %clang_cc1 -fsyntax-only -triple x86_64-apple-darwin11 -fobjc-runtime-has-weak -fobjc-weak -verify -Weverything -Wno-objc-weak-compat %s
-// RUN: %clang_cc1 -x objective-c++ -triple x86_64-apple-darwin11 -fobjc-runtime-has-weak -fobjc-weak -fsyntax-only -verify -Weverything -Wno-objc-weak-compat %s
+// RUN: %clang_cc1 -fsyntax-only -triple x86_64-apple-darwin11 -fobjc-runtime-has-weak -fobjc-weak -verify -Weverything %s
+// RUN: %clang_cc1 -x objective-c++ -triple x86_64-apple-darwin11 -fobjc-runtime-has-weak -fobjc-weak -fsyntax-only -verify -Weverything %s
// rdar://12103400
@class NSString;
OpenPOWER on IntegriCloud