From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14457 invoked from network); 16 Mar 2000 01:36:09 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 16 Mar 2000 01:36:09 -0000 Received: (qmail 13246 invoked by alias); 16 Mar 2000 01:35:38 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 10152 Received: (qmail 13232 invoked from network); 16 Mar 2000 01:35:38 -0000 Subject: Re: command completion taking ages In-Reply-To: <200003151328.OAA18970@beta.informatik.hu-berlin.de> from Sven Wischnowsky at "Mar 15, 2000 02:28:07 pm" To: zsh-workers@sunsite.auc.dk Date: Thu, 16 Mar 2000 01:35:33 +0000 (GMT) X-Mailer: ELM [version 2.4ME+ PL66 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Message-Id: From: Zefram Sven Wischnowsky wrote: >+ (to = (long) i * M_ISIZE * (m_m[i] - m_f[i])), (cu += to)); This is undefined behaviour. Order of evaluation of function arguments is unspecified, and there are no intervening sequence points. -zefram diff -ru ../z.old/Src/mem.c Src/mem.c --- ../z.old/Src/mem.c Wed Mar 15 12:53:07 2000 +++ Src/mem.c Wed Mar 15 14:26:18 2000 @@ -1247,10 +1247,12 @@ } printf("\nsize\tmalloc\tfree\tdiff\ttotal\tcum\n"); for (i = 0, cu = 0; i < 1024; i++) - if (m_m[i] || m_f[i]) + if (m_m[i] || m_f[i]) { + to = (long) i * M_ISIZE * (m_m[i] - m_f[i]); printf("%ld\t%d\t%d\t%d\t%ld\t%ld\n", (long)i * M_ISIZE, m_m[i], m_f[i], m_m[i] - m_f[i], - (to = (long) i * M_ISIZE * (m_m[i] - m_f[i])), (cu += to)); + to, (cu += to)); + } if (m_m[i] || m_f[i]) printf("big\t%d\t%d\t%d\n", m_m[i], m_f[i], m_m[i] - m_f[i]); END