[comp.sys.atari.st] help with internal compiler error in MWC

benw@syma.sussex.ac.uk (Ben Whitaker) (04/13/89)

i am using MWC (v3.0) on an atari 1040 with two double sided drives. 
when compiling the following, with the source on a 512k RAM disc 
(of which some 300k is free) which also holds \tmp, i get the following 
message:

In cc1: Internal compiler error::no match,op=61

code follows:

void foo(fx)
float (*fx)();
{
	float fc,x=1.0;
	fc=(*fx)(x);
}

my manual says "this shouldn't happen". does anyone have any ideas why cc1.prg
gets confused with the declaration

float (*fx)();
...
fc=(*fx)(x);

and any ideas on a fix ? i can also generate internal compiler error
op=69, but it looks like the same problem in a different quise.

i'd be most grateful for any help you can give me on this. i am snailing
a copy of this to mark williams co. but am hoping that i might get a
quicker response over the net (and that MW are listening).

ben whitaker



-- 
-------------------------------------------------------------------------
school of molecular sciences  #  EARN    kafe3@cluster.sussex.ac.uk
university of sussex          #  UUCP    mcvax!ukc!icdoc!syma!benw
brighton bn1 9qj (uk)         #  phone   (44) 273 606755 x3221

rob@kaa.eng.ohio-state.edu (Rob Carriere) (04/16/89)

In article <886@syma.sussex.ac.uk> benw@syma.sussex.ac.uk (Ben Whitaker) 
writes:
>i am using MWC (v3.0) on an atari 1040 with two double sided drives. 
[which gives the error:]
>In cc1: Internal compiler error::no match,op=61
[when I compile]
>void foo(fx)
>float (*fx)();
>{
>	float fc,x=1.0;
>	fc=(*fx)(x);
>}

I've had the exact same problem a while back, and the called their
toll-free help number (the one they don't list in the manual, I can
look it up if you want).  It's a bug, they know about it, they plan to
do something about somewhen, and offer the following workaround:

change

float (*fx)();

into

double (*fx)();

and it will work.  (They're right about that, I tried)

SR