From owner-man-jp-reviewer@jp.FreeBSD.org Sun Apr  7 12:48:19 2002
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) id g373mJK82841;
	Sun, 7 Apr 2002 12:48:19 +0900 (JST)
	(envelope-from owner-man-jp-reviewer@jp.FreeBSD.org)
Received: from asahi-net.or.jp (p45-dna10urasirohat.saitama.ocn.ne.jp [210.190.196.173])
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) with ESMTP/inet id g373mAv82834
	for <man-jp-reviewer@jp.FreeBSD.org>; Sun, 7 Apr 2002 12:48:11 +0900 (JST)
	(envelope-from ht5t-fry@asahi-net.or.jp)
Received: from localhost (localhost.tf.or.jp [127.0.0.1])
	by galois.tf.or.jp (8.10.0/3.7W-Teddy-00032101) with ESMTP id g373kLp13719;
	Sun, 7 Apr 2002 12:46:21 +0900 (JST)
To: man-jp-reviewer@jp.FreeBSD.org
From: Tetsuro Teddy FURUYA
 (=?iso-2022-jp?B?GyRCOEVDKxsoQiAbJEJFL086GyhC?=) <ht5t-fry@asahi-net.or.jp>
In-Reply-To: Your message of "Sun, 07 Apr 2002 01:00:05 +0900"
	<200204061558.g36Fw4Z25591@mail.cb3.so-net.ne.jp>
References: <200204061558.g36Fw4Z25591@mail.cb3.so-net.ne.jp>
X-Mailer: Mew version 1.93 on Emacs 19.28 / Mule 2.3 (SUETSUMUHANA)
Mime-Version: 1.0
Content-Type: Multipart/Mixed;
	boundary="--Next_Part(Sun_Apr__7_12:44:24_2002_945)--"
Content-Transfer-Encoding: 7bit
Message-Id: <20020407124621R.ht5t-fry@galois.tf.or.jp>
Date: Sun, 07 Apr 2002 12:46:21 +0900
X-Dispatcher: imput version 980905(IM100)
Lines: 153
Reply-To: man-jp-reviewer@jp.FreeBSD.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+020405
X-Sequence: man-jp-reviewer 4045
Subject: [man-jp-reviewer 4045] Re: (man3) setjmp.3
Errors-To: owner-man-jp-reviewer@jp.FreeBSD.org
Sender: owner-man-jp-reviewer@jp.FreeBSD.org
X-Originator: ht5t-fry@asahi-net.or.jp

----Next_Part(Sun_Apr__7_12:44:24_2002_945)--
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit


