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