Ошибка компиляции в Windriver Diab со знаком битового поля int - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь скомпилировать следующее с Windriver Diab 5.9.8.4:

void* ptr;
void* array[2] = {&ptr};

int  func(void)
{
    void* l_1[] = {&(*((void**)array[0]))};
    const struct {const signed int bit : 1;} l_2 = {0};


    return 0;
}

Строка компиляции:

dcc -tPPCE200Z4VFS: simple -c. \ test.c -o test.o -Xdialect-c99 -Xkeep-assembly-file

и получить следующую ошибку:

".\test.c", line 7: warning (etoa:4108): signed bit field of length 1
        const struct {const signed int bit : 1;} l_2 = {0};
                                       ^

".\test.c", line 6: warning (etoa:4177): variable "l_1" was declared but never referenced
        void* l_1[] = {&(*((void**)array[0]))};
              ^

".\test.c", line 7: warning (etoa:4177): variable "l_2" was declared but never referenced
        const struct {const signed int bit : 1;} l_2 = {0};
                                                 ^

".\test.c", line 7: error (etoa:1044): assignment to constant expression

В чем причина ошибки

...