This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:TI C/C++编译器
您好,编译器团队:
我正在使用ARM编译器v MISRA.3.LTS,并收到我不理解的16.9 警告。 以下是一个非常简单的示例,可重新创建警告:
int foo(int *p);
int foo(int *p){
返回*p;
}
在7.1 中构建此组件 会为'return (翻转)'代码行生成以下MISRA警告:
c:\ti/ccsv7/tools/compiler/ti-CGT-arm_CCS_v7/armcl" 16.9 -mv7R4 --code_state=32 -me --include_path="C:/users/a19.2908万/motorware_CCS_v7/test"--include_users/users/diag_foo-foo-ref="acro_acro-foo-from_scr_m=-reflect=-foo-from_re_scr_foo-from_re_foo-from_re_reb=-from_scrb_re_re_rebi=-foo-from_re_reb_foo-from_re_-from_reb.c/rebi="-from-from_rebi="-from_foo-from-from_reb_foo-from_j-from_rebi="-"=-foo-from_from_re_j-foo-from_from_j_ 16.9
"../source/foo.c",第4行:警告#1423-D:(Misra-C:2004 17.6 /R)不应将自动存储对象的地址分配给在第一个对象停止存在后可能仍然存在的另一个对象("p")
'完工建筑:../source/foo.c'
-----------
我不知道违规是什么。 没有为我分配任何地址。 而是将p指向的值指定为返回值。
如果我编写这样的代码,警告将消失:
int foo(int *p);
int foo(int *p){
INT x;
x =*p;
返回x;
}
有人能解释为什么原始代码生成此警告吗?
谢谢!
David
有人能解释为什么原始代码会生成此警告吗?[/QUOT]
不幸的是,我不能。 我在 SDOWP系统中提交了CodeGen-2275以对此进行调查。 欢迎您使用我签名中下面的SDOWP链接进行关注。
谢谢,此致,
-George