$B8EC+(B $B$G$9!#(B

$B<+F0JQ?t$,$I$&2u$l$k$+9M$($F$_$^$7$?!#(B
$B%9%?%C%/$,4,La$C$F%m!<%+%kJQ?t$,2u$l$kNc$r=q$$$F$_$^$7$?!#(B

$B%3%s%Q%$%k$O(B
gcc -g -lc -o multi_setjmp multi_setjmp.c
$B$H$7$^$9!#(B

$B;d$N4D6-$G<B9T$7$?Nc$G$O!"<!$N$h$&$K$J$j$^$9!#(B

tfuruya@galois$ ./multi_setjmp
After _setjmp usr1: 3
After setjmp No.1 usr1: 3, usr2: 7, val1: 0, val2: 0
After _setjmp ret1: 1, usr1: 3
After setjmp No.2 usr1: 3, usr2: 5733, val1: 0, val2: 0
tfuruya@galois$

$B$3$3$G!"(Busr2 $B$NCM$,GK2u$5$l$F$$$^$9!#(B
$B$3$3$G$$$C$F$$$kGK2u$H$O!"$3$NMM$J$b$N$G$"$k$H9M$($F$$$$$N$G$7$g$+!#(B

---
Tetsuro Teddy FURUYA ($B8EC+(B $BE/O:(B) <ht5t-fry@asahi-net.or.jp>
===

From: Yoshiteru Kageyama <yt-kage@cb3.so-net.ne.jp>
Subject: [man-jp-reviewer 4042] Re: (man3) setjmp.3
Date: Sun, 07 Apr 2002 01:00:05 +0900
Message-ID: <200204061558.g36Fw4Z25591@mail.cb3.so-net.ne.jp>

>  $B0~;3$G$9!#(B
> $B8EC+$5$s!"7'C+$5$s!"%3%a%s%H$"$j$,$H$&$4$6$$$^$9!#(B
> $B$J$k$[$I!"(BJIS C $B$K5,Dj$,$"$k$N$G$9$M!D!#D4$Y$k$Y$-$H$3$m$O(B
> $B$?$/$5$s$"$k$H$$$&$3$H$G$9$M!#BgJQ$G$9$,!"D%$j9g$$$O$"$j(B
> $B$^$9!#(B
> 
> At Sat, 06 Apr 2002 22:34:29 +0900,
> Tetsuro Teddy FURUYA ($B8EC+(B $BE/O:(B) wrote:
> 
> > $B86J8(B: automatic storage invocation duration
> > JISC: automatic storage duration
> > $BLu8l(B: $B<+F05-210h4|4V(B
> > 
> > invocation $B$,F~$C$F$$$k(B/$B$$$J$$$H$$$&0c$$$O$"$C$F$b!"(B
> > $BI=8=$7$F$$$k$b$N$OF1$8$b$N$G$9$M!#(B
> 
> > > longjmp $B$r8F$S=P$7$?8e$N%*%V%8%'%/%H(B($BJQ?t(B)$B$NCM$O$I$&$J$k$+$r8@$C$F$$$k(B
> > > $B$N$@$H;W$$$^$9!#(Blongjmp $B$9$k$H!"(Bsetjmp $B$N;~E@$^$G%9%?%C%/$r4,$-La$7$^(B
> > > $B$9$+$i!"(Blongjmp $B8F$S=P$7D>A0$^$G$=$l$^$G%"%/%;%9$G$-$F$$$?(B auto $BJQ?t$N(B
> > > $BCM$,ITDj$K$J$j$^$9!#$=$NJU$N$3$H$r8@$C$F$$$k$N$G$7$g$&!#(B
> 
> $B$J$k$[$I!#3N$+$K$=$&$J$j$^$9$M!#$G!"$=$N8e$NJ}$K=P$F$/$k!"(B
> $B!V(Bsetjmp $B$r8F$s$@4X?t(B($B86J8$G$O%k!<%A%s$H=q$$$F$"$j$^$9$,(B)$B$+$i(B
> $BI|5"$7$F$7$^$C$?$"$H$G$OBP1~$9$k(Blongjmp$B$r8F$Y$J$$!W$N$b!"$9$G$K(B
> $B4X?t$+$iI|5"$7$?8e$J$N$G(Bauto$BJQ?t$,;2>H$G$-$J$$ITDj$J$b$N$K$J$C$F(B
> $B$$$k$+$i$J$N$G$9$M!D!#$G!":#2s$NLu8l$G$"$k!V<+F05-210h4|4V!W$H(B
> $B$$$&$N$O!"(Bauto $B$G$H$i$l$F$$$kJQ?t(B($B%*%V%8%'%/%H(B)$B$N%9%3!<%W$N(B
> $B$3$H$r8@$C$F$$$k$h$&$J$b$N$G$"$k$H!#$=$l$r5-21AuCVB&$+$i8+$l$P(B
> $B!V$I$N$/$i$$$N4|4V5-21NN0h$KJQ?t$r;}$C$F$$$k$Y$-$+!W$rI=$9$N$G(B
> $B$3$&$$$&=B$$(B;-)$B8@$$2s$7$K$J$k!D$H$$$&$3$H$J$s$G$7$g$&$+$M!#(B
> $BF,$N$J$+$G$D$8$D$^$,9g$C$F$-$^$7$?!#(B
> 
> $B$G!"Lu8l$K$D$$$F$O!"(BJIS C $B$rB:=E$7$F(B ;-)
> .\" WORD: automatic storage invocation duration $B<+F05-210h4|4V(B [JIS C]
> $B$H$$$&$N$r%X%C%@$KF~$l$F$*$-$^$9!#(B


----Next_Part(Sun_Apr__7_12:44:24_2002_945)--
Content-Type: Text/Plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment; filename=multi_setjmp.c

/* Example of the broken value of object
 * of automatic storage invocation duration in setjmp and longjmp call.
 *
 * The value of usr2 will be broken.
 *
 * Posted to <man-jp-reviewer@jp.FreeBSD.org>
 * by Tetsuro Furuya <ht5t-fry@asahi-net.or.jp>, April 7, 2002.
 *
 */

#include <stdio.h>
#include <setjmp.h>


int flg;
jmp_buf jbuf1;
int usr1;
int val1;
int ret1;
jmp_buf jbuf2;
int val2;

main()
{

  void pr_longjmp1();
  void pr_longjmp2();

  usr1 =3D 3;
  if((ret1=3D_setjmp(jbuf1)) =3D=3D 0) {
    flg =3D 1;
    printf("After _setjmp usr1: %d\n", usr1);
  }
  else {
    printf("After _setjmp ret1: %d, usr1: %d\n", ret1, usr1);
    if ( flg =3D=3D 2 ) {
      exit (0);
    }
    flg =3D 2;
  }

  pr_longjmp1();
}

pr_longjmp1()
{
  int val2;
  int ret2;
  int usr2;

  if((val2 =3D setjmp( jbuf2 )) =3D=3D 0) {
    if(flg =3D=3D 1) {
      usr2=3D7;
      printf("After setjmp No.1 usr1: %d, usr2: %d, val1: %d, val2: %d\n=
",
	     usr1, usr2, val1, val2);
      _longjmp(jbuf1, val1);
    }
  }
  else {
    return;
  }

  printf("After setjmp No.2 usr1: %d, usr2: %d, val1: %d, val2: %d\n",
	 usr1, usr2, val1, val2);

  pr_longjmp2();
}

pr_longjmp2()
{
  longjmp(jbuf2, val2);
}


----Next_Part(Sun_Apr__7_12:44:24_2002_945)----
