新しいコンパイラに移植するために、既存の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)
任意の洞察をいただければ幸いです。私はこれについて助けを探しましたが、あまり見つかりませんでした。lintはかなり古いツールだと思います。読んでくれてありがとう!