Polyspace: Defines-Handling not correct?

Hi, i hv sepecified somme defines in the optionsfile: -D CPU=2; -D CPU_SLAVE=2; -D CPU_MASTER=1; -D PLATFORM=2
Also i hv a function with some code:
void base_mt_register(void)
{
#if (CPU == CPU_SLAVE)
RegisterMeasGroup("M_IN_SL", meas_in_table, MEAS_GRP_IN, base_meas_in_t);
RegisterMeasGroup("M_CORE_SL", meas_core_table, MEAS_GRP_CORE, meas_core_t);
RegisterMeasGroup("M_OUT_SL", meas_out_table, MEAS_GRP_OUT, meas_out_t);
#endif
#if (CPU == CPU_MASTER)
RegisterMeasGroup("M_CORE_MA", meas_core_table, MEAS_GRP_CORE_MA, meas_core_t);
RegisterMeasGroup("M_OUT_MA", meas_out_table, MEAS_GRP_OUT_MA, meas_out_t);
#endif
return;
}
RegisterMeasGroup(...) is also a define: RegisterMeasGroupBlabla(...)
PS told me now that M_CORE_MA is undefined!? But this code should never be verified? In the corresponding ci file the function looks like this (which is wrong!?):
void base_mt_register(void)
{
...many blank lines....
RegisterMeasGroupBlabla( "M_CORE_MA", meas_core_table, MEAS_GRP_CORE_MA, sizeof(meas_core_t), sizeof(meas_core_table) / sizeof(struct symbol_info), "test.c", __func__, 130);
RegisterMeasGroupBlabla( "M_OUT_MA", meas_out_table, MEAS_GRP_OUT_MA, sizeof(meas_out_t), sizeof(meas_out_table) / sizeof(struct symbol_info), "test.c", __func__, 131);
return;
}
Why PS execute this code? I think PS hv a problem with defines/macros!
Maybe you can please help me? Best regards Thomas

 채택된 답변

Christian Bard
Christian Bard 2014년 12월 17일

0 개 추천

Dear Thomas, with current version of Polyspace Code Prover (for instance R2014b) and default options, it works as expected.

댓글 수: 1

Thomas
Thomas 2015년 1월 12일
Hello, certainly it works on R2014b - but I'm using R2013a instead. At R2013 it works also - after I've founded the "problem". For this case I've printed the defines on some code segments. The problem was more complicated:
  1. there was an (wrong) existing (master)headerfile, which overwrote the cpu-define
  2. the (then) necessary additional (master)headerfile was missing - correct
-> the defines were not defined, which was correct.
Regards Thomas

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Just for fun에 대해 자세히 알아보기

태그

질문:

2014년 12월 8일

댓글:

2015년 1월 12일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by