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!gordonA 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%&CIRZ C 2B?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$/ :O N@! 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-'%P2 O60QERM "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]> >9V WA8CO??=CVOE4*)&7ONM5>\;4?9CUL4H>G*;JL2[Z5 M#? Y/#O:( @!P0EB\&SG.P'==L.WPSWN AH&+ 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%W (VZ6'3A,7K@!HQKEX#TA1AP5W.TEXS[V',@\'//V'>] MUY()4!YDL 4 DQ=)!VWC.!!E$&ED(4EMDEO8019ID!IGAAV9%WB#5W@)<'AI MH(DP\")+R0/X50=.F1?%=A%(DEET)!>1)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\@6 NEXHP*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$FJJS J+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;@[ZK KB:&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:CI8 E?!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- _6 M+ @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.8 R)?KF"'4B,FG+=3BKMD6@Y%;<,EPR MJD&QKKWENC(7[/I/ 4IPN4 $9:#H5@Q<3S/P -&IHC.^\I3R8E0Q[%'!P>P5O135'9Q7>=!ZM2F= !!8QW end