清理xcode警告,常用的ignored

1, 声明变量未使用  "-Wunused-variable"
2, 方法定义未实现  "-Wincomplete-implementation"
3, 未声明的选择器  "-Wundeclared-selector"
4, 参数格式不匹配  "-Wformat"
5, 废弃掉的方法    "-Wdeprecated-declarations"
6, 不会执行的代码  "-Wunreachable-code"
7, 指针类型不匹配  "-Wincompatible-pointer-types"
8, 没有实现已声明的方法 "-Wincomplete-implementation"
9, -没有实现协议的方法"  "-Wprotocol"
10, 尚未声明的函数(通常指c函数) "-Wimplicit-function-declaration"
11, 使用performSelector可能会出现泄漏 "-Warc-performSelector-leaks"

Which Clang Warning Is Generating This Message?

(http://fuckingclangwarnings.com/#lex), Parser, or Semantic Warnings

-WCFString-literal

input conversion stopped due to an input byte that does not belong to the input codeset UTF-8

-WNSObject-attribute

__attribute ((NSObject)) may be put on a typedef only, attribute is ignored

-Wabstract-vbase-init

initializer for virtual base class %0 of abstract class %1 will never be used

-Waddress-of-array-temporary

pointer is initialized by a temporary array, which will be destroyed at the end of the full-expression

-Warc-maybe-repeated-use-of-weak

"weak %select{variable|property|implicit property|instance variable}0 %1 may be accessed multiple times in this %select{function|method|block|lambda}2 and may be unpredictably set to nil assign to a strong variable to keep the object alive

-Warc-non-pod-memaccess

%select{destination for|source of}0 this %1 call is a pointer to ownership-qualified type %2

-Warc-performSelector-leaks

performSelector may cause a leak because its selector is unknown

-Warc-repeated-use-of-weak

"weak %select{variable|property|implicit property|instance variable}0 %1 is accessed multiple times in this %select{function|method|block|lambda}2 but may be unpredictably set to nil assign to a strong variable to keep the object alive

-Warc-retain-cycles

capturing %0 strongly in this block is likely to lead to a retain cycle

-Warc-unsafe-retained-assign

assigning retained object to unsafe property object will be released after assignment

-Warc-unsafe-retained-assign

assigning %select{array literal|dictionary literal|numeric literal|boxed expression|should not happen|block literal}0 to a weak %select{property|variable}1 object will be released after assignment

-Warc-unsafe-retained-assign

assigning retained object to %select{weak|unsafe_unretained}0 %select{property|variable}1 object will be released after assignment

-Warray-bounds

array index %0 is past the end of the array (which contains %1 element%s2)

-Warray-bounds

array index %0 is before the beginning of the array

-Warray-bounds

'static' has no effect on zero-length arrays

-Warray-bounds

array argument is too small contains %0 elements, callee requires at least %1

-Warray-bounds-pointer-arithmetic

the pointer incremented by %0 refers past the end of the array (that contains %1 element%s2)

-Warray-bounds-pointer-arithmetic

the pointer decremented by %0 refers before the beginning of the array

-Wassign-enum

integer constant not in range of enumerated type %0

-Watomic-property-with-user-defined-accessor

writable atomic property %0 cannot pair a synthesized %select{getter|setter}1 with a user defined %select{getter|setter}2

-Wattributes

unknown attribute %0 ignored

-Wauto-var-id

'auto' deduced as 'id' in declaration of %0

-Wavailability

unknown platform %0 in availability macro

-Wavailability

overriding method %select{introduced after|deprecated before|obsoleted before}0 overridden method on %1 (%2 vs. %3)

-Wavailability

availability does not match previous declaration

-Wavailability

overriding method cannot be unavailable on %0 when its overridden method is available

-Wavailability

feature cannot be %select{introduced|deprecated|obsoleted}0 in %1 version %2 before it was %select{introduced|deprecated|obsoleted}3 in version %4 attribute ignored

-Wbad-function-cast

cast from function call of type %0 to non-matching type %1

-Wbitfield-constant-conversion

implicit truncation from %2 to bitfield changes value from %0 to %1

-Wbitwise-op-parentheses

'&' within '|'

-Wbool-conversion

"initialization of pointer of type %0 to null from a constant boolean " "expression

-Wbridge-cast

%0 cannot bridge to %1

-Wbridge-cast

%0 bridges to %1, not %2

-Wbuiltin-requires-header

declaration of built-in function '%0' requires inclusion of the header stdio.h

-Wbuiltin-requires-header

declaration of built-in function '%0' requires inclusion of the header setjmp.h

-Wbuiltin-requires-header

declaration of built-in function '%0' requires inclusion of the header ucontext.h

-Wc++-compat

%select{|empty }0%select{struct|union}1 has size 0 in C, %select{size 1|non-zero size}2 in C++

-Wc++11-compat

explicit instantiation cannot be 'inline'

-Wc++11-compat

explicit instantiation of %0 must occur at global scope

-Wc++11-compat

explicit instantiation of %0 not in a namespace enclosing %1

-Wc++11-compat

explicit instantiation of %q0 must occur in namespace %1

-Wc++11-narrowing

constant expression evaluates to %0 which cannot be narrowed to type %1 in C++11

-Wc++11-narrowing

type %0 cannot be narrowed to %1 in initializer list in C++11

-Wc++11-narrowing

non-constant-expression cannot be narrowed from type %0 to %1 in initializer list in C++11

-Wc++98-c++11-compat

type definition in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++1y

-Wc++98-c++11-compat

use of this statement in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++1y

-Wc++98-c++11-compat

init-captures.def warn_cxx11_compat_init_capture : Warning "initialized lambda captures are incompatible with C++ standards " "before C++1y

-Wc++98-c++11-compat

variable declaration in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++1y

-Wc++98-c++11-compat

constexpr function with no return statements is incompatible with C++ standards before C++1y

-Wc++98-c++11-compat

multiple return statements in constexpr function is incompatible with C++ standards before C++1y

-Wc++98-c++11-compat

variable templates are incompatible with C++ standards before C++1y

-Wc++98-compat

substitution failure due to access control is incompatible with C++98

-Wc++98-compat

%select{anonymous struct|union}0 member %1 with a non-trivial %select{constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor}2 is incompatible with C++98

-Wc++98-compat

enumeration type in nested name specifier is incompatible with C++98

-Wc++98-compat

static data member %0 in union is incompatible with C++98

-Wc++98-compat

default template arguments for a function template are incompatible with C++98

-Wc++98-compat

scalar initialized from empty initializer list is incompatible with C++98

-Wc++98-compat

befriending %1 without '%select{struct|interface|union|class|enum}0' keyword is incompatible with C++98

-Wc++98-compat

use of null pointer as non-type template argument is incompatible with C++98

-Wc++98-compat

friend declaration naming a member of the declaring class is incompatible with C++98

-Wc++98-compat

non-class friend type %0 is incompatible with C++98

-Wc++98-compat

befriending enumeration type %0 is incompatible with C++98

-Wc++98-compat

use of non-static data member %0 in an unevaluated context is incompatible with C++98

-Wc++98-compat

friend function %0 would be implicitly redefined in C++98

-Wc++98-compat

%select{class template|class template partial|variable template|variable template partial|function template|member function|static data member|member class|member enumeration}0 specialization of %1 outside namespace %2 is incompatible with C++98

-Wc++98-compat

reference initialized from initializer list is incompatible with C++98

-Wc++98-compat

redundant parentheses surrounding address non-type template argument are incompatible with C++98

-Wc++98-compat

initialization of initializer_list object is incompatible with C++98

-Wc++98-compat

use of 'template' keyword outside of a template is incompatible with C++98

-Wc++98-compat

non-type template argument referring to %select{function|object}0 %1 with internal linkage is incompatible with C++98

-Wc++98-compat

use of 'typename' outside of a template is incompatible with C++98

-Wc++98-compat

passing object of trivial but non-POD type %0 through variadic %select{function|block|method|constructor}1 is incompatible with C++98

-Wc++98-compat

goto would jump into protected scope in C++98

-Wc++98-compat

constructor call from initializer list is incompatible with C++98

-Wc++98-compat

'auto' type specifier is incompatible with C++98

-Wc++98-compat

delegating constructors are incompatible with C++98

-Wc++98-compat

'constexpr' specifier is incompatible with C++98

-Wc++98-compat

inheriting constructors are incompatible with C++98

-Wc++98-compat

explicit conversion functions are incompatible with C++98

-Wc++98-compat

switch case would be in a protected scope in C++98

-Wc++98-compat

'%0' type specifier is incompatible with C++98

-Wc++98-compat

indirect goto might cross protected scopes in C++98

-Wc++98-compat-pedantic

cast between pointer-to-function and pointer-to-object is incompatible with C++98

-Wc++98-compat-pedantic

implicit conversion from array size expression of type %0 to %select{integral|enumeration}1 type %2 is incompatible with C++98

-Wcast-align

cast from %0 to %1 increases required alignment from %2 to %3

-Wcast-of-sel-type

cast of type %0 to %1 is deprecated use sel_getName instead

-Wchar-subscripts

array subscript is of type 'char'

-Wconditional-uninitialized

variable %0 may be uninitialized when %select{used here|captured by block}1

-Wconstant-logical-operand

use of logical '%0' with constant operand

-Wconstexpr-not-const

'constexpr' non-static member function will not be implicitly 'const' in C++1y add 'const' to avoid a change in behavior

-Wconsumed

state of variable '%0' must match at the entry and exit of loop

-Wconsumed

parameter '%0' not in expected state when the function returns: expected '%1', observed '%2'

-Wconsumed

argument not in expected state expected '%0', observed '%1'

-Wconsumed

invalid invocation of method '%0' on a temporary object while it is in the '%1' state

-Wconsumed

return state set for an unconsumable type '%0'

-Wconsumed

consumed analysis attribute is attached to member of class '%0' which isn't marked as consumable

-Wconsumed

invalid invocation of method '%0' on object '%1' while it is in the '%2' state

-Wconsumed

return value not in expected state expected '%0', observed '%1'

-Wconversion

implicit conversion discards imaginary component: %0 to %1

-Wconversion

non-type template argument with value '%0' converted to '%1' for unsigned template parameter of type %2

-Wconversion

implicit conversion loses floating-point precision: %0 to %1

-Wconversion

implicit conversion loses integer precision: %0 to %1

-Wconversion

non-type template argument value '%0' truncated to '%1' for template parameter of type %2

-Wconversion

implicit conversion turns vector to scalar: %0 to %1

-Wconversion

implicit conversion turns floating-point number into integer: %0 to %1

-Wcovered-switch-default

default label in switch which covers all enumeration values

-Wcustom-atomic-properties

atomic by default property %0 has a user defined %select{getter|setter}1 (property should be marked 'atomic' if this is intended)

-Wdangling-field

initializing pointer member %0 with the stack address of parameter %1

-Wdangling-field

binding reference %select{|subobject of }1member %0 to a temporary value

-Wdangling-field

binding reference member %0 to stack allocated parameter %1

-Wdangling-initializer-list

array backing the initializer list will be destroyed at the end of %select{the full-expression|the constructor}0

-Wdelete-incomplete

deleting pointer to incomplete type %0 may cause undefined behavior

-Wdelete-non-virtual-dtor

delete called on %0 that is abstract but has non-virtual destructor

-Wdelete-non-virtual-dtor

delete called on %0 that has virtual functions but non-virtual destructor

-Wdeprecated

access declarations are deprecated use using declarations instead

-Wdeprecated

definition of implicit copy %select{constructor|assignment operator}1 for %0 is deprecated because it has a user-declared %select{copy %select{assignment operator|constructor}1|destructor}2

-Wdeprecated

dynamic exception specifications are deprecated

-Wdeprecated-increment-bool

incrementing expression of type bool is deprecated

-Wdeprecated-objc-isa-usage

assignment to Objective-C's isa is deprecated in favor of object_setClass()

-Wdeprecated-objc-isa-usage

direct access to Objective-C's isa is deprecated in favor of object_getClass()

-Wdeprecated-objc-pointer-introspection

bitmasking for introspection of Objective-C object pointers is strongly discouraged

-Wdeprecated-objc-pointer-introspection-performSelector

warn_objc_pointer_masking.Text

-Wdeprecated-writable-strings

dummy warning to enable -fconst-strings

-Wdirect-ivar-access

instance variable %0 is being directly accessed

-Wdistributed-object-modifiers

conflicting distributed object modifiers on return type in implementation of %0

-Wdistributed-object-modifiers

conflicting distributed object modifiers on parameter type in implementation of %0

-Wdivision-by-zero

division by zero is undefined

-Wdivision-by-zero

remainder by zero is undefined

-Wdocumentation

parameter '%0' not found in the function declaration

-Wdocumentation

not a Doxygen trailing comment

-Wduplicate-enum

element %0 has been implicitly assigned %1 which another element has been assigned

-Wduplicate-method-match

multiple declarations of method %0 found and ignored

-Wdynamic-class-memaccess

%select{destination for|source of|first operand of|second operand of}0 this %1 call is a pointer to dynamic class %2 vtable pointer will be %select{overwritten|copied|moved|compared}3

-Wempty-body

switch statement has empty body

-Wempty-body

for loop has empty body

-Wempty-body

if statement has empty body

-Wempty-body

range-based for loop has empty body

-Wempty-body

while loop has empty body

-Wenum-compare

comparison of two values with different enumeration types%diff{ ()|}0,1

-Wenum-conversion

implicit conversion from enumeration type %0 to different enumeration type %1

-Wexit-time-destructors

declaration requires an exit-time destructor

-Wexplicit-ownership-type

method parameter of type %0 with no explicit ownership

-Wextern-c-compat

%select{|empty }0%select{struct|union}1 has size 0 in C, %select{size 1|non-zero size}2 in C++

-Wextern-initializer

'extern' variable has an initializer

-Wfloat-equal

comparing floating point with == or != is unsafe

-Wformat

"data argument position '%0' exceeds the number of data arguments (%1)

-Wformat

position arguments in format strings start counting at 1 (not 0)

-Wformat

invalid position specified for %select{field width|field precision}0

-Wformat

cannot mix positional and non-positional arguments in format string

-Wformat

values of type '%0' should not be used as format arguments add an explicit cast to %1 instead

-Wformat

format specifies type %0 but the argument has type %1

-Wformat

zero field width in scanf format string is unused

-Wformat

no closing ']' for '%%[' in scanf format string

-Wformat

format string should not be a wide string

-Wformat

format string contains '\0' within the string body

-Wformat

'%select{|.}0' specified field %select{width|precision}0 is missing a matching 'int' argument

-Wformat

field %select{width|precision}0 should have type %1, but argument has type %2

-Wformat

%select{field width|precision}0 used with '%1' conversion specifier, resulting in undefined behavior

-Wformat

format string missing

-Wformat

incomplete format specifier

-Wformat

flag '%0' results in undefined behavior with '%1' conversion specifier

-Wformat

flag '%0' is ignored when flag '%1' is present

-Wformat

more '%%' conversions than data arguments

-Wformat

length modifier '%0' results in undefined behavior or no effect with '%1' conversion specifier

-Wformat-extra-args

data argument not used by format string

-Wformat-invalid-specifier

invalid conversion specifier '%0'

-Wformat-nonliteral

format string is not a string literal

-Wformat-security

format string is not a string literal (potentially insecure)

-Wformat-zero-length

format string is empty

-Wgcc-compat

GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier

-Wglobal-constructors

declaration requires a global constructor

-Wglobal-constructors

declaration requires a global destructor

-Wgnu-conditional-omitted-operand

use of GNU ?: conditional expression extension, omitting middle operand

-Wheader-hygiene

using namespace directive in global context in header

-Widiomatic-parentheses

using the result of an assignment as a condition without parentheses

-Wignored-attributes

'malloc' attribute only applies to functions returning a pointer type

-Wignored-attributes

%0 attribute only applies to %select{functions|unions|variables and functions|functions and methods|parameters|functions, methods and blocks|functions, methods, and classes|functions, methods, and parameters|classes|variables|methods|variables, functions and labels|fields and global variables|structs|variables, functions and tag types|thread-local variables|variables and fields|variables, data members and tag types|types and namespaces|Objective-C interfaces}1

-Wignored-attributes

'%0' attribute cannot be specified on a definition

-Wignored-attributes

__weak attribute cannot be specified on an automatic variable when ARC is not enabled

-Wignored-attributes

Objective-C GC does not allow weak variables on the stack

-Wignored-attributes

__weak attribute cannot be specified on a field declaration

-Wignored-attributes

attribute %0 cannot be applied to %select{functions|Objective-C method}1 without return value

-Wignored-attributes

attribute declaration must precede definition

-Wignored-attributes

attribute %0 is ignored, place it after "%select{class|struct|union|interface|enum}1" to apply attribute to type declaration

-Wignored-attributes

__declspec attribute %0 is not supported

-Wignored-attributes

attribute %0 ignored, because it cannot be applied to a type

-Wignored-attributes

attribute %0 after definition is ignored

-Wignored-attributes

%0 attribute ignored

-Wignored-attributes

'sentinel' attribute only supported for variadic %select{functions|blocks}0

-Wignored-attributes

'sentinel' attribute requires named arguments

-Wignored-attributes

'%0' only applies to %select{function|pointer|Objective-C object or block pointer}1 types type here is %2

-Wignored-attributes

'nonnull' attribute applied to function with no pointer arguments

-Wignored-attributes

%0 attribute can only be applied to instance variables or properties

-Wignored-attributes

ibaction attribute can only be applied to Objective-C instance methods

-Wignored-attributes

%0 calling convention ignored on variadic function

-Wignored-attributes

%0 only applies to variables with static storage duration and functions

-Wignored-attributes

%0 attribute argument not supported: %1

-Wignored-attributes

pramga ms_struct can not be used with dynamic classes or structures

-Wignored-attributes

transparent union definition must contain at least one field transparent_union attribute ignored

-Wignored-attributes

first field of a transparent union cannot have %select{floating point|vector}0 type %1 transparent_union attribute ignored

-Wignored-attributes

'gnu_inline' attribute requires function to be marked 'inline', attribute ignored

-Wignored-attributes

calling convention %0 ignored for this target

-Wignored-attributes

transparent_union attribute can only be applied to a union definition attribute ignored

-Wignored-attributes

%select{alignment|size}0 of field %1 (%2 bits) does not match the %select{alignment|size}0 of the first field in transparent union transparent_union attribute ignored

-Wignored-attributes

attribute %0 is already applied

-Wignored-attributes

%0 attribute ignored for field of type %1

-Wignored-attributes

%0 attribute ignored when parsing type

-Wignored-attributes

%0 attribute only applies to %select{functions|methods|properties}1 that return %select{an Objective-C object|a pointer|a non-retainable pointer}2

-Wignored-attributes

%0 attribute only applies to %select{Objective-C object|pointer}1 parameters

-Wignored-attributes

attribute %0 is already applied with different parameters

-Wignored-attributes

unknown visibility %0

-Wignored-qualifiers

"'%0' type qualifier%s1 on return type %plural{1:has|:have}1 no effect

-Wignored-qualifiers

ARC %select{unused|__unsafe_unretained|__strong|__weak|__autoreleasing}0 lifetime qualifier on return type is ignored

-Wimplicit-atomic-properties

property is assumed atomic by default

-Wimplicit-atomic-properties

property is assumed atomic when auto-synthesizing the property

-Wimplicit-fallthrough

fallthrough annotation in unreachable code

-Wimplicit-fallthrough

unannotated fall-through between switch labels

-Wimplicit-fallthrough

fallthrough annotation does not directly precede switch label

-Wimplicit-function-declaration

implicit declaration of function %0

-Wimplicit-function-declaration

use of unknown builtin %0

-Wimplicit-retain-self

"block implicitly retains 'self' explicitly mention 'self' to indicate this is intended behavior

-Wincompatible-library-redeclaration

incompatible redeclaration of library function %0

-Wincomplete-implementation

method definition for %0 not found

-Winherited-variadic-ctor

inheriting constructor does not inherit ellipsis

-Winitializer-overrides

subobject initialization overrides initialization of other fields within its enclosing subobject

-Winitializer-overrides

initializer overrides prior initialization of this subobject

-Wint-to-pointer-cast

cast to %1 from smaller integer type %0

-Wint-to-void-pointer-cast

cast to %1 from smaller integer type %0

-Winvalid-iboutlet

IBOutletCollection properties should be copy/strong and not assign

-Winvalid-iboutlet

%select{instance variable|property}2 with %0 attribute must be an object type (invalid %1)

-Winvalid-noreturn

function %0 declared 'noreturn' should not return

-Winvalid-noreturn

function declared 'noreturn' should not return

-Wlarge-by-value-copy

return value of %0 is a large (%1 bytes) pass-by-value object pass it by reference instead ?

-Wlarge-by-value-copy

%0 is a large (%1 bytes) pass-by-value argument pass it by reference instead ?

-Wliteral-conversion

implicit conversion from %0 to %1 changes value from %2 to %3

-Wliteral-range

magnitude of floating-point constant too large for type %0 maximum is %1

-Wliteral-range

magnitude of floating-point constant too small for type %0 minimum is %1

-Wlogical-not-parentheses

logical not is only applied to the left hand side of this comparison

-Wlogical-op-parentheses

'&&' within '||'

-Wloop-analysis

variable%select{s| %1|s %1 and %2|s %1, %2, and %3|s %1, %2, %3, and %4}0 used in loop condition not modified in loop body

-Wloop-analysis

variable %0 is %select{decremented|incremented}1 both in the loop header and in the loop body

-Wmethod-signatures

conflicting parameter types in implementation of %0: %1 vs %2

-Wmethod-signatures

conflicting return type in implementation of %0: %1 vs %2

-Wmicrosoft

extra qualification on member %0

-Wmismatched-method-attributes

attributes on method implementation and its declaration must match

-Wmismatched-parameter-types

conflicting parameter types in implementation of %0%diff{: |}1,2

-Wmismatched-return-types

conflicting return type in implementation of %0%diff{: |}1,2

-Wmissing-braces

suggest braces around initialization of subobject

-Wmissing-declarations

'%0' ignored on this declaration

-Wmissing-field-initializers

missing field '%0' initializer

-Wmissing-method-return-type

method has no return type specified defaults to 'id'

-Wmissing-noreturn

%select{function|method}0 %1 could be declared with attribute 'noreturn'

-Wmissing-noreturn

block could be declared with attribute 'noreturn'

-Wmissing-prototypes

no previous prototype for function %0

-Wmissing-variable-declarations

no previous extern declaration for non-static variable %0

-Wmultiple-move-vbase

defaulted move assignment operator of %0 will move assign virtual base class %1 multiple times

-Wnested-anon-types

anonymous types declared in an anonymous union/struct are an extension

-Wno-typedef-redefinition

Redefinition of typedef '%0' is a C11 feature

-Wnon-literal-null-conversion

"expression which evaluates to zero treated as a null pointer constant of " "type %0

-Wnon-pod-varargs

second argument to 'va_arg' is of ARC ownership-qualified type %0

-Wnon-pod-varargs

cannot pass %select{non-POD|non-trivial}0 object of type %1 to variadic %select{function|block|method|constructor}2 expected type from format string was %3

-Wnon-pod-varargs

second argument to 'va_arg' is of non-POD type %0

-Wnon-pod-varargs

cannot pass object of %select{non-POD|non-trivial}0 type %1 through variadic %select{function|block|method|constructor}2 call will abort at runtime

-Wnon-virtual-dtor

%0 has virtual functions but non-virtual destructor

-Wnonnull

null passed to a callee which requires a non-null argument

-Wnull-arithmetic

use of NULL in arithmetic operation

-Wnull-arithmetic

comparison between NULL and non-pointer %select{(%1 and NULL)|(NULL and %1)}0

-Wnull-dereference

indirection of non-volatile null pointer will be deleted, not trap

-Wobjc-autosynthesis-property-ivar-name-match

autosynthesized property %0 will use %select{|synthesized}1 instance variable %2, not existing instance variable %3

-Wobjc-forward-class-redefinition

redefinition of forward class %0 of a typedef name of an object type is ignored

-Wobjc-interface-ivars

declaration of instance variables in the interface is deprecated

-Wobjc-literal-compare

direct comparison of %select{an array literal|a dictionary literal|a numeric literal|a boxed expression|}0 has undefined behavior

-Wobjc-literal-missing-atsign

string literal must be prefixed by '@'

-Wobjc-method-access

instance method %objcinstance0 not found (return type defaults to 'id') did you mean %objcinstance2?

-Wobjc-method-access

class method %objcclass0 not found (return type defaults to 'id') did you mean %objcclass2?

-Wobjc-method-access

instance method %objcinstance0 not found (return type defaults to 'id')

-Wobjc-method-access

instance method %0 is being used on 'Class' which is not in the root class

-Wobjc-method-access

class method %objcclass0 not found (return type defaults to 'id')

-Wobjc-method-access

instance method %0 found instead of class method %1

-Wobjc-missing-property-synthesis

"auto property synthesis is synthesizing property not explicitly synthesized

-Wobjc-missing-super-calls

method possibly missing a [super %0] call

-Wobjc-noncopy-retain-block-property

"retain'ed block property does not copy the block " "- use copy attribute instead

-Wobjc-nonunified-exceptions

can not catch an exception thrown with @throw in C++ in the non-unified exception model

-Wobjc-property-implementation

property %0 requires method %1 to be defined - use @dynamic or provide a method implementation in this category

-Wobjc-property-implementation

property %0 requires method %1 to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation

-Wobjc-property-implicit-mismatch

"primary property declaration is implicitly strong while redeclaration in class extension is weak

-Wobjc-property-matches-cocoa-ownership-rule

property's synthesized getter follows Cocoa naming convention for returning 'owned' objects

-Wobjc-property-no-attribute

no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed

-Wobjc-property-no-attribute

default property attribute 'assign' not appropriate for non-GC object

-Wobjc-property-synthesis

auto property synthesis will not synthesize property '%0' because it is 'readwrite' but it will be synthesized 'readonly' via another property

-Wobjc-property-synthesis

"auto property synthesis will not synthesize property '%0' because it cannot share an ivar with another synthesized property

-Wobjc-protocol-method-implementation

category is implementing a method which will also be implemented by its primary class

-Wobjc-protocol-property-synthesis

auto property synthesis will not synthesize property declared in a protocol

-Wobjc-redundant-literal-use

using %0 with a literal is redundant

-Wobjc-root-class

class %0 defined without specifying a base class

-Wobjc-string-compare

direct comparison of a string literal has undefined behavior

-Wobjc-string-concatenation

concatenated NSString literal for an NSArray expression - possibly missing a comma

-Wover-aligned

type %0 requires %1 bytes of alignment and the default allocator only guarantees %2 bytes

-Woverloaded-shift-op-parentheses

overloaded operator %select{|}0 has lower precedence than comparison operator

-Woverloaded-virtual

%q0 hides overloaded virtual %select{function|functions}1

-Woverriding-method-mismatch

conflicting distributed object modifiers on parameter type in declaration of %0

-Woverriding-method-mismatch

conflicting parameter types in declaration of %0: %1 vs %2

-Woverriding-method-mismatch

conflicting variadic declaration of method and its implementation

-Woverriding-method-mismatch

conflicting distributed object modifiers on return type in declaration of %0

-Woverriding-method-mismatch

conflicting parameter types in declaration of %0%diff{: |}1,2

-Woverriding-method-mismatch

conflicting return type in declaration of %0%diff{: |}1,2

-Woverriding-method-mismatch

conflicting return type in declaration of %0: %1 vs %2

-Wpacked

packed attribute is unnecessary for %0

-Wpadded

padding %select{struct|interface|class}0 %1 with %2 %select{byte|bit}3%select{|s}4 to align anonymous bit-field

-Wpadded

padding %select{struct|interface|class}0 %1 with %2 %select{byte|bit}3%select{|s}4 to align %5

-Wpadded

padding size of %0 with %1 %select{byte|bit}2%select{|s}3 to alignment boundary

-Wparentheses

using the result of an assignment as a condition without parentheses

-Wparentheses

%0 has lower precedence than %1 %1 will be evaluated first

-Wparentheses

operator '?:' has lower precedence than '%0' '%0' will be evaluated first

-Wparentheses-equality

equality comparison with extraneous parentheses

-Wpointer-arith

subtraction of pointers to type %0 of zero size has undefined behavior

-Wpredefined-identifier-outside-function

predefined identifier is only valid inside function

-Wprivate-extern

use of private_extern on a declaration may not produce external symbol private to the linkage unit and is deprecated

-Wprotocol

method %0 in protocol not implemented

-Wprotocol-property-synthesis-ambiguity

property of type %0 was selected for synthesis

-Wreadonly-iboutlet-property

readonly IBOutlet property '%0' when auto-synthesized may not work correctly with 'nib' loader

-Wreadonly-setter-attrs

property attributes '%0' and '%1' are mutually exclusive

-Wreceiver-expr

receiver type %0 is not 'id' or interface pointer, consider casting it to 'id'

-Wreceiver-forward-class

receiver type %0 for instance message is a forward declaration

-Wreceiver-is-weak

"weak %select{receiver|property|implicit property}0 may be unpredictably set to nil

-Wreinterpret-base-class

'reinterpret_cast' %select{from|to}3 class %0 %select{to|from}3 its %select{virtual base|base at non-zero offset}2 %1 behaves differently from 'static_cast'

-Wreorder

%select{field|base class}0 %1 will be initialized after %select{field|base}2 %3

-Wrequires-super-attribute

%0 attribute cannot be applied to %select{methods in protocols|dealloc}1

-Wreturn-stack-address

returning address of local temporary object

-Wreturn-stack-address

returning address of label, which is local

-Wreturn-stack-address

address of stack memory associated with local variable %0 returned

-Wreturn-stack-address

reference to stack memory associated with local variable %0 returned

-Wreturn-stack-address

returning reference to local temporary object

-Wreturn-type

control may reach end of non-void function

-Wreturn-type

non-void %select{function|method}1 %0 should return a value, DefaultError

-Wreturn-type

control reaches end of non-void function

-Wreturn-type-c-linkage

%0 has C-linkage specified, but returns incomplete type %1 which could be incompatible with C

-Wreturn-type-c-linkage

%0 has C-linkage specified, but returns user-defined type %1 which is incompatible with C

-Wsection

section does not match previous declaration

-Wselector

creating selector for nonexistent method %0

-Wselector-type-mismatch

multiple selectors named %0 found

-Wself-assign

explicitly assigning a variable of type %0 to itself

-Wself-assign-field

assigning %select{field|instance variable}0 to itself

-Wsentinel

"missing sentinel in %select{function call|method dispatch|block call}0

-Wsentinel

not enough variable arguments in %0 declaration to fit a sentinel

-Wshadow

declaration shadows a %select{" "local variable|" "variable in %2|" "static data member of %2|" "field of %2}1

-Wshadow-ivar

local declaration of %0 hides instance variable

-Wshift-count-negative

shift count is negative

-Wshift-count-overflow

shift count = width of type

-Wshift-op-parentheses

operator '%0' has lower precedence than '%1' '%1' will be evaluated first

-Wshift-overflow

signed shift result (%0) requires %1 bits to represent, but %2 only has %3 bits

-Wshift-sign-overflow

signed shift result (%0) sets the sign bit of the shift expression's type (%1) and becomes negative

-Wshorten-64-to-32

implicit conversion loses integer precision: %0 to %1

-Wsign-compare

comparison of integers of different signs: %0 and %1

-Wsign-conversion

implicit conversion changes signedness: %0 to %1

-Wsign-conversion

operand of ? changes signedness: %0 to %1

-Wsizeof-array-argument

sizeof on array function parameter will return size of %0 instead of %1

-Wsizeof-array-decay

sizeof on pointer operation will return size of %0 instead of %1

-Wsizeof-pointer-memaccess

'%0' call operates on objects of type %1 while the size is based on a " "different type %2

-Wsizeof-pointer-memaccess

argument to 'sizeof' in %0 call is the same pointer type %1 as the %select{destination|source}2 expected %3 or an explicit length

-Wsometimes-uninitialized

variable %0 is %select{used|captured}1 uninitialized whenever %select{'%3' condition is %select{true|false}4|'%3' loop %select{is entered|exits because its condition is false}4|'%3' loop %select{condition is true|exits because its condition is false}4|switch %3 is taken|its declaration is reached|%3 is called}2

-Wstatic-local-in-inline

non-constant static local variable in inline function may be different in different files

-Wstatic-self-init

static variable %0 is suspiciously used within its own initialization

-Wstrict-selector-match

multiple methods named %0 found

-Wstring-compare

result of comparison against %select{a string literal|@encode}0 is unspecified (use strncmp instead)

-Wstring-conversion

implicit conversion turns string literal into bool: %0 to %1

-Wstring-plus-char

adding %0 to a string pointer does not append to the string

-Wstring-plus-int

adding %0 to a string does not append to the string

-Wstrlcpy-strlcat-size

size argument in %0 call appears to be size of the source expected the size of the destination

-Wstrncat-size

the value of the size argument in 'strncat' is too large, might lead to a " "buffer overflow

-Wstrncat-size

size argument in 'strncat' call appears " "to be size of the source

-Wstrncat-size

the value of the size argument to 'strncat' is wrong

-Wsuper-class-method-mismatch

method parameter type %diff{|does not match super class method parameter type}0,1

-Wswitch

overflow converting case value to switch condition type (%0 to %1)

-Wswitch

case value not in enumerated type %0

-Wswitch

%0 enumeration values not handled in switch: %1, %2, %3...

-Wswitch

enumeration values %0 and %1 not handled in switch

-Wswitch

enumeration value %0 not handled in switch

-Wswitch

enumeration values %0, %1, and %2 not handled in switch

-Wswitch-enum

enumeration values %0, %1, and %2 not explicitly handled in switch

-Wswitch-enum

enumeration values %0 and %1 not explicitly handled in switch

-Wswitch-enum

%0 enumeration values not explicitly handled in switch: %1, %2, %3...

-Wswitch-enum

enumeration value %0 not explicitly handled in switch

-Wtautological-compare

comparison of %0 unsigned%select{| enum}2 expression is always %1

-Wtautological-compare

%select{self-|array }0comparison always evaluates to %select{false|true|a constant}1

-Wtautological-compare

comparison of unsigned%select{| enum}2 expression %0 is always %1

-Wtautological-constant-out-of-range-compare

comparison of constant %0 with expression of type %1 is always %select{false|true}2

-Wthread-safety-analysis

locking '%0' that is already locked

-Wthread-safety-analysis

cannot call function '%0' while mutex '%1' is locked

-Wthread-safety-analysis

%select{reading|writing}2 the value pointed to by '%0' requires locking %select{'%1'|'%1' exclusively}2

-Wthread-safety-analysis

unlocking '%0' that was not locked

-Wthread-safety-analysis

mutex '%0' is locked exclusively and shared in the same scope

-Wthread-safety-analysis

calling function '%0' requires %select{shared|exclusive}2 lock on '%1'

-Wthread-safety-analysis

%select{reading|writing}2 variable '%0' requires locking %select{'%1'|'%1' exclusively}2

-Wthread-safety-analysis

cannot resolve lock expression

-Wthread-safety-analysis

expecting mutex '%0' to be locked at the end of function

-Wthread-safety-analysis

mutex '%0' is not locked on every path through here

-Wthread-safety-analysis

%select{reading|writing}1 the value pointed to by '%0' requires locking %select{any mutex|any mutex exclusively}1

-Wthread-safety-analysis

%select{reading|writing}1 variable '%0' requires locking %select{any mutex|any mutex exclusively}1

-Wthread-safety-analysis

mutex '%0' is still locked at the end of function

-Wthread-safety-analysis

expecting mutex '%0' to be locked at start of each loop

-Wthread-safety-attributes

ignoring %0 attribute because its argument is invalid

-Wthread-safety-attributes

%0 attribute only applies to %select{fields and global variables|functions and methods|classes and structs}1

-Wthread-safety-attributes

%0 attribute requires arguments that are class type or point to class type type here is '%1'

-Wthread-safety-attributes

%0 attribute can only be applied in a context annotated with 'lockable' attribute

-Wthread-safety-attributes

%0 attribute requires arguments whose type is annotated with 'lockable' attribute type here is '%1'

-Wthread-safety-attributes

'%0' only applies to pointer types type here is %1

-Wthread-safety-beta

Thread safety beta warning.

-Wthread-safety-precise

%select{reading|writing}2 the value pointed to by '%0' requires locking %select{'%1'|'%1' exclusively}2

-Wthread-safety-precise

%select{reading|writing}2 variable '%0' requires locking %select{'%1'|'%1' exclusively}2

-Wthread-safety-precise

calling function '%0' requires %select{shared|exclusive}2 lock on '%1'

-Wtype-safety

this type tag was not designed to be used with this function

-Wtype-safety

specified %0 type tag requires a null pointer

-Wtype-safety

argument type %0 doesn't match specified '%1' type tag %select{that requires %3|}2

-Wundeclared-selector

undeclared selector %0 did you mean %1?

-Wundeclared-selector

undeclared selector %0

-Wundefined-inline

inline function %q0 is not defined

-Wundefined-internal

%select{function|variable}0 %q1 has internal linkage but is not defined

-Wundefined-reinterpret-cast

dereference of type %1 that was reinterpret_cast from type %0 has undefined behavior

-Wundefined-reinterpret-cast

reinterpret_cast from %0 to %1 has undefined behavior

-Wuninitialized

reference %0 is not yet bound to a value when used within its own initialization

-Wuninitialized

field %0 is uninitialized when used here

-Wuninitialized

block pointer variable %0 is uninitialized when captured by block

-Wuninitialized

variable %0 is uninitialized when used within its own initialization

-Wuninitialized

variable %0 is uninitialized when %select{used here|captured by block}1

-Wuninitialized

reference %0 is not yet bound to a value when used here

-Wunneeded-internal-declaration

%select{function|variable}0 %1 is not needed and will not be emitted

-Wunneeded-internal-declaration

'static' function %0 declared in header file should be declared 'static inline'

-Wunneeded-member-function

member function %0 is not needed and will not be emitted

-Wunreachable-code

will never be executed

-Wunsequenced

multiple unsequenced modifications to %0

-Wunsequenced

unsequenced modification and access to %0

-Wunsupported-friend

dependent nested name specifier '%0' for friend template declaration is not supported ignoring this friend declaration

-Wunsupported-friend

dependent nested name specifier '%0' for friend class declaration is not supported turning off access control for %1

-Wunsupported-visibility

target does not support 'protected' visibility using 'default'

-Wunused-comparison

%select{equality|inequality}0 comparison result unused

-Wunused-const-variable

unused variable %0

-Wunused-exception-parameter

unused exception parameter %0

-Wunused-function

unused function %0

-Wunused-label

unused label %0

-Wunused-member-function

unused member function %0

-Wunused-parameter

unused parameter %0

-Wunused-private-field

private field %0 is not used

-Wunused-property-ivar

ivar %0 which backs the property is not referenced in this property's accessor

-Wunused-result

ignoring return value of function declared with warn_unused_result attribute

-Wunused-value

ignoring return value of function declared with %0 attribute

-Wunused-value

expression result unused should this cast be to 'void'?

-Wunused-value

expression result unused

-Wunused-variable

unused variable %0

-Wunused-volatile-lvalue

expression result unused assign into a variable to force a volatile load

-Wused-but-marked-unused

%0 was marked unused but was used

-Wuser-defined-literals

user-defined literal suffixes not starting with '_' are reserved%select{ no literal will invoke this operator|}0

-Wvarargs

second parameter of 'va_start' not last named argument

-Wvarargs

'va_start' has undefined behavior with reference types

-Wvarargs

second argument to 'va_arg' is of promotable type %0 this va_arg has undefined behavior because arguments will be promoted to %1

-Wvector-conversion

incompatible vector types %select{%diff{assigning to |assigning to different types}0,1|%diff{passing |passing to parameter of different type}0,1|%diff{returning |returning from function with different return type}0,1|%diff{converting |converting between types}0,1|%diff{initializing |initializing with expression of different type}0,1|%diff{sending |sending to parameter of different type}0,1|%diff{casting |casting between types}0,1}2

-Wvexing-parse

parentheses were disambiguated as a function declaration

-Wvexing-parse

empty parentheses interpreted as a function declaration

-Wvisibility

declaration of %0 will not be visible outside of this function

-Wvisibility

redefinition of %0 will not be visible outside of this function

-Wvla

variable length array used

-Wvla-extension

variable length arrays are a C99 feature

-Wweak-template-vtables

explicit template instantiation %0 will emit a vtable in every translation unit

-Wweak-vtables

%0 has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit

Lexer Warnings
Warning
Message

-W#pragma-messages

%0

-W#warnings

%0

-W#warnings

%0

-Wambiguous-macro

ambiguous expansion of macro %0

-Wauto-import

treating #%select{include|import|include_next|__include_macros}0 as an import of module '%1'

-Wbackslash-newline-escape

backslash and newline separated by space

-Wc++11-compat

identifier after literal will be treated as a user-defined literal suffix in C++11

-Wc++11-compat

'%0' is a keyword in C++11

-Wc++98-c++11-compat

digit separators are incompatible with C++ standards before C++1y

-Wc++98-c++11-compat-pedantic

binary integer literals are incompatible with C++ standards before C++1y

-Wc++98-compat

raw string literals are incompatible with C++98

-Wc++98-compat

unicode literals are incompatible with C++98

-Wc++98-compat

universal character name referring to a control character is incompatible with C++98

-Wc++98-compat

'::' is treated as digraph ':' (aka '[') followed by ':' in C++98

-Wc++98-compat

using this character in an identifier is incompatible with C++98

-Wc++98-compat

specifying character '%0' with a universal character name is incompatible with C++98

-Wc++98-compat-pedantic

variadic macros are incompatible with C++98

-Wc++98-compat-pedantic

line number greater than 32767 is incompatible with C++98

-Wc++98-compat-pedantic

C++98 requires newline at end of file

-Wc++98-compat-pedantic

empty macro arguments are incompatible with C++98

-Wc99-compat

unicode literals are incompatible with C99

-Wc99-compat

%select{using this character in an identifier|starting an identifier with this character}0 is incompatible with C99

-Wcomment

'/*' within block comment

-Wcomment

escaped newline between */ characters at block comment end

-Wdisabled-macro-expansion

disabled expansion of recursive macro

-Wheader-guard

%0 is used as a header guard here, followed by #define of a different macro

-Wignored-attributes

unknown attribute '%0'

-Wincomplete-module

header '%0' is included in module '%1' but not listed in module map

-Wincomplete-umbrella

umbrella header for module '%0' does not include header '%1'

-Winvalid-token-paste

pasting formed '%0', an invalid preprocessing token, DefaultError

-Wmalformed-warning-check

__has_warning expected option name (e.g. "-Wundef")

-Wnewline-eof

no newline at end of file

-Wnull-character

null character ignored

-Wnull-character

null character(s) preserved in string literal

-Wnull-character

null character(s) preserved in character literal

-Wtrigraphs

ignored trigraph would end block comment

-Wtrigraphs

trigraph ignored

-Wundef

%0 is not defined, evaluates to 0

-Wunicode

universal character names are only valid in C99 or C++ treating as '' followed by identifier

-Wunicode

%0 used with no following hex digits treating as '' followed by identifier

-Wunicode

incomplete universal character name treating as '' followed by identifier

-Wunicode

universal character name refers to a surrogate character

-Wunknown-pragmas

unknown pragma ignored

-Wunknown-pragmas

pragma STDC FENV_ACCESS ON is not supported, ignoring pragma

-Wunused-macros

macro is not used

Parser Warnings
Warning
Message

-Warc-bridge-casts-disallowed-in-nonarc

'%0' casts have no effect when not using ARC

-Wattributes

unknown __declspec attribute %0 ignored

-Wavailability

'unavailable' availability overrides all other availability information

-Wc++11-compat

use of right-shift operator ('') in template argument will require parentheses in C++11

-Wc++11-compat

'auto' storage class specifier is redundant and incompatible with C++11

-Wc++98-c++11-compat

'decltype(auto)' type specifier is incompatible with C++ standards before C++1y

-Wc++98-compat

range-based for loop is incompatible with C++98

-Wc++98-compat

alias declarations are incompatible with C++98

-Wc++98-compat

in-class initialization of non-static data members is incompatible with C++98

-Wc++98-compat

defaulted function definitions are incompatible with C++98

-Wc++98-compat

rvalue references are incompatible with C++98

-Wc++98-compat

reference qualifiers on functions are incompatible with C++98

-Wc++98-compat

inline namespaces are incompatible with C++98

-Wc++98-compat

generalized initializer lists are incompatible with C++98

-Wc++98-compat

trailing return types are incompatible with C++98

-Wc++98-compat

enumeration types with a fixed underlying type are incompatible with C++98

-Wc++98-compat

alignof expressions are incompatible with C++98

-Wc++98-compat

'%0' keyword is incompatible with C++98

-Wc++98-compat

'decltype' type specifier is incompatible with C++98

-Wc++98-compat

deleted function definitions are incompatible with C++98

-Wc++98-compat

consecutive right angle brackets are incompatible with C++98 (use '> >')

-Wc++98-compat

static_assert declarations are incompatible with C++98

-Wc++98-compat

scoped enumerations are incompatible with C++98

-Wc++98-compat

lambda expressions are incompatible with C++98

-Wc++98-compat

attributes are incompatible with C++98

-Wc++98-compat

'alignas' is incompatible with C++98

-Wc++98-compat

noexcept specifications are incompatible with C++98

-Wc++98-compat

literal operators are incompatible with C++98

-Wc++98-compat

noexcept expressions are incompatible with C++98

-Wc++98-compat

'nullptr' is incompatible with C++98

-Wc++98-compat-pedantic

extra '' outside of a function is incompatible with C++98

-Wc++98-compat-pedantic

extern templates are incompatible with C++98

-Wc++98-compat-pedantic

commas at the end of enumerator lists are incompatible with C++98

-Wdangling-else

add explicit braces to avoid dangling else

-Wdeprecated

Use of 'long' with '__vector' is deprecated

-Wdeprecated-declarations

use of C-style parameters in Objective-C method declarations is deprecated

-Wdeprecated-register

'register' storage class specifier is deprecated

-Wduplicate-decl-specifier

duplicate '%0' declaration specifier

-Wextra-semi

extra ';' after member function definition

-Wextra-tokens

"extra tokens at the end of '#pragma omp %0' are ignored

-Wgcc-compat

GCC does not allow %0 attribute in this position on a function definition

-Wignored-attributes

attribute %0 ignored, because it is not attached to a declaration

-Wmicrosoft-exists

dependent %select{__if_not_exists|__if_exists}0 declarations are ignored

-Wmissing-selector-name

%0 used as the name of the previous parameter rather than as part of the selector

-Wsemicolon-before-method-body

semicolon before method body is ignored

-Wsource-uses-openmp

"unexpected '#pragma omp ...' in program

-Wstatic-inline-explicit-instantiation

ignoring '%select{static|inline}0' keyword on explicit template instantiation

Created by Mattt Thompson, and released under the NCSA License. Source code available on GitHub.
Generated from Clang's source code, through a combination of regular expressions, find & replace, and scripting.
Like Objective-C and swearing, but can't remember block syntax? There's a site for that, too.
Last updated March 06, 2015

你可能感兴趣的:(清理xcode警告,常用的ignored)