https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110712
Bug ID: 110712
Summary: d: ICE: verify_gimple_failed (conversion of register
to a different size in 'view_convert_expr')
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: d
Assignee: ibuclaw at gdcproject dot org
Reporter: ibuclaw at gdcproject dot org
Target Milestone: ---
Seen with gdc-12 with --enable-checking turned on, assume that it's going to
still be the case with mainline.
d21: error: conversion of register to a different size in ‘view_convert_expr’
VIEW_CONVERT_EXPR<struct [1]>(ap_3(D));
# .MEM_4 = VDEF <.MEM_1(D)>
this_2(D)->ap = VIEW_CONVERT_EXPR<struct [1]>(ap_3(D));
during GIMPLE pass: ssa
d21: internal compiler error: verify_gimple failed
0x11aad62 verify_gimple_in_cfg(function*, bool)
../../gcc/tree-cfg.cc:5561
0x1073dae execute_function_todo
../../gcc/passes.cc:2085
0x107431a execute_todo
../../gcc/passes.cc:2139
---
import gcc.builtins : va_list = __builtin_va_list;
struct S
{
this(va_list ap)
{
this.ap = ap;
}
va_list ap;
}
---
Assigning a va_list parameter (static array saturated to a pointer on x86_64)
to a field (static array on x86_64) fails miserably to pass tree checks.