https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115602
--- Comment #4 from Sergei Trofimovich <slyfox at gcc dot gnu.org> ---
If C example is easier to debug graphviz-10.0.1 exhibits the same ICE.
Minimized example:
// $ cat gvevent.c.c
typedef struct {
double x, y;
} pointf;
struct {
pointf focus;
double zoom;
pointf devscale;
char button;
pointf oldpointer;
} gvevent_motion_job;
char gvevent_motion_job_4;
double gvevent_motion_pointer_1, gvevent_motion_pointer_0;
void gvevent_motion() {
double dx = (gvevent_motion_pointer_0 - gvevent_motion_job.oldpointer.x) /
gvevent_motion_job.devscale.x,
dy = (gvevent_motion_pointer_1 - gvevent_motion_job.oldpointer.y) /
gvevent_motion_job.devscale.y;
if (dx && dy < .0001)
return;
switch (gvevent_motion_job_4)
case 2: {
gvevent_motion_job.focus.x -= dy / gvevent_motion_job.zoom;
gvevent_motion_job.focus.y += dx / gvevent_motion_job.zoom;
}
}
Crashing:
$ gcc -O2 -c gvevent.c.c -o bug.o
during GIMPLE pass: slp
gvevent.c.c: In function 'gvevent_motion':
gvevent.c.c:13:6: internal compiler error: in vect_schedule_slp_node, at
tree-vect-slp.cc:9643
13 | void gvevent_motion() {
| ^~~~~~~~~~~~~~