🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.lang.c
Article #15649

Re: post/pre incrementations et bugs de compilos

#15649
From: Jean-Marc Bourguet
Date: Wed, 14 Sep 2005 11:24
65 lines
3630 bytes
"Charlie Gordon" <news@chqrlie.org> writes:

> "Jean-Marc Bourguet" <jm@bourguet.org> wrote in message
> news:pxb8xy21qk8.fsf@news.bourguet.org...
> > "Antoine Leca" <root@localhost.invalid> writes:
> >
> > > En <news:pxbhdcq1z5u.fsf@news.bourguet.org>,
> > >     Jean-Marc Bourguet va escriure:
> > > > Autrement dit
> > > >    int f(int a, int b) { return a * b; }
> > > >    i = 0;
> > > >    k = f(i++, i++);
> > > > on sait qu'apres l'execution k vaut 0 et i 2 mais on ne sait pas si
> > > > l'appel c'est fait avec a=0 et b=1 ou bien a=1 et b=0.
> > >
> > > Ou m�me a=0 b=0.
> >
> > Oops, j'ai ete voir aux sources plutot que de me baser sur ma memoire
> > -- ce que je devrais faire quand il s'agit de points dont je ne me
> > sert de toute facon pas -- et contrairement a ce que je pensais il n'y
> > a pas de point de sequence entre les evaluations des arguments mais
> > uniquement avant l'appel de la fonction.
> 
> Exact, ce qui permet par exemple d'evaluer en parall�le sur les
> architectures qui le permettent les expressions des param�tres de f.

Ce n'est permis evidemment que quand ces parametres sont des
expressions sans appels de fonction, sinon il y a quelques points de
sequencement en plus (mais leur ordre relatif n'est pas fixe).  Pour
reprendre mon exemple:

int incr(int* i) {
   return (*i)++;
}
i = 0;
k = f(incr(i), incr(i));

ici on est sur que l'appel a f se fait avec a=0 et b=1 ou a=1 et b=0.
(Ou alors il y a autre chose qui m'echappe).

Plus subtil, est-ce que

k = f(incr(i), i++);

a les memes garanties?  (Pas le temps de faire un exegese pour essayer
d'apporter une reponse).  Naturellement, je laisse

int j = 0;
incr(int*i) { j++; return (*i)++;}
k = f(incr(i), i++ + j++);

a ceux qui veulent reellement s'amuser.

Une chose qui m'echappe c'est un exemple realiste ou ca apporte un
gain et ou la regle du "as-if" ne permet pas le meme gain.  Il faut
avouer que j'ai le meme probleme pour l'ordre d'evaluation des
parametres (si j'admets que ca simplifie un peu le compilateur, je ne
percois pas de gain en performance).

A+

-- 
Jean-Marc
FAQ de fclc:       http://www.isty-info.uvsq.fr/~rumeau/fclc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Technical Details
Message-ID: <pxbmzmfyjrf.fsf@news.bourguet.org>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!nx02.iad01.newshosting.com!newshosting.com!newsfeed.icl.net!newsfeed.fjserv.net!news-lond.gip.net!news.gsl.net!gip.net!news.tele.dk!news.tele.dk!small.news.tele.dk!proxad.net!infeed-4.proxad.net!news2-1.free.fr!not-for-mail
References: <43207e0a$0$162$a3f2974a@nnrp1.numericable.fr> <dfrnh7$j63$1@news.hispeed.ch> <dfrvtp$j9u$1@shakotay.alphanet.ch> <4321fb01$0$21296$7a628cd7@news.club-internet.fr> <mn.52367d59df2fc1aa.31483@laposte.net> <dg23un$9f5$1@reader1.imaginet.fr> <pxbhdcq1z5u.fsf@news.bourguet.org> <dg3iss$p5s$1@shakotay.alphanet.ch> <pxb8xy21qk8.fsf@news.bourguet.org> <dg8pns$gto$1@reader1.imaginet.fr>

Show Full Headers
Complete Article Headers
X-Google-Thread: f9822,d07db62495be07f8
X-Google-Attributes: gidf9822,public
X-Google-Language: FRENCH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!nx02.iad01.newshosting.com!newshosting.com!newsfeed.icl.net!newsfeed.fjserv.net!news-lond.gip.net!news.gsl.net!gip.net!news.tele.dk!news.tele.dk!small.news.tele.dk!proxad.net!infeed-4.proxad.net!news2-1.free.fr!not-for-mail
Newsgroups: fr.comp.lang.c
Subject: Re: post/pre incrementations et bugs de compilos
References: <43207e0a$0$162$a3f2974a@nnrp1.numericable.fr> <dfrnh7$j63$1@news.hispeed.ch> <dfrvtp$j9u$1@shakotay.alphanet.ch> <4321fb01$0$21296$7a628cd7@news.club-internet.fr> <mn.52367d59df2fc1aa.31483@laposte.net> <dg23un$9f5$1@reader1.imaginet.fr> <pxbhdcq1z5u.fsf@news.bourguet.org> <dg3iss$p5s$1@shakotay.alphanet.ch> <pxb8xy21qk8.fsf@news.bourguet.org> <dg8pns$gto$1@reader1.imaginet.fr>
From: Jean-Marc Bourguet <jm@bourguet.org>
Message-ID: <pxbmzmfyjrf.fsf@news.bourguet.org>
Date: 14 Sep 2005 13:24:36 +0200
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Lines: 65
Organization: Guest of ProXad - France
NNTP-Posting-Date: 14 Sep 2005 13:24:36 MEST
NNTP-Posting-Host: 62.189.36.28
X-Trace: 1126697076 news2-1.free.fr 14384 62.189.36.28:11921
X-Complaints-To: abuse@proxad.net