This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/68549] [6 Regression] ICE: in verify_loop_structure, at cfgloop.c:1669
- From: "alalaw01 at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 26 Nov 2015 13:55:42 +0000
- Subject: [Bug tree-optimization/68549] [6 Regression] ICE: in verify_loop_structure, at cfgloop.c:1669
- Auto-submitted: auto-generated
- References: <bug-68549-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68549
alalaw01 at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |alalaw01 at gcc dot gnu.org
--- Comment #8 from alalaw01 at gcc dot gnu.org ---
Here's another testcase, reduced from value.c in gdb - ICEs at -O2 on (at
least) x86_64 and AArch64:
typedef long unsigned int size_t;
extern void *xmalloc (size_t) __attribute__ ((__malloc__)) __attribute__
((__returns_nonnull__));
struct __jmp_buf_tag
{
};
extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask)
__attribute__ ((__nothrow__));
typedef struct __jmp_buf_tag sigjmp_buf[1];
extern sigjmp_buf *exceptions_state_mc_init (void);
extern int exceptions_state_mc_action_iter (void);
extern void printf_unfiltered (const char *, ...)
;
extern struct gdbarch *get_current_arch (void);
struct internalvar
{
struct internalvar *next;
};
static struct internalvar *internalvars;
struct internalvar *
create_internalvar (const char *name)
{
struct internalvar *var = ((struct internalvar *) xmalloc (sizeof (struct
internalvar)));
internalvars = var;
}
void
show_convenience ()
{
struct gdbarch *gdbarch = get_current_arch ();
int varseen = 0;
for (struct internalvar *var = internalvars; var; var = var->next)
{
if (!varseen)
varseen = 1;
sigjmp_buf *buf = exceptions_state_mc_init ();
__sigsetjmp ( (*buf), 1);
while (exceptions_state_mc_action_iter ())
while (exceptions_state_mc_action_iter ())
;
}
if (!varseen)
printf_unfiltered ( "" );
}