https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108384
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|error: conversion of |[13 Regression] error: |register to a different |conversion of register to a |size in ‘view_convert_expr’ |different size in | |‘view_convert_expr’ Last reconfirmed| |2023-01-12 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Target Milestone|--- |13.0 --- Comment #9 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed. Here is a cleaned up testcase where you don't need the -ftrivial-auto-var-init=zero option either; just -O3 ``` struct S0 { int f0; short f1; unsigned f2 : 7; short f3; } func_2_l_27; int *g_389; int safe_sub_func_int16_t_s_s(void); void safe_lshift_func_uint8_t_u_s(int); void func_23(struct S0 p_24, struct S0 p_25) { int *l_1051 = g_389; if (safe_sub_func_int16_t_s_s()) for (;;) safe_lshift_func_uint8_t_u_s(p_24.f1); *l_1051 = p_25.f0; } void func_2(void) { struct S0 l_26[] = {4, 5, 4, 6, 4, 5, 4, 6}; __builtin_clear_padding (&l_26); func_23(l_26[1], func_2_l_27); } ```