Bug 19462

Summary: Internal compiler error in expand_shift, at expmed.c :2026
Product: [Retired] Red Hat Linux Reporter: Michael Schwendt <bugs.michael>
Component: gccAssignee: Jakub Jelinek <jakub>
Status: CLOSED RAWHIDE QA Contact: David Lawrence <dkl>
Severity: high Docs Contact:
Priority: medium    
Version: 7.0   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2000-10-27 14:04:17 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
the requested .ii file and typescript none

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.