Commit dff8943f by Dimitris Papavasiliou Committed by Mike Stump

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
parent 83afe9ef
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> 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
* doc/tm.texi: Remove reference to deleted macro. * doc/tm.texi: Remove reference to deleted macro.
......
...@@ -690,7 +690,7 @@ ObjC ObjC++ Var(warn_selector) Warning ...@@ -690,7 +690,7 @@ ObjC ObjC++ Var(warn_selector) Warning
Warn if a selector has multiple methods Warn if a selector has multiple methods
Wshadow-ivar 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 Warn if a local declaration hides an instance variable
Wsequence-point Wsequence-point
......
...@@ -216,6 +216,8 @@ Objective-C and Objective-C++ Dialects}. ...@@ -216,6 +216,8 @@ Objective-C and Objective-C++ Dialects}.
-fobjc-gc @gol -fobjc-gc @gol
-fobjc-nilcheck @gol -fobjc-nilcheck @gol
-fobjc-std=objc1 @gol -fobjc-std=objc1 @gol
-fno-local-ivars @gol
-fivar-visibility=@var{public|protected|private|package} @gol
-freplace-objc-classes @gol -freplace-objc-classes @gol
-fzero-link @gol -fzero-link @gol
-gen-decls @gol -gen-decls @gol
...@@ -262,7 +264,7 @@ Objective-C and Objective-C++ Dialects}. ...@@ -262,7 +264,7 @@ Objective-C and Objective-C++ Dialects}.
-Wparentheses -Wpedantic-ms-format -Wno-pedantic-ms-format @gol -Wparentheses -Wpedantic-ms-format -Wno-pedantic-ms-format @gol
-Wpointer-arith -Wno-pointer-to-int-cast @gol -Wpointer-arith -Wno-pointer-to-int-cast @gol
-Wredundant-decls -Wno-return-local-addr @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 -Wsign-compare -Wsign-conversion -Wfloat-conversion @gol
-Wsizeof-pointer-memaccess @gol -Wsizeof-pointer-memaccess @gol
-Wstack-protector -Wstack-usage=@var{len} -Wstrict-aliasing @gol -Wstack-protector -Wstack-usage=@var{len} -Wstrict-aliasing @gol
...@@ -2977,6 +2979,22 @@ for individual class implementations to be modified during program execution. ...@@ -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{}")} The GNU runtime currently always retains calls to @code{objc_get_class("@dots{}")}
regardless of command-line options. 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 @item -gen-decls
@opindex gen-decls @opindex gen-decls
Dump interface declarations for all classes seen in the source file to a 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. ...@@ -4360,10 +4378,17 @@ Do not warn whenever an @samp{#else} or an @samp{#endif} are followed by text.
@item -Wshadow @item -Wshadow
@opindex Wshadow @opindex Wshadow
@opindex Wno-shadow @opindex Wno-shadow
Warn whenever a local variable or type declaration shadows another variable, Warn whenever a local variable or type declaration shadows another
parameter, type, or class member (in C++), or whenever a built-in function variable, parameter, type, class member (in C++), or instance variable
is shadowed. Note that in C++, the compiler warns if a local variable (in Objective-C) or whenever a built-in function is shadowed. Note
shadows an explicit typedef, but not if it shadows a struct/class/enum. 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} @item -Wlarger-than=@var{len}
@opindex Wlarger-than=@var{len} @opindex Wlarger-than=@var{len}
......
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> 2014-05-12 Tobias Burnus <burnus@net-b.de>
PR fortran/60127 PR fortran/60127
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment