https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109113
--- Comment #2 from NoƩ Lopez <noe.lopez at epitech dot eu> ---
Here's the code in plain text:
#include <stdlib.h>
typedef struct menu_item_s {
void *fn;
} menu_item_t;
typedef struct menu_list_s {
int _a;
menu_item_t items[];
} menu_list_t;
typedef struct menu_s {
int _a;
menu_list_t items[];
} menu_t;
typedef struct region_s {
void *data;
} region_t;
static void fn(void) {
// Bug does not trigger when doing something inside this function
//int a = 0;
}
static const menu_list_t FILE_MENU = {
.items = {
{ fn },
}
};
const menu_t WINDOW_MENU = {
.items = {
FILE_MENU,
FILE_MENU,
},
};
void create_menu_region(region_t *dest, const menu_t *menu)
{
// Bug only happens when putting output in the region_t struct
dest->data = malloc(sizeof(menu));
// Does not trigger bug:
//menu_t *data = malloc(sizeof(menu));
// void *data = malloc(sizeof(menu));
// malloc(sizeof(menu));
}
// Just here so that ld doesn't complain
int main(void) {}