This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

target/2247: IA64 compiler ICE with -O2



>Number:         2247
>Category:       target
>Synopsis:       IA64 compiler ICE with -O2
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Fri Mar 09 14:46:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     sje@cup.hp.com
>Release:        2.97 20010122 (experimental)
>Organization:
>Environment:
IA64 Linux
>Description:
The compiler aborts in flow.c:6592 with the attached
program is compiled with -O2.
>How-To-Repeat:
Compile the program on IA64 Linux with -O2.  The compiler
will abort.
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/plain; name="x.c"
Content-Disposition: inline; filename="x.c"

typedef struct variable *DYNAMIC_FUNC ();

typedef struct variable {
  char *name;
  char *value;
  char *exportstr;
  DYNAMIC_FUNC *dynamic_value;
  DYNAMIC_FUNC *assign_func;
  int attributes;
  int context;
  struct variable *prev_context;
} SHELL_VAR;

extern SHELL_VAR *find_variable (char *);
extern SHELL_VAR *find_tempenv_variable (char *);
extern int array_needs_making;

void
set_var_attribute (name, attribute, undo)
     char *name;
     int attribute, undo;
{
  SHELL_VAR *var, *tv;
  if (undo)
    var = find_variable (name);
  else
    tv = find_tempenv_variable (name);
  if (var)
    ((undo == 0) ? ((var)->attributes |= (attribute)) :
((var)->attributes &= ~(attribute)));
  if (var && ((var)->attributes) & (0x001))
    array_needs_making++;
}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]