mirror of https://github.com/microsoft/clang.git
objective-c: yank any use of "non-fragile abi" phrase
from diagnostics. // rdar://9657485 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159943 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6467c9bf4f
commit
d57aa886f0
|
@ -92,7 +92,7 @@ def err_drv_invalid_arch_for_deployment_target : Error<
|
|||
def err_drv_objc_gc_arr : Error<
|
||||
"cannot specify both '-fobjc-arc' and '%0'">;
|
||||
def err_arc_nonfragile_abi : Error<
|
||||
"-fobjc-arc is not supported with fragile abi">;
|
||||
"-fobjc-arc is not supported with legacy abi">;
|
||||
def err_arc_unsupported : Error<
|
||||
"-fobjc-arc is not supported on current deployment target">;
|
||||
def err_drv_mg_requires_m_or_mm : Error<
|
||||
|
|
|
@ -265,7 +265,6 @@ def AutomaticReferenceCounting : DiagGroup<"arc",
|
|||
ARCRetainCycles,
|
||||
ARCNonPodMemAccess]>;
|
||||
def Selector : DiagGroup<"selector">;
|
||||
def NonfragileAbi2 : DiagGroup<"nonfragile-abi2">;
|
||||
def Protocol : DiagGroup<"protocol">;
|
||||
def SuperSubClassMismatch : DiagGroup<"super-class-method-mismatch">;
|
||||
def OverridingMethodMismatch : DiagGroup<"overriding-method-mismatch">;
|
||||
|
|
|
@ -3734,17 +3734,17 @@ def warn_sizeof_array_param : Warning<
|
|||
InGroup<SizeofArrayArgument>;
|
||||
|
||||
def err_sizeof_nonfragile_interface : Error<
|
||||
"invalid application of '%select{alignof|sizeof}1' to interface %0 in "
|
||||
"non-fragile ABI">;
|
||||
"application of '%select{alignof|sizeof}1' to interface %0 is "
|
||||
"not supported on this architecture and platform">;
|
||||
def err_atdef_nonfragile_interface : Error<
|
||||
"invalid application of @defs in non-fragile ABI">;
|
||||
"use of @defs is not supported on this architecture and platform">;
|
||||
def err_subscript_nonfragile_interface : Error<
|
||||
"subscript requires size of interface %0, which is not constant in "
|
||||
"non-fragile ABI">;
|
||||
"subscript requires size of interface %0, which is not constant for "
|
||||
"this architecture and platform">;
|
||||
|
||||
def err_arithmetic_nonfragile_interface : Error<
|
||||
"arithmetic on pointer to interface %0, which is not a constant size in "
|
||||
"non-fragile ABI">;
|
||||
"arithmetic on pointer to interface %0, which is not a constant size for "
|
||||
"this architecture and platform">;
|
||||
|
||||
|
||||
def ext_subscript_non_lvalue : Extension<
|
||||
|
|
|
@ -8,10 +8,10 @@
|
|||
// Just to test clang is working.
|
||||
# foo
|
||||
|
||||
// CHECK: error: -fobjc-arc is not supported with fragile abi
|
||||
// CHECK: error: -fobjc-arc is not supported with legacy abi
|
||||
// CHECK-NOT: invalid preprocessing directive
|
||||
|
||||
// NOTOBJC-NOT: error: -fobjc-arc is not supported with fragile abi
|
||||
// NOTOBJC-NOT: error: -fobjc-arc is not supported with legacy abi
|
||||
// NOTOBJC: invalid preprocessing directive
|
||||
|
||||
// UNSUPPORTED: error: -fobjc-arc is not supported on current deployment target
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -Wnonfragile-abi2 -fsyntax-only -fobjc-default-synthesize-properties -verify -Wno-objc-root-class %s
|
||||
// RUN: %clang_cc1 -fsyntax-only -fobjc-default-synthesize-properties -verify -Wno-objc-root-class %s
|
||||
// rdar://8673791
|
||||
// rdar://9943851
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ void *g3(I0 *P) {
|
|||
@end
|
||||
|
||||
// size == 4
|
||||
int g1[ sizeof(I0) // expected-error {{invalid application of 'sizeof' to interface 'I0' in non-fragile ABI}}
|
||||
int g1[ sizeof(I0) // expected-error {{application of 'sizeof' to interface 'I0' is not supported on this architecture and platform}}
|
||||
== 4 ? 1 : -1];
|
||||
|
||||
@implementation I0
|
||||
|
@ -32,7 +32,7 @@ int g1[ sizeof(I0) // expected-error {{invalid application of 'sizeof' to in
|
|||
|
||||
// size == 4 (we do not include extended properties in the
|
||||
// sizeof).
|
||||
int g2[ sizeof(I0) // expected-error {{invalid application of 'sizeof' to interface 'I0' in non-fragile ABI}}
|
||||
int g2[ sizeof(I0) // expected-error {{application of 'sizeof' to interface 'I0' is not supported on this architecture and platform}}
|
||||
== 4 ? 1 : -1];
|
||||
|
||||
@interface I1
|
||||
|
@ -43,7 +43,7 @@ int g2[ sizeof(I0) // expected-error {{invalid application of 'sizeof' to inte
|
|||
@synthesize p0 = _p0;
|
||||
@end
|
||||
|
||||
typedef struct { @defs(I1); } I1_defs; // expected-error {{invalid application of @defs in non-fragile ABI}}
|
||||
typedef struct { @defs(I1); } I1_defs; // expected-error {{use of @defs is not supported on this architecture and platform}}
|
||||
|
||||
// FIXME: This is currently broken due to the way the record layout we
|
||||
// create is tied to whether we have seen synthesized properties. Ugh.
|
||||
|
@ -51,9 +51,9 @@ typedef struct { @defs(I1); } I1_defs; // expected-error {{invalid application o
|
|||
|
||||
// rdar://6821047
|
||||
int bar(I0 *P) {
|
||||
P = P+5; // expected-error {{arithmetic on pointer to interface 'I0', which is not a constant size in non-fragile ABI}}
|
||||
P = 5+P; // expected-error {{arithmetic on pointer to interface 'I0', which is not a constant size in non-fragile ABI}}
|
||||
P = P-5; // expected-error {{arithmetic on pointer to interface 'I0', which is not a constant size in non-fragile ABI}}
|
||||
P = P+5; // expected-error {{arithmetic on pointer to interface 'I0', which is not a constant size for this architecture and platform}}
|
||||
P = 5+P; // expected-error {{arithmetic on pointer to interface 'I0', which is not a constant size for this architecture and platform}}
|
||||
P = P-5; // expected-error {{arithmetic on pointer to interface 'I0', which is not a constant size for this architecture and platform}}
|
||||
|
||||
return P[4].x[2]; // expected-error {{expected method to read array element not found on object of type 'I0 *'}}
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ int bar(I0 *P) {
|
|||
@interface XCAttributeRunDirectNode
|
||||
{
|
||||
@public
|
||||
unsigned long attributeRuns[1024 + sizeof(I)]; // expected-error {{invalid application of 'sizeof' to interface 'I' in non-fragile ABI}}
|
||||
unsigned long attributeRuns[1024 + sizeof(I)]; // expected-error {{application of 'sizeof' to interface 'I' is not supported on this architecture and platform}}
|
||||
int i;
|
||||
}
|
||||
@end
|
||||
|
@ -85,6 +85,6 @@ int foo()
|
|||
Foo *f;
|
||||
|
||||
// Both of these crash clang nicely
|
||||
++f; // expected-error {{arithmetic on pointer to interface 'Foo', which is not a constant size in non-fragile ABI}}
|
||||
--f; // expected-error {{arithmetic on pointer to interface 'Foo', which is not a constant size in non-fragile ABI}}
|
||||
++f; // expected-error {{arithmetic on pointer to interface 'Foo', which is not a constant size for this architecture and platform}}
|
||||
--f; // expected-error {{arithmetic on pointer to interface 'Foo', which is not a constant size for this architecture and platform}}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue