Bug 19462 - Internal compiler error in expand_shift, at expmed.c :2026
Summary: Internal compiler error in expand_shift, at expmed.c :2026
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: gcc
Version: 7.0
Hardware: i386
OS: Linux
medium
high
Target Milestone: ---
Assignee: Jakub Jelinek
QA Contact: David Lawrence
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2000-10-20 14:16 UTC by Michael Schwendt
Modified: 2007-04-18 16:29 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2000-10-27 14:04:17 UTC
Embargoed:


Attachments (Terms of Use)
the requested .ii file and typescript (15.74 KB, application/x-gzip)
2000-10-20 15:07 UTC, Michael Schwendt
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2000:132 0 normal SHIPPED_LIVE Bug fixing update of GCC 2.96 2000-12-19 05:00:00 UTC

Description Michael Schwendt 2000-10-20 14:16:54 UTC
Since I don't think the people at gcc-bugs.org support Red Hat's
gcc 2.96-54, and because I've made more good than bad experience with that
particular snapshot, I post this here...

The following code fails to compile. Apparently,  without any reason.

  http://sourceforge.net/projects/sidplay2/

[snip]
make[1]: Entering directory
/home/ms/files/source/sidplay2/libsidplay-20001020/src'
c++ -DHAVE_CONFIG_H -I. -I. -I..
-I/home/ms/files/source/sidplay2/resid-0.9    -g -O2 -c sidplayer.cpp
sidplayer.cpp: In method void sidplayer_pr::envReset ()':
sidplayer.cpp:583: Internal compiler error in expand_shift, at expmed.c
:2026
Please submit a full bug report.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
make[1]: *** [sidplayer.o] Error 1
make[1]: Leaving directory
/home/ms/files/source/sidplay2/libsidplay-20001020/src'
make: *** [all-recursive] Error 1

The code fragment in question is this:

void sidplayer_pr::evalBankSelect (ubyte_sidt data)
{   // Determine new memory configuration.
    isBasic  = ((data & 3) == 3);
    isIO     = ((data & 7) >  4);
    isKernal = ((data & 2) != 0);   // *** this is line 583, isKernal is
bool
    _bankReg = data;
#ifdef DEBUG
    ram[1]   = data;
#endif // DEBUG
}

Comment 1 Michael Schwendt 2000-10-20 14:19:55 UTC
Bugzilla messed up the formatting. Think of line 583 as two separate lines in
order to avoid any misunderstanding:

    isKernal = ((data & 2) != 0); 
    // *** this is line 583, isKernal is bool

Comment 2 Jakub Jelinek 2000-10-20 14:22:05 UTC
Can you please rerun the command with additional -save-temps -v
options and post here its output and resulting .ii file?
Code fragments are not very useful for reproducing bugs...
Thanks.

Comment 3 Michael Schwendt 2000-10-20 15:07:42 UTC
Created attachment 4469 [details]
the requested .ii file and typescript

Comment 4 Michael Schwendt 2000-10-20 15:13:09 UTC
Btw, no such error if it's compiled _without_ -O, -O2, or higher, respectively.

Comment 5 Jakub Jelinek 2000-10-27 14:04:14 UTC
Fix posted to gcc-patches, if it is accepted, will make it into rawhide
and upcoming gcc errata.
Thanks for the report.

Comment 6 Jakub Jelinek 2000-11-13 09:14:38 UTC
Fixed in gcc-c++-2.96-63 in rawhide.


Note You need to log in before you can comment on or make changes to this bug.