Internal compiler error, output_operand_lossage `invalid expression as operand'

Kevin Nomura nomura@netapp.com
Wed May 3 20:12:00 GMT 2000


gcc version 2.95.2
hosted on linux (redhat 6.1)
options -O2

Invocation and preprocessed source follow:


[crud]$ linux-gcc-2.95.2 -O2 -v grotty.i
Reading specs from /u/nomura/gcc/gcc-2.95.2%linux/gcc/specs
gcc version 2.95.2 19991024 (release)
 /u/nomura/gcc/gcc-2.95.2%linux/gcc/cc1 grotty.i -quiet -O2 -version -o /tmp/ccx94obe.s
GNU C version 2.95.2 19991024 (release) (i686-pc-linux-gnu) compiled by GNU C version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release).
grotty.i: In function `cmd_call':
grotty.i:16: Internal compiler error, output_operand_lossage `invalid expression as operand'


[crud]$ cat grotty.i
typedef void (*pfv)();

void cmd_call(char **av) {
        char codebuf[32];
        char *code = codebuf;
        long addr = 0, arg;
        pfv happy = (pfv)codebuf;

        while (*++av != 0 )
                arg = strtol(av, 0 , 0);

        *code++ = (addr & 0xff); addr >>= 8;
        *code++ = (addr & 0xff);

        (*happy)();
}
[crud]$


More information about the Gcc-bugs mailing list