From: Argyrios Kyrtzidis Date: Mon, 7 Nov 2011 18:40:21 +0000 (+0000) Subject: When applying ARC __weak to a non-objc pointer, do not give error that X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5cad82236ecc0a2eeed2edd75e119f6069a99f4c;p=clang 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 --- 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