Number of AO compiler assertion does not work
Real-Time Embedded Frameworks based on active objects & state machines
Brought to you by:
quantum-leaps
I discover that in qfn.h l 388 we have
extern QActiveCB const Q_ROM Q_ROM_VAR QF_active[QF_MAX_ACTIVE + 1];
it shall be replaced by
extern QActiveCB const Q_ROM Q_ROM_VAR QF_active[];
to allow a working assetion in main file
Q_ASSERT_COMPILE(QF_MAX_ACTIVE == Q_DIM(QF_active) - 1);
Anonymous
The compile-time assertion seems correct to me. The macro Q_DIM(QF_active) should return (QF_MAX_ACTIVE+1). So, if the QF_active[] array is initialized correctly, we have an identity: QF_MAX_ACTIVE == (QF_MAX_ACTIVE+1)-1; But if QF_active[] has too many or too few entries, the compile-time assertion will catch it.
Please explain where you see the problem.
--MMS
The bug was closed as not-reproducible.
--MMS