Bug 58387

Summary: gcc-3.1-0.17 ICE on ia64 compiling OpenLDAP with -O2
Product: [Retired] Red Hat Raw Hide Reporter: Nalin Dahyabhai <nalin>
Component: gccAssignee: Jakub Jelinek <jakub>
Status: CLOSED RAWHIDE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 1.0   
Target Milestone: ---   
Target Release: ---   
Hardware: ia64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2002-01-30 05:36:16 EST Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Attachments:
Description Flags
The command used, and its output.
none
The .c file.
none
The .i file.
none
The .s file. none

Description Nalin Dahyabhai 2002-01-15 11:37:09 EST
Description of Problem:
gcc ICEs on ia64 while compiling clients/ud/main.c in OpenLDAP 2.0.20 with -O2.
 Compilation succeeds with -O0.  I'll attach the command, the output of gcc -v,
and the .c, .i, and .s files produced.

Version-Release number of selected component (if applicable):
3.1-0.17
Comment 1 Nalin Dahyabhai 2002-01-15 11:39:27 EST
Created attachment 42494 [details]
The command used, and its output.
Comment 2 Nalin Dahyabhai 2002-01-15 11:40:14 EST
Created attachment 42495 [details]
The .c file.
Comment 3 Nalin Dahyabhai 2002-01-15 11:40:47 EST
Created attachment 42496 [details]
The .i file.
Comment 4 Nalin Dahyabhai 2002-01-15 11:45:29 EST
Created attachment 42498 [details]
The .s file.
Comment 5 Jakub Jelinek 2002-01-15 18:46:59 EST
(note just main.i and gcc options are what I need).
Here is a simplified version:
void noret (void) __attribute__ ((noreturn));
int foo (int, char **);
char *a, *b;
int d;

int
main (int argc, char **argv)
{
  register int c;

  d = 1;
  while ((c = foo (argc, argv)) != -1)
    switch (c) {
    case 's':
    case 'c':
    case 'f':
      a = b;
      break;
    case 'v':
      d = 1;
      break;
    case 'V':
      d = 0;
      break;
    }
  noret ();
  return 0;
}

to be debugged tomorrow.
Comment 7 Jakub Jelinek 2002-02-01 11:24:30 EST
Fixed in gcc-3.1-0.19.