------- Comment #20 from dave at hiauly1 dot hia dot nrc dot ca 2005-12-27 19:27 ------- Subject: Re: [4.1 Regression] (short) ((int)(unsigned short) + (int)) is done in the wrong type
> > I am having tough time building the compiler for hppa2.0w-hp-hpux11.11. > > These days gcc won't even allow you to build cc1 without an assembler and > > such. > > That's a regression. It always used to be possible to build > cc1 on x86, etc. I'll take a look. This seems to work for me on x86 linux: ../gcc/configure --with-gnu-as --disable-shared --disable-nls --prefix=/home/dave/opt/gnu --target=hppa2.0w-hp-hpux11.11 && make && However, I'm getting different tree code with the x86 cross. ;; Function f (f) f (a) { int D.1491; <bb 2>: if ((short int) a > 0) goto <L4>; else goto <L1>; <L4>:; D.1491 = 0; goto <bb 4> (<L2>); <L1>:; D.1491 = (int) (short unsigned int) (short int) (a + 32768); <L2>:; return D.1491; } Not sure why? The native hppa build generates the same code using the stage1 compiler. I have a few patches in my tree. The only one that might be relevant is the fix for PR 25394. Dave -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25125