From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?Q?=C3=93scar_Fuentes?= Newsgroups: gmane.emacs.devel Subject: Re: warnings compiling emacs28 with gcc 12.1 Date: Thu, 28 Jul 2022 20:35:55 +0200 Message-ID: <87sfmlqe44.fsf@telefonica.net> References: <87h731vrmw.fsf@mail.jao.io> <83o7x9892n.fsf@gnu.org> <87bkt9rwkf.fsf@telefonica.net> <83lesd87e8.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="13572"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) To: emacs-devel@gnu.org Cancel-Lock: sha1:sgs6FQ0lKJgXoQhWz/pXzLgmMOk= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Jul 28 20:38:49 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oH8PH-0003JQ-G5 for ged-emacs-devel@m.gmane-mx.org; Thu, 28 Jul 2022 20:38:47 +0200 Original-Received: from localhost ([::1]:53010 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oH8PG-0007yh-Bm for ged-emacs-devel@m.gmane-mx.org; Thu, 28 Jul 2022 14:38:46 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:38720) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oH8Mi-0005YT-8S for emacs-devel@gnu.org; Thu, 28 Jul 2022 14:36:08 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]:37962) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oH8Me-0001gC-N0 for emacs-devel@gnu.org; Thu, 28 Jul 2022 14:36:07 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1oH8Mb-000AAx-7I for emacs-devel@gnu.org; Thu, 28 Jul 2022 20:36:01 +0200 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=ged-emacs-devel@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:292803 Archived-At: Eli Zaretskii writes: >> From: Óscar Fuentes >> Date: Thu, 28 Jul 2022 19:12:00 +0200 >> >> Eli Zaretskii writes: >> >> >> and there's another one about free that looks a bit scary: >> >> >> >> alloc.c: In function ‘lisp_free’: >> >> alloc.c:1052:3: warning: pointer ‘block’ used after ‘free’ [-Wuse-after-free] >> >> 1052 | mem_delete (mem_find (block)); >> >> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> >> alloc.c:1050:3: note: call to ‘free’ here >> >> 1050 | free (block); >> >> | ^~~~~~~~~~~~ >> > >> > Another nonsense. Look in mem_find, and you will see that it uses its >> > argument as just a number, it never dereferences it. >> >> The warning is not about dereferencing the pointer. > > What other problems could be caused by using it after freeing it? Lars mentioned the reason Paul gave when he fixed the warning. Another reason is that using a pointer after freeing the pointed object usually indicates the possibility of future problems, like a dereference. In general, such a pointer is meaningless as a proper pointer. If one is using it later as a key (which in itself is a questionable practice) the right thing is to convert it to a suitable integral type. Otherwise, it is advisable to forget about a pointer as soon as its pointed memory becomes invalid.