From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.bugs Subject: bug#8546: fix for Emacs pseudovector incompatibility with GCC 4.6.0 Date: Mon, 25 Apr 2011 11:05:20 -0300 Message-ID: References: <4DB525C6.5020705@cs.ucla.edu> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1303740466 28435 80.91.229.12 (25 Apr 2011 14:07:46 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 25 Apr 2011 14:07:46 +0000 (UTC) Cc: 8546@debbugs.gnu.org To: Paul Eggert Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Apr 25 16:07:40 2011 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QEMRw-00019C-DM for geb-bug-gnu-emacs@m.gmane.org; Mon, 25 Apr 2011 16:07:40 +0200 Original-Received: from localhost ([::1]:47391 helo=lists2.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QEMRv-00076s-Tb for geb-bug-gnu-emacs@m.gmane.org; Mon, 25 Apr 2011 10:07:39 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:52517) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QEMRs-00073X-LX for bug-gnu-emacs@gnu.org; Mon, 25 Apr 2011 10:07:37 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QEMRr-0001du-2S for bug-gnu-emacs@gnu.org; Mon, 25 Apr 2011 10:07:36 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:43734) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QEMRq-0001dk-US for bug-gnu-emacs@gnu.org; Mon, 25 Apr 2011 10:07:34 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1QEMQL-0007pl-Va; Mon, 25 Apr 2011 10:06:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Monnier Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 25 Apr 2011 14:06:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 8546 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 8546-submit@debbugs.gnu.org id=B8546.130374033230076 (code B ref 8546); Mon, 25 Apr 2011 14:06:01 +0000 Original-Received: (at 8546) by debbugs.gnu.org; 25 Apr 2011 14:05:32 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QEMPr-0007p2-TL for submit@debbugs.gnu.org; Mon, 25 Apr 2011 10:05:32 -0400 Original-Received: from fencepost.gnu.org ([140.186.70.10]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QEMPq-0007os-J9 for 8546@debbugs.gnu.org; Mon, 25 Apr 2011 10:05:31 -0400 Original-Received: from 121-249-126-200.fibertel.com.ar ([200.126.249.121]:34713 helo=ceviche.home) by fencepost.gnu.org with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1QEMPk-00074G-69; Mon, 25 Apr 2011 10:05:24 -0400 Original-Received: by ceviche.home (Postfix, from userid 20848) id 9E25E6618A; Mon, 25 Apr 2011 11:05:20 -0300 (ART) In-Reply-To: <4DB525C6.5020705@cs.ucla.edu> (Paul Eggert's message of "Mon, 25 Apr 2011 00:41:58 -0700") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Mon, 25 Apr 2011 10:06:01 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:45996 Archived-At: > The patch is attached. It's against my copy of Emacs, which has a few > other fixes that I haven't had time to merge to the trunk yet. But it > should give a good feel for what's involved. [ Please don't compress patches for review. 57KB is not that large. ] Thanks for tackling this problem. A few questions/comments on your patch (which I haven't reviewed completely): +struct vector_header I'd call it vectorlike_header. + { + EMACS_UINT size; + union { + struct buffer *buffer; + struct Lisp_Vector *vector; + } next; + }; Why do you need to handle buffers specially here? That sounds wrong. +#define XVECTOR_SIZE(a) (XVECTOR (a)->header.size + 0) why not use ASIZE? +#define XVECTOR_HEADER_SIZE(a) (((struct vector_header *) XPNTR (a))->size + 0) why do we need this variant with this weird set of type casts? + * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a + special case. Why does Lisp_Subr need to be a special case (IIUC this applies to XSETTYPED_PSEUDOVECTOR and TYPED_PSEUDOVECTORP as well). +#define XSETPVECTYPESIZE(v, code, sizeval) \ + ((v)->header.size = PSEUDOVECTOR_FLAG | (code) | (sizeval)) Sounds good. Stefan