invoke.texi: Document new switches -Wno-shadow-ivar, -fno-local-ivars and -fivar-visibility.

2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>

	    * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
	    -fno-local-ivars and -fivar-visibility.
	    * c-family/c.opt: Make -Wshadow also implicitly enable
	    -Wshadow-ivar.

testsuite:
	    * objc.dg/shadow-1.m: New test.
	    * objc.dg/shadow-2.m: New test.
	    * objc.dg/ivar-scope-1.m: New test.
	    * objc.dg/ivar-scope-2.m: New test.
	    * objc.dg/ivar-scope-3.m: New test.
	    * objc.dg/ivar-scope-4.m: New test.
	    * objc.dg/ivar-visibility-1.m: New test.
	    * objc.dg/ivar-visibility-2.m: New test.
	    * objc.dg/ivar-visibility-3.m: New test.
	    * objc.dg/ivar-visibility-4.m: New test.

From-SVN: r210333
This commit is contained in:
Dimitris Papavasiliou 2014-05-12 19:12:27 +00:00 committed by Mike Stump
parent 83afe9ef89
commit dff8943f54
4 changed files with 51 additions and 6 deletions

View File

@ -1,3 +1,10 @@
2014-05-12 Dimitris Papavasiliou <dpapavas@gmail.com>
* doc/invoke.texi: Document new switches -Wno-shadow-ivar,
-fno-local-ivars and -fivar-visibility.
* c-family/c.opt: Make -Wshadow also implicitly enable
-Wshadow-ivar.
2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
* doc/tm.texi: Remove reference to deleted macro.

View File

@ -690,7 +690,7 @@ ObjC ObjC++ Var(warn_selector) Warning
Warn if a selector has multiple methods
Wshadow-ivar
ObjC ObjC++ Var(warn_shadow_ivar) Init(1) Warning
ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
Warn if a local declaration hides an instance variable
Wsequence-point

View File

@ -216,6 +216,8 @@ Objective-C and Objective-C++ Dialects}.
-fobjc-gc @gol
-fobjc-nilcheck @gol
-fobjc-std=objc1 @gol
-fno-local-ivars @gol
-fivar-visibility=@var{public|protected|private|package} @gol
-freplace-objc-classes @gol
-fzero-link @gol
-gen-decls @gol
@ -262,7 +264,7 @@ Objective-C and Objective-C++ Dialects}.
-Wparentheses -Wpedantic-ms-format -Wno-pedantic-ms-format @gol
-Wpointer-arith -Wno-pointer-to-int-cast @gol
-Wredundant-decls -Wno-return-local-addr @gol
-Wreturn-type -Wsequence-point -Wshadow @gol
-Wreturn-type -Wsequence-point -Wshadow -Wno-shadow-ivar @gol
-Wsign-compare -Wsign-conversion -Wfloat-conversion @gol
-Wsizeof-pointer-memaccess @gol
-Wstack-protector -Wstack-usage=@var{len} -Wstrict-aliasing @gol
@ -2977,6 +2979,22 @@ for individual class implementations to be modified during program execution.
The GNU runtime currently always retains calls to @code{objc_get_class("@dots{}")}
regardless of command-line options.
@item -fno-local-ivars
@opindex fno-local-ivars
@opindex flocal-ivars
By default instance variables in Objective-C can be accessed as if
they were local variables from within the methods of the class they're
declared in. This can lead to shadowing between instance variables
and other variables declared either locally inside a class method or
globally with the same name. Specifying the @option{-fno-local-ivars}
flag disables this behavior thus avoiding variable shadowing issues.
@item -fivar-visibility=@var{public|protected|private|package}
@opindex fivar-visibility
Set the default instance variable visibility to the specified option
so that instance variables declared outside the scope of any access
modifier directives default to the specified visibility.
@item -gen-decls
@opindex gen-decls
Dump interface declarations for all classes seen in the source file to a
@ -4360,10 +4378,17 @@ Do not warn whenever an @samp{#else} or an @samp{#endif} are followed by text.
@item -Wshadow
@opindex Wshadow
@opindex Wno-shadow
Warn whenever a local variable or type declaration shadows another variable,
parameter, type, or class member (in C++), or whenever a built-in function
is shadowed. Note that in C++, the compiler warns if a local variable
shadows an explicit typedef, but not if it shadows a struct/class/enum.
Warn whenever a local variable or type declaration shadows another
variable, parameter, type, class member (in C++), or instance variable
(in Objective-C) or whenever a built-in function is shadowed. Note
that in C++, the compiler warns if a local variable shadows an
explicit typedef, but not if it shadows a struct/class/enum.
@item -Wno-shadow-ivar @r{(Objective-C only)}
@opindex Wno-shadow-ivar
@opindex Wshadow-ivar
Do not warn whenever a local variable shadows an instance variable in an
Objective-C method.
@item -Wlarger-than=@var{len}
@opindex Wlarger-than=@var{len}

View File

@ -1,3 +1,16 @@
2014-05-12 Dimitris Papavasiliou <dpapavas@gmail.com>
* objc.dg/shadow-1.m: New test.
* objc.dg/shadow-2.m: New test.
* objc.dg/ivar-scope-1.m: New test.
* objc.dg/ivar-scope-2.m: New test.
* objc.dg/ivar-scope-3.m: New test.
* objc.dg/ivar-scope-4.m: New test.
* objc.dg/ivar-visibility-1.m: New test.
* objc.dg/ivar-visibility-2.m: New test.
* objc.dg/ivar-visibility-3.m: New test.
* objc.dg/ivar-visibility-4.m: New test.
2014-05-12 Tobias Burnus <burnus@net-b.de>
PR fortran/60127