From 5cad82236ecc0a2eeed2edd75e119f6069a99f4c Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Mon, 7 Nov 2011 18:40:21 +0000 Subject: [PATCH] When applying ARC __weak to a non-objc pointer, do not give error that __weak is unsupported by the deployment target, since it is going to be ignored anyway. Makes it easier for incremental migration from GC. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143975 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Sema/SemaType.cpp | 2 +- test/SemaObjC/arc-no-runtime.m | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/Sema/SemaType.cpp b/lib/Sema/SemaType.cpp index 219a9e8a30..4dc6c949d5 100644 --- a/lib/Sema/SemaType.cpp +++ b/lib/Sema/SemaType.cpp @@ -3341,7 +3341,7 @@ static bool handleObjCOwnershipTypeAttr(TypeProcessingState &state, // Forbid __weak if the runtime doesn't support it. if (lifetime == Qualifiers::OCL_Weak && - !S.getLangOptions().ObjCRuntimeHasWeak) { + !S.getLangOptions().ObjCRuntimeHasWeak && !NonObjCPointer) { // Actually, delay this until we know what we're parsing. if (S.DelayedDiagnostics.shouldDelayDiagnostics()) { diff --git a/test/SemaObjC/arc-no-runtime.m b/test/SemaObjC/arc-no-runtime.m index 49c439b167..567dc68cd6 100644 --- a/test/SemaObjC/arc-no-runtime.m +++ b/test/SemaObjC/arc-no-runtime.m @@ -3,6 +3,7 @@ // rdar://problem/9150784 void test(void) { __weak id x; // expected-error {{the current deployment target does not support automated __weak references}} + __weak void *v; // expected-warning {{'__weak' only applies to objective-c object or block pointer types}} } @interface A -- 2.50.1