[Linux] internal compiler error: in gimplify_init_constructor

        最近在项目编译过程中遇到了一个莫名的编译error:internal compiler error: in gimplify_init_constructor, at gimplify.c:4271。此问题居然是报了编译器的Bug。

【1】问题发生的上下文

        该Error是在数组初始化时引起的,代码写法如下:

POPUPITEM ViewModelMenuWarning::mPopupTable[POPUP_MAX]{};

【2】查看下gcc版本:

        test@test:~/Project/ecoo$ gcc -v

        gcc 版本:gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)

        gimplify.c (4.8.4版本)源码:https://github.com/gcc-mirror/gcc/blob/gcc-4_8_4-release/gcc/gimplify.c 

【3】解决办法:

    (1)修改代码写法:

            POPUPITEM ViewModelMenuWarning::mPopupTable[POPUP_MAX]{{}};

    (2)切换升级gcc

            可以将gcc从4.8 升级到 gcc 5.2

针对该问题,stack overflow 有该问题的详细描述,可参考:

https://stackoverflow.com/questions/28251530/brace-initialization-of-an-array-of-structs-in-c11

你可能感兴趣的:([Linux] internal compiler error: in gimplify_init_constructor)