Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!ames!apple!sun-barr!decwrl!polyslo!hoyt From: hoyt@polyslo.CalPoly.EDU (Sir Hoyt) Newsgroups: comp.sys.pyramid Subject: Re: Pyramid's "non-standard" C compiler Keywords: cc C Message-ID: <13095@polyslo.CalPoly.EDU> Date: 1 Aug 89 15:29:07 GMT References: <235@massey.ac.nz> Reply-To: hoyt@polyslo.CalPoly.EDU (Sir Hoyt) Organization: WanderLand, San Luis Obispo Lines: 64 In article <235@massey.ac.nz> K.Spagnolo@massey.ac.nz (Ken Spagnolo) writes: >I refer to the fact that in Pyramid C, given 'struct x x;', a call to >function y() like 'y(x);' will pass to y() the entire structure x, rather >that just a pointer to x, as is the case with all other C compilers I know >about. Um, if memory servers me right, there is nothing in the C language the specifies how structures are to be passed. It only states that you can pass them. Pyramid is not the only machine that does this, the IBM RT will also pass the entire struct at times. >This causes a fair amount of havoc when trying to bring up pd >software that hasn't been 'Pyramidized'. We have gone thru several painful >experiences with things like atalkad where we had to use lint, or some >less scientific method, to figure out where to change occurences of y(x) >to y(&x), etc. Any code that breaks because of this is wrong. I have moved code between Pyramids, Suns, and Sequents with out any problems what so ever. From what you say, it seems to me that the people think: int y( x ) struct yy *x; { } Should be called like: struct yy c; . . y( c ); . . This is wrong, period. the function 'y' should be declared like: struct y( x ) struct yy x; { } >What do other Pyramid users do about this? Has anyone come up with an >easy method of discovering where changes need to be made, or written a >program to do so? Would it not be a simple matter to have a cc option >that turned off this feature? Might there be an undocumented one already? >All responses are appreciated! What do we do? We bitch about the rotten code people write. Not all of the world is a Vax..... ( as the saying goes ) -- John H. Pochmara A career is great, UUCP: {csun,voder,trwind}!polyslo!hoyt But you can't run your Internet: hoyt@polyslo.CalPoly.EDU fingers through its hair -Graffiti 4/13/83