No warning for module global variable which is set but never used
webmaster
webmaster@defcon-cc.org
Wed Dec 9 12:02:21 GMT 2020
Ahh, ok. With these explanation I understand that the compiler does remove it because of optimatizion. This is somehow good and bad. Good that unused variable does not consume any memory. Bad that developer is not informed that variable can be removed.
-------- Ursprüngliche Nachricht --------Von: Jakub Jelinek <jakub@redhat.com> Datum: 09.12.20 11:00 (GMT+01:00) An: David Brown <david@westcontrol.com> Cc: webmaster <webmaster@defcon-cc.org>, gcc@gcc.gnu.org Betreff: Re: No warning for module global variable which is set but never used On Wed, Dec 09, 2020 at 10:50:22AM +0100, David Brown wrote:> I'd say that it makes sense to have such a warning as a natural> enhancement to the existing "-Wunused-but-set-variable" warning. But IThat is not really possible.The -Wunused-but-set-* warning works by having two bits for the DECL,TREE_USED and DECL_READ_P, where any uses mark the var TREE_USED and(conservatively) what can read the value marks it DECL_READ_Pand -Wunused-but-set-* is then variables that are TREE_USED and!DECL_READ_P. All this needs to be done early in the FE.For the static vars, the optimization to remove them altogether is donemuch later, and at that point the compiler doesn't know if it isn't usedbecause all the reads in the program have been optimized away vs. there werenone. Jakub
More information about the Gcc
mailing list