Path: utzoo!telly!ddsw1!lll-winken!killer!mit-eddie!bloom-beacon!tut.cis.ohio-state.edu!NSS.CS.UCL.AC.UK!gordon%stats.ucl.ac.uk
From: gordon%stats.ucl.ac.uk@NSS.CS.UCL.AC.UK (Gordon Joly Statistics UCL)
Newsgroups: gnu.g++.bug
Subject: Is "class x ..." wrong and stuff like that?
Message-ID: <8811291701.AA01022@prep.ai.mit.edu>
Date: 29 Nov 88 16:40:29 GMT
Sender: daemon@tut.cis.ohio-state.edu
Distribution: gnu
Organization: GNUs Not Usenet
Lines: 181


These tests come from Paul Otto. I have to change the name of the class from
x to something else in g++ (1.27). I run SunOS 3.4 on Sun-3/160, for example

karl:/stats/staff/karl/gordon/BAIES[87] g++ -O -g -v -c wood.cc
g++ version 1.27.0
 /usr/ucl/lib/gcc-cpp+ -v -undef -D__GNU__ -D__GNUG__ -Dmc68000 -Dsun -Dunix -D__OPTIMIZE__ wood.cc /tmp/cca02020.cpp
GNU CPP version 1.27.0
 /usr/ucl/lib/gcc-c++ /tmp/cca02020.cpp -quiet -dumpbase wood.cc -opt -version -G -o /tmp/cca02020.s
GNU C++ version 1.27.0 (68k, MIT syntax) compiled by GNU C version 1.28.
 as -mc68020 /tmp/cca02020.s -o wood.o

Gordon.

Surface mail: Dr. G.C.Joly, Department of Statistical Science,
      University College London, Gower Street, LONDON WC1E 6BT, U.K.
E-mail:  					   | Tel: +44 1 387 7050
 JANET (U.K. network) gordon@uk.ac.ucl.stats       |      extension 3636
       (Arpa/Internet form: gordon@stats.ucl.ac.uk)| FAX: +44 1 387 8057
Relays: ARPA @nss.cs.ucl.ac.uk                     |
        EAN: @ean-relay.ac.uk                      |
	CSNET: %nss.cs.ucl.ac.uk@relay.cs.net      |
        BITNET: %ukacrl.bitnet@cunyvm.cuny.edu, @ac.uk
        EARN: @ukacrl.bitnet, @AC.UK, @uk.ac.earn-relay
