Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!asuvax!ncar!gatech!udel!mmdf From: HBO043%DJUKFA11.BITNET@cunyvm.cuny.edu (Christoph van Wuellen) Newsgroups: comp.os.minix Subject: GCC (1.37.1) fixes (50 lines) Message-ID: <43105@nigel.ee.udel.edu> Date: 29 Jan 91 20:02:51 GMT Sender: mmdf@ee.udel.edu Lines: 83 Since it was requested, my GCC patches: m68k.md.cdif: fixes an error in the code gen for doing 8-->16 bit unsigned extension while pushing something on the stack c-typeck.cdif, fold-const.cdif: if you compile the new c-typeck.c, fold-const.c with -DCVW_SIZEOF_HACK, gcc will generate 16-bit 'sizeof' for sizes less than 32767 when in 16-bit mode. Thus, put(sizeof(long)) will be equivalent to put(4), while the original gcc passes a long (32-bit) argument here. long l[20000]; put(sizeof(l)) will be equivalent to put(80000l). This is the same behaviour as c68, which treats sizeof() as a int constant when <32767, as a long constant when >32767. All this is not very elegant, but gcc can keep the MINIX sources now. A statement from fdopen.c which cannot be compiled in 16-bit mode using the original gcc: .... malloc(sizeof(FILE)) ..... My personal opinion is that a 32-bit sizeof value is very natural on an 68000 and that the code is broken, but nevertheless.... for historic reasons, malloc expects an int argument, not a long. You could argue that 16-bit ints are garbage on an 68000 anyhow. C.v.W. Here is the patch: begin 644 gccdiff.shar.Z M'YV-(Q)009-F#HB"(,* F(.F#!LV">6,(6BGC L% :64:?.F(H@R%>7DH4/0z MS9F$8CJ62>B&S$$W8]C4(9/&) B2*\?4H0."34V+& 4V= -"3AVB.(N6F"&FY@N&&+N&D:,#A.$I#1^"""*1HMV@4HY"76GFS<,W=VJ>I%,&w M#\_,)$'P]>='&!HXU+MJ0<3&&IAG7+>CD@5-Fv M#.[>:7X'K,R&S%C83'G[#CP0X>"):3RF+K.Z#)G"5.JL5!*&J(P<(&3$T %Cu M?0P8(&+DR!%#P9C5('CP ,%E"I(@4GQ1Q!-&@. #:K#)1IMMN.DF77(*J" At M"+7=EMMN;\B1QADUA<&&4'6 \,08/,40 P@PX*####7H(%]\\\&@@%@4,G@As MB"*2&-^)*:YH@PXRT !C#C)*:.212*H0X80QR ###"PT"0-Z1RI@V)4@[&$Er MEE 4$(+7.S 446CBF%J#"R4 ,.G.VS)Y4=LS%'&GYIRZJD(JY;1ZJNQSKI#o MJ,/*2JNM5_8Q8UCQ.0EEDTZ"D!:SAFEYJV%>@BDFF6NF&6Z;;]HE)YUV[JEGn MGGX:!B@(@A)J****,NHHI%](Z@2EEG*IY:6WEAMG2^AV 2\(9XJ+0L+DPGENm MG7?FJ6ZMEXZ0'!EE/-7$$U0\(<433 2A0,479TSH$5.,O&VOG?('*AMRD&HMl M"K*FD&JPR<(: \U\+ENQ0[JJ?"O+OX8J#$#:,*2,-%8NG.?')= $;""4GA[J[^E @XKJ#5E?h MDL1+N*0*(-1P0PTLU("#D%72J#SS-L1P@[5B;:GME577T<9-9Y7QQ6L8(UC^g MH%2$6<070SQ!1!%?SEY&"K4:IL *4Y?\U!!67/'%%$G0@N2^\!]$W8][GK$+f M4L*'FC PY0MT>,,7YI &/93!*1"\' KH=T##T(&!=*@5_CKX$3=X#WQE$!_Ye M%[_+<7"$6.K6"N$U*"-4P0E#H$(2GN"$+U A"U H0KO\d M53AN/04%Q"%#>>B0AC& @ ]\ ,$=!N.&+\#A#37AC!R^,)@TD&2)"=ABIS3Sc M)1%0T().20@"&V^+)H,10!ZJ0X0MA_%(, (DEb M9^'/,$!;B0Y;N))X68%11# B$I5(PFQULDM/C.(4JWC%+*JQBU\,HUW(J*$Sa M'C"-7&0C"MQ8P0L^)0QSK*-+(HA'.X!QEY?[HP@#>3!"&A*1;N#)VH;92!)&z M\I,>[,$;Q5>3+XAA)$M!@?P ^0(E/1)Y58##'=N")R_E(2M*V53+Z( G-[R!y M)&Q$R$3*3J0)[P\01A/ ()K-O"!$9Q@+3$HOPXB[PHYw M*8\[>=(9.,CII'2 H 2GR=++O<0G;EA)6TI:G##4(6CX-",(CKH4J61H#!DSv M8P:)@Z<[$&0B!NW)&^X#$5XRQSFO<4-TQN#2%Y"P6S!<7Z.HP+Y"$3 )1T""u M-E,@*/B8P 0O5-\7UMI6MC+A"5>8:WX&Y5"(WL!/C^22('&J4Y7"T0Q3+<-WS&4:[,A+q MA9A!CU3L8S Y6+>N&;,YR%3F(NO');IUE[:4Y"$(+IF$3&+73\4CWO&21Y_Fp MYA:THDUB@$I+A=.Z*P$"V:1KBP!;V3KAn M2[6-+&XIN=L#4LUJ3QDQ__P'0 $2B("'6@((G+LE V_I@RE4 .049P3&\<1Qm M_?E/Y AD(*MKV26&.0L$S!/60M\UM&9AIF,I(1'Q38;8&Z90g M!S;4&%M%" -6!W,&[U6MHP;A4$6(XL";L!P$8!@I". P7ZC.X2)SEEQ0BM 2f /$,21(0Z!R'4