Я работаю над полировкой некоторого существующего кода на C, чтобы перенести его на новый компилятор (встроенное программное обеспечение, мы переключаем оборудование). Поэтому я пытаюсь очистить текущий код с помощью lint, и я озадачен назначением, которое, по мнению lint, является грубым нарушением печати.
Ошибка, которую я получаю:
--- Module: GenericFileName.c
GenericFileName.c ... Warning 632: Assignment to strong type
(SubStructureType_T) in context: assignment
Строки кода, на которые он ссылается (имена изменены для удобства чтения):
void foo(void)
{
extern const StructureType_T parent;
const SubStructureType_T *localChild;
localChild = parent.child; //<-- lint complains about this assignment
...
}
Соответствующие части StructureType_T:
typedef struct
{
const struct SubStructureType_T *child;
...
}StructureType_T;
И, наконец, опция lint для включения строгой проверки типа:
-strong(AcXJcb)
Любое понимание будет с благодарностью. Я искал помощь по этому вопросу, но не нашел много. Я думаю, что линт - довольно старый инструмент. Спасибо за чтение!