By uucp/Usenet: ....!uunet!mcvax!ukc!stats.ucl.ac.uk!gordon

 A simple class (x) is defined which has a full set of constructors,
 initializers etc defined (see page 180 of Stroustup's book), so that bitwise
 copying of objects is "completely avoided" (p 180 op cit), and so that
 the destructor should always be called before something goes out of
 scope/ the program ends.
 This class does two things:
 	(i) it prints a message on standard error every time a class
 		routine is called, printing "this" for the call;
 	(ii) it uses the class to store the value of "this" when an
 		instance/variable of the class is created, and
 		prints an error if any instance is later found to have
 		moved.
 
 Then there is a calling program (testing_prog.c) which uses this class
 in a few ways known to be troublesome.  If bitwise copying occurs, then
 an error should be detected & printed.  (The Makefile will put a copy
 in "errors-prob_bitwise_copying".)
 
 A separate program (check.awk) is used to check the output of the
 program to ensure that destructors are called exactly once for each
 constructor, & so forth.  (See the comments at the beginning of
 check.awk.)  Any errors are put into "errors-sequencing".



 uudecode | uncompress | tar xvf - (gives a directory)

begin 664 gbugs.tar.Z
M'YV03<*L*6,F#9LR !(J7,BPH<.'$"-*G$@1 (B+-FC0 &%1QHP8,61PO CB
MA@T;(TF2C&%CAD@0-#R:G.'R(\D:&6U8K,BSI\^?0(,*'4JTJ-&C2),JG3@"
M!)TW(,;(*1.&3AD0)D#(J>,&A(@Q;]S,H;-US%,Y+\B4&5OVK BG:^F ,/-&
M#H@A*U8H&+$7!!6H6[M:'Q7T+7C039@V:^?6!5%&CIRZC2B?D3VE2!3;KF&WF%,F3ITR;L8H%SVD]IF\"<(G:(KX*ATT5X\XJ7(W
M;]0W;> 8;"UZ,)TY.A+85_Z%]YLS4:$WQAHNA'''&@KH%Q=__@$H@P\@D(#"
M;$.D  *$8X3!!AO\46<==F.4D6 :9H"P!0C313@A;19VL8-3Z'65H5P24IC"
MBV7@$1P(,>#(!G5:M:&BC2\6E&!3&6ZH' @>!EC&@"!=G32."&@-[*FHUP]LO;C57((>6B@1:9Q9)!T*GEG
MGM7M&6*"3Z(!U5LM@ #%F=1M:1\(:8J0H +[C=J@#B#@X0(:O;H 5:YX-BAL
M@A)V9V&R1C 1Q!%36-C"L OJ^AJ Q/9WK;#!OE%?M<5N^P:OO@*;K;%CC($L
M"LJJ.$2SST:+XAAPC<7@MNF"\" (:7WY@AMU;#A>E&>X4==59LKAQI)MS'%&
M; KX.FX"Y0:;[KKM,NLLM-+2Z^O%"HQQ4!ANZ)!@IFZ"H *W*[M +UA3A6HG
MGGJ">%6-+ X)J6@BOR&&&*WE)S)5;IPL9 LEGGNM DLU[31$4A01!!%-%/$%
M&V\D^?360I&4T48=?1122B6=1+9*,=00PT8P>702#";=<(/7,M10PTY-52![$
M$"Y4L01)8(8!PA15N5&&7,.==WH35$"A@$JT7Z0E"&&$ 8,,,MA0J0PY@! $
M;R#@@ ./-N@P0_!"3$&% G_Q*L(1=9$1%@A*O%%E89E7=1D=:3A>6!5#,/$6
M#V=4'Q80=>1LN##6YCZ$/ :ON@! 60HPT 0) $$: C#X:*$
MF; @S#)P8B!FSE.5]XB%+)$[2VRRHA:VY!$VN(L9S#A#ARK)#'$NN$@22I0'
M,:%1C5<)0[K6,H?"8.T-""+C"QSW@JE0)PQR@-,+9.""&A#A!66HPVO@$(87
M8/$IF\R+"\10AX=M\BQ?(,-9%%#'18$@:E/[0M4*$Y"!D.8J66G0'-%CI:F8
MH35.>4,B3Z>J@)%! 4#3"E7F$)8PB,&0K*3,04 83:UP!4;FB0MF6D5+N1BL
M/0L$2WSF(P=WZI-2D 
MC0*DR 8%M.QE!Y-9ATIELR'E;%,O[=G/@I: H9',:"E3VG^8%KBV3H2D RK0
M@=S:5J]I9"0> 8E(+'(1DZ"$K[1S&]MB,H.3Q& &-UC;3>1V-X[0];&0C:QD
M)TM9AC1E"'&:TF+@8-'%P2O60QERM "TZ &0W5"W(M$P-$YO*4'(.!!&,A 
M!D_.H7Z^[4L0NG*;U4C)@G6QRI9(5!BZV(5D5CJ#X1@UW>I2$J%A#"[X5"AN>/8"V+BU(TE&QB!XY
M1+A.*LC,62Z\(1#T005]85=8_-@9NT@X2MEA0QWZB.+@I"%+>FC-XP3%EZ8X
M00A^L0QFYC0'J:0!#JK%S%38X+W#&7)Q85#O04"Z(^NE)K]7RA(9>!BE^_2%
M,JDMS&KNB]XI+XA0M6:D.<'#SM9C$H3.@H9!Y
M2$$"]MQG)?XY!H$>=(+VD  2@0 %*"!!#$#0 ^B*  \ZT $>4) "$5B(#WPX
MM:I9[6I8RQH%>#!!K5.0 E(C:9?B,34*YD<'Q&R!!#7H J^]HI:"J(X,MMY#
M@L3#&\K(101%D((4GB %7K5AHC]>>9VWA8CO??=CVOE4*)&7ONM5>\;4?9CUL4H>G*;JL2[Z5
M#? Y/#O:( @!P0EB\&SG.P'==L.WPSWNAH&+
MO>3%/OG9O<)RM;?;O>1\B^G>DD;,0-GR7%N^^,=/_O)#]K*9%1,=4CL7QCT8+;(G[;9,:T8WL'^U(&RMS!D=VYK1-K>W
MU49)$T;FU08,!ESJ-US%=1IE@%P;HEQ>T5S/%5UU!T+8E0#:Q5UIQD;:! ?A
M)7/D-7-=IEZ'TQ456$FZQ7;T)6'V!17YM5_IXE]GLF8"ICU88V  DF +AF>%
M]WX<-F%?]H,9)GL_Z&$@UA0B=D=M 7.11QDBLV*I01DN!F,RYE+T=V,YMEH'
MPB0^!F0<.&1%IE)6@F1*=A6MTF1O\&18%&4<,F56465QAF)9-B5VP64BY645
MQB1B1B9E-G/=I68!%D9M]F8-TQ=SIE)V!AJ^E6>;QF=^!FB")AI"4 1'D 1.
MT(, PVH@@'U01VK*EFJK!G&O%FL49VL@@&NZ%HJ]1HK )FRVQGC'IG&:QW55
M$7 @)XI,1W:A9W9 I'*DEW8N=VYL #X7=!7KEELG>'?REG<^MW<@$'1/-W14
M=W)'!W:?UW0(IW#2Z'"J&'&Q-G&TEFU6)WD;MW75"'(B1VTDUW2[R&V]B'8M
MQROQAWDS%W1)WN807E7 7N'E'D3:8X5N04PN05I
MT 6>IXYCAVWMN)'O^(OQ>'HZYW:(@Y;2QGHS^'IEP"BR1WNV1Y3LMGL$68L>
M=Y9I>9#@)0?B)0(#$V9PX"7D9 :J]&4=&%X[)@;J!R.KE8\@Q)"_]WOF-YI$
MH59GX#*D&13-AU?01S;3!UAH$S?9YS:^PWWRUE=P,P/AEYJ\V9N^^9L/,0).
MJ&)J$7&_8BL*\ (O,!>;D1C!J J9P;?"4KA.9[E>9X)DI[RR9[J^9[QF23T:9_XJ4I=T90*\)_=>0:T
MI@#HN9\:XJ#R"9\@.I_U>3*K8Z$EVI\9RIT*@ 8=^J$/R@8BRI\1JB$3BJ+Y
MZ7,CZI\NF@8%*@=GH* 44Z(U"J$EFJ/WF:+Z.:,L^I_":0:X1Q!NE@?UU)W6
M(T!5\@6NEXHP*9E>J;ITP(QD (L<')ZNJ5=FAN *JAN2JAO8*C$
M=B. YY#;QJ!)4I_A8:=N@ (S:JF_EW C0)0D(AK*^8P%)C,I*)V8D174\49U
ME$:1B1V8H9V@$:!C]*E$FJJSJ+A,:.:2* F##JD="Q95KUJA?>A7,
MZJP)L*A\RJZ .@.66JJX=ZH)(*Z) :QU(JQO@JY\A*YDE*SB55]3$H.N<5)%
MLZ_+&5*2(IEO%Q;/&A[D&0:<6FI;YVT$"J37BJAA0&SY=@/;JJ,JVI0.JUF6
MME& P:2"L157T7&%T4[-BJN@D7"0^J9F"B[:\A\N,P; 21&K&39ZY9IF YLK
M(9MM@U@M\1$P<)LEX1$RL)M!6[56>[65)9PI!H7&B0;(F:H%D1MR\9R8XJKE
M5)W7&1S9N9T1XYT7*Z3L^;9G8)X>NJ!&>J-L0*(SJJ2>NJ(^*J#ZQ;%!>J"]
MDJ!U6Z0S>J1YB[=\Z[*;^+<;&J-VF[AXJ[?RV;@[ZKKB:&J*5R[C2
MVK=."KD .KA$^KDT&KI).KJ.6[J;&Z7>6J57J@#RVJ?]Y:A@*J8Y*ZEJNG6]
M"Z?I!*B9[BKM_"J;!&Z>4FJAY=KOTZKQD&JG".ZF'JJV7*I#3
M:+'1NFV>"JKR*:H)1ZJF:@:HNIQ.L*HGYDLJF!JPVI<@T%2S&@:U*A8UFZLJ
MIP"[*KDI^ZM,*"H ZZZX-O+\)0KTJW*XH8*_UB:^:H;X!
M/*[^2L#L1JSI2K#(&A<,O"%MI+"]"""4 <(703(1:UUATK!%=[$9JVR"Z[&T
M!K(B*QXD"W@FJY\HFZIBLK+EU+=X%+,5.;,69;,WRTN>B1FO]K-8"Q1#^WQ%
M"UBO63O/]WVS20-,E%@T@!+9=P,U< -4&\>&?,B(_#2I:C#4-5)$-IFK,8BJ
MY('4$1O*F9S+.8E7$ 11PRLF)"7'I$T<@EM= 31+XDU+QFA@T1HA@CM1\!DW>YBVI:CI8E?!5GATBBH;5/6)QO[+4@I#+UJRKCF6$G2*1@85$\
M )5-9450^1:8]R)#Y02;YW8B')V,Y>P05N( *\Y,8ITHB ?H;!9UH"'J?!O1%<^EYW+)B-1SH-1Q
M1$8GEEOZ')W"I3K;!M $_(G=5'Y=8"3=";ZVL4=[A6L2'<[,W@/(J_5FLL
MT%RB2F-J#[=X/!-_0/=_^K=_7[=_V;8["'7:<^=_)G69%
M+>#,7>#.W=[?G>#BO> L0-KT?1FB.KXJ@-N5_8V7[6^NK=ZR[=G@>-OUS:D<
M-^'I*-H CN'+3>!+W>$L'HXC+MPE?MX^ZGIK")9_*7.!B7N#>2V\%QY'AYAJ
MF<^+V9B/"6D2.Q>5F8=7GIF;V5QX_9E^UY()E\B^62YH7A%SG%=C8\='B\<@
MP'VS65BUF5B #!.^,[6.M>9^_N> /A&I^G;Q,4YR(3)QW53A,V;P48R9;25J
M)-28 1S"01SO@1S* 1JIFCZ)-G-M5JX%7%!*^$=J1C);TD=X1*Q2A>CD1)[^
MQNJ88=6R5=T[D++M^X8%9H)M[.G@TB\37=$ PEER0,EKH0"<]4WA8S(40VN<
M6MO"UNQ9@>#A+0?Q_>P),N/^69_NK"I\+<_)10;T;,^7@<^NQM>-[<^[+MD#
M7=#+>=!WG=!9!19NT- _6M+@HG_(JO_(LW_(N__(P'_,  (FB-HF5>(D.EHG0Q8FCIK&G!HK3]MS#=HJY
M!O2B:-D+3FS&]G[EN'EE:8T8Z98:B7)QV9%S*8S$J&Y @HR[?I+,F)+."(T-
MZ;U3?XX'F8L'5^;ZMHU;]W"KJ ,S+HX0*7M-3XM>AW04+@)H7W;N**96;WKS
M^.WU2)+X^/'*B)(J*?9K3_:%>??6J'3>6G*@*77]QHA7]V5U;_9YO_=O2?5^
M_]4?N=;&^'8'9H\EV?7QAOAASY*AV?IG.9,K4),U<)-]J9,/!"4^J7) ))2K
M091<+'B$9WBK$:9,Z931%953N0)5"0)765*/IY4=IJY>67M]*2/?GOEE2>5K
MJ?<**?6B5_6@/^9[3>7PUGKXE>35+WF :26"J7M0WOC.IOU6GI,?B&U9'IGO
M1IF,Z>7TSYA@[O Z1OQ-/BXF\RB+:4)-?J[-M28X]U?P6 Q06MKGSJ4-Z9.;
M"ED!O( 8D*X0,^)T%8[9UUI.8R)?KF"'4B,FG+=3BKMD6@Y%;<,EPR
MJD&QKKWENC(7[/I/ 4IPN4 $9:#H5@Q<3S/P-&IHC.^\I3R8E0Q[%'!P>P5O135'9Q7>=!ZM2F=
!!8QW
 
end