===================================================================
***************
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -g -fselective-scheduling2" } */
+
+ typedef long unsigned int size_t;
+ struct fileloc
+ {
+ const char *file;
+ };
+ typedef struct type *type_p;
+ typedef const struct type *const_type_p;
+ enum typekind
+ {
+ TYPE_STRUCT,
+ TYPE_UNION,
+ TYPE_POINTER,
+ TYPE_LANG_STRUCT,
+ TYPE_PARAM_STRUCT
+ };
+ struct type
+ {
+ enum typekind kind;
+ union
+ {
+ struct
+ {
+ struct fileloc line;
+ } s;
+ struct
+ {
+ struct fileloc line;
+ } param_struct;
+ } u;
+ };
+ struct outf
+ {
+ size_t bufused;
+ char *buf;
+ };
+ typedef struct outf *outf_p;
+ oprintf (outf_p o, const char *format, ...)
+ {
+ char *s;
+ size_t slength;
+ memcpy (o->buf + o->bufused, s, slength);
+ }
+ output_mangled_typename (outf_p of, const_type_p t)
+ {
+ switch (t->kind)
+ {
+ case TYPE_POINTER: (fancy_abort ("/gcc/gengtype.c", 1988, __FUNCTION__));
+ }
+ }
+ output_type_enum (outf_p of, type_p s)
+ {
+ if (s->kind == TYPE_PARAM_STRUCT && s->u.param_struct.line.file != ((void *)0))
+ {
+ oprintf (of, ", gt_e_");
+ }
+ else if (((s)->kind == TYPE_UNION || (s)->kind == TYPE_STRUCT || (s)->kind == TYPE_LANG_STRUCT) && s->u.s.line.file != ((void *)0))
+ {
+ oprintf (of, ", gt_ggc_e_");
+ output_mangled_typename (of, s);
+ }
+ else
+ oprintf (of, ", gt_types_enum_last");
+ }
===================================================================
*************** init_global_and_expr_for_insn (insn_t in
bool force_unique_p;
ds_t spec_done_ds;
! /* Certain instructions cannot be cloned. */
! if (CANT_MOVE (insn)
! || INSN_ASM_P (insn)
! || SCHED_GROUP_P (insn)
! || prologue_epilogue_contains (insn)
! /* Exception handling insns are always unique. */
! || (cfun->can_throw_non_call_exceptions && can_throw_internal (insn))
! /* TRAP_IF though have an INSN code is control_flow_insn_p (). */
! || control_flow_insn_p (insn))
! force_unique_p = true;
else
! force_unique_p = false;
if (targetm.sched.get_insn_spec_ds)
{
bool force_unique_p;
ds_t spec_done_ds;
! /* Certain instructions cannot be cloned, and frame related insns and
! the insn adjacent to NOTE_INSN_EPILOGUE_BEG cannot be moved out of
! their block. */
! if (prologue_epilogue_contains (insn))
! {
! if (RTX_FRAME_RELATED_P (insn))
! CANT_MOVE (insn) = 1;
! else
! {
! rtx note;
! for (note = REG_NOTES (insn); note; note = XEXP (note, 1))
! if (REG_NOTE_KIND (note) == REG_SAVE_NOTE
! && ((enum insn_note) INTVAL (XEXP (note, 0))
! == NOTE_INSN_EPILOGUE_BEG))
! {
! CANT_MOVE (insn) = 1;
! break;
! }
! }
! force_unique_p = true;
! }
else
! if (CANT_MOVE (insn)
! || INSN_ASM_P (insn)
! || SCHED_GROUP_P (insn)
! /* Exception handling insns are always unique. */
! || (cfun->can_throw_non_call_exceptions && can_throw_internal (insn))
! /* TRAP_IF though have an INSN code is control_flow_insn_p (). */
! || control_flow_insn_p (insn))
! force_unique_p = true;
! else
! force_unique_p = false;
if (targetm.sched.get_insn_spec_ds)
{
===================================================================
*************** print_value (char *buf, const_rtx x, int
char t[BUF_LEN];
char *cur = buf;
+ if (!x)
+ {
+ safe_concat (buf, buf, "(nil)");
+ return;
+ }
switch (GET_CODE (x))
{
case CONST_INT: