QP/C++ 6.9.3
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
options.lnt
Go to the documentation of this file.
1 
39 // general options
40 -unit_check // perform only subset check (suppresses Global Wrapup)
41 -max_threads=1 // suppress message "no '-max_threads=N' option"
42 //-vf // print names of all source files (for debugging linting)
43 
44 // include directories
45 -i. // QP/C++ port includes (see also qk/ and qv/)
46 -i%QPCPP%/include // QP/C++ public includes
47 -i%QPCPP%/src // QP/C++ package-scope includes
48 
49 // standards
50 -std=c++11 // C++ language standard
51 au-autosar.lnt // AUTOSAR:C++14
52 au-ds.lnt // Dan Saks recommendations
53 //-strong(AXJ) // Strong type checking
54 
55 // size/alignment options
56 cpu.lnt // for the chosen CPU
57 
59 // QP/C++ options for clients
60 qpcpp.lnt // QP/C++ options
61 
63 // additional suppression rules for building QP/C source code...
64 
65 // general suppression for now...
66 
67 // preprocessor directive ... is deprecated. [AUTOSAR Rule A16-0-1]
68 -e586
69 
70 // preprocessor directive encountered in conditionally excluded region
71 // [AUTOSAR Rule A16-0-1], [AUTOSAR Rule A16-6-1]
72 -e886
73 
74 // friend ... in class
75 -e9435
76 
77 // symbol ... has array type
78 -e9436
79 
80 // enum ... is not a scoped enumeration [AUTOSAR Rule A7-2-3]
81 -e9419
82 
83 // QEP -----------------------------------------------------------------------
84 
85 // MC++R16-0-4 function-like macro
86 -esym(9026,
87  QEP_TRIG_,
88  QEP_ENTER_,
89  QEP_EXIT_,
91 
92 // MC++R7-1-2 parameter of function could be pointer to const
93 -esym(818,
94  QP::QHsm::top)
95 
96 
97 // QF ------------------------------------------------------------------------
98 
99 // MC++R16-0-4 function-like macro
100 -esym(9026,
101  QF_CRIT_E_,
102  QF_CRIT_X_,
105  QF_PTR_AT_,
107  QF_CRIT_ENTRY_,
108  QF_CRIT_EXIT_,
114  QF_ISR_CONTEXT_,
116  QF_MPOOL_EL,
117  QTICKER_CAST_)
118 
119 // MC++R16-0-4 function-like macro
120 -esym(9026,
127  QF_PTR_INC_,
130 
131 // MC++R10-0-6 unparenthesized macro parameter in definition of macro
132 -esym(9022,
133  QF_PTR_AT_)
134 
135 // M3-R11.3(r) cast from pointer to object type
136 -emacro(9087,
137  QTICKER_CAST_)
138 
139 // suspicious pointer-to-pointer conversion (area too small)
140 -emacro(826,
141  QTICKER_CAST_)
142 
143 // definition of macro ends in semi-colon
144 -esym(823,
146 
147 // M3-R11.8(r) cast drops const qualifier
148 -emacro(9005,
152 
153 // M3-D11.5(a) conversion from pointer to void to other pointer type
154 -efunc(9079,
155  QF_bzero)
156 
157 // M3-R17.8(a) function parameter modified
158 -efunc(9044,
159  QF_LOG2,
160  QMPool_init)
161 
162 // M3-R18.1(r) potential out of bounds pointer access
163 -emacro(661,
165 
166 // AR-M5-2-8 conversion from pointer to void to other pointer type
167 -emacro(9079,
169 
170 -efunc(9079,
171  QP::QF::bzero,
172  QP::QTimeEvt::armX,
173  QP::QTimeEvt::disarm,
174  QP::QTimeEvt::rearm,
175  QP::QMPool::init,
176  QP::QMPool::get,
177  QP::QMPool::put)
178 
179 // M3-R18.3(r) relational operator <= applied to pointers
180 -emacro(946,
182 
183 // M3-R8.13(a) parameter of function could be pointer to const
184 -efunc(818,
185  QP::QActive::start_,
186  QP::QTicker::postLIFO_)
187 
188 // definition of macro ends in semi-colon
189 -esym(823,
191 
192 // MC++R0-1-1 statement is unreachable due to unconditional transfer
193 // of control (assertion)
194 //-efunc(527,
195 // QP::QMActive::isIn,
196 // QP::QMActive::state,
197 // QP::QMActive::childState)
198 
199 // MC++R7-1-1 parameter of function could be declared const
200 -esym(952,
201  QP::QEQueue::init)
202 
203 // variable has 'static' storage duration and non-POD type
204 -esym(1756,
205  QP::QF_pool_,
206  QP::QF::timeEvtHead_)
207 
208 // call to unqualified virtual function 'QP::QHsm::init'
209 // from non-static member function
210 -esym(1933,
211  QP::QHsm::init)
212 
213 // QV ------------------------------------------------------------------------
214 // MC++R16-0-4 function-like macro
215 -esym(9026,
216  QV_CPU_SLEEP)
217 
218 
219 // QK ------------------------------------------------------------------------
220 
221 // MC++R16-0-4 function-like macro
222 -esym(9026,
224  QK_ISR_ENTRY,
225  QK_ISR_EXIT)
226 
227 
228 // QXK -----------------------------------------------------------------------
229 // MC++R16-0-4 function-like macro
230 -esym(9026,
235 
236 // MC++R10-0-6 unparenthesized macro parameter in definition of macro
237 -esym(9022,
239 
240 // MC++R5-2-7 pointer type converted to unrelated pointer
241 -emacro(9176,
242  Q_STATE_CAST)
243 
244 // M3-R11.3(r) cast to pointer to different object type
245 //-emacro(9087,
246 // QXK_PTR_CAST_,
247 // QXTHREAD_CAST_)
248 
249 // MC++R5-2-7 pointer type converted to unrelated pointer type
250 -emacro(9176,
252 
253 // MC++R5-2-3 downcast of polymorphic type ... to type ...
254 -emacro(9171,
256 
257 // casting from base class 'QP::QActive' to derived class
258 -emacro(1939,
260 
261 // suspicious pointer-to-pointer conversion (area too small)
262 -emacro(826,
265 
266 // M3-R8.13(a) parameter 'me' of function could be pointer to const
267 //-efunc(818,
268 // QXThread_init_,
269 // QXThread_dispatch_,
270 // QXThread_postLIFO_)
271 
272 // ariable 'QP::l_idleThread' has 'static' storage duration and non-POD type
273 -esym(1756,
274  QP::l_idleThread)
275 
276 // QS ------------------------------------------------------------------------
277 // the following options are needed only when Q_SPY is defined
278 
279 // MC++R16-0-4 function-like macro
280 -esym(9026,
281  QS_CRIT_E_,
282  QS_CRIT_X_,
283  QS_PTR_AT_,
284  QS_PTR_INC_,
287  QS_REC_NUM_)
288 
289 // M3-R14.3(r) boolean condition for 'if' always evaluates to 'false'
290 -emacro(774,,
295 
296 // the right operand to << always evaluates to 0
297 -emacro(845,
300 
301 // excessive shift value (precision 3 shifted right by 3)
302 -emacro(572,
305 
306 // constant expression evaluates to 0 in 'binary' operation '>>'
307 -emacro(778,
310 
311 // constant value used in Boolean context
312 -emacro(506,
315 
316 // bitwise operator '>>' applied to signed underlying type [AS-M5-0-21]
317 -emacro(9130,
320 
321 // use of c-style cast to void [AS-A5-2-2]
322 -emacro(1954,
323  QS_END_PRE_)
324 
325 // MC++R0-1-9 operator == always evaluates to true
326 -emacro(948,
329 
330 // MC++R0-1-1, MC++R0-1-2, MC++R0-1-9
331 // left operand to '||' always evaluates to 'true'
332 -emacro(944,
335 
336 // MC++R5-2-9 casting from pointer type to integer type
337 -emacro(9091,
338  QS_OBJ_PRE_,
339  QS_FUN_PRE_)
340 
341 // M3-R11.6(r) explicit cast from 'void *volatile' to 'uint32_t'
342 //-emacro(923,
343 // QS_OBJ_PRE_,
344 // QS_FUN_PRE_)
345 
346 // M3-R11.1(4) conversion between pointer to function and differing type
347 //-emacro(9074,
348 // QS_FUN_PRE_)
349 
350 // definition of macro ends in semi-colon
351 -esym(823,
355 
356 // union initialization
357 -efunc(708,
358  QS_f64_fmt_)
359 
360 // M3-R19.2(a) union declared
361 -efunc(9018,
362  QS_f32_fmt_,
363  QS_f64_fmt_)
364 
365 // MC++R10-0-6 unparenthesized macro parameter in definition of macro
366 -esym(9022,
369 
370 // AR M5-0-10 the result of the ~ operator applied to an object with an
371 // underlying type of 'unsigned char' must be cast to 'unsigned char'
372 // in this context
373 -efunc(9126,
374  QP::QS::glbFilter_,
375  QP::QS::locFilter_)
376 
377 // don't report problems within QS_target_info_() function
378 -efunc(9130,
380 -efunc(9114,
382 -efunc(9117,
384 -efunc(9125,
386 -efunc(9112,
388 -efunc(9128,
390 -efunc(737,
392 
#define QF_EPOOL_PUT_(p_, e_, qs_id_)
Platform-dependent macro defining how QF should return an event e_ to the event pool p_.
Definition: macros.hpp:143
#define QF_EPOOL_GET_(p_, e_, m_, qs_id_)
Platform-dependent macro defining how QF should obtain an event e_ from the event pool p_.
Definition: macros.hpp:134
#define QF_EPOOL_EVENT_SIZE_(p_)
Platform-dependent macro defining how QF should obtain the event pool block-size.
Definition: macros.hpp:126
#define QACTIVE_EQUEUE_SIGNAL_(me_)
Platform-dependent macro defining how QF should signal the active object task that an event has just ...
Definition: macros.hpp:87
#define QACTIVE_EQUEUE_WAIT_(me_)
Platform-dependent macro defining how QF should block the calling task when the QF native queue is em...
Definition: macros.hpp:71
#define QF_EPOOL_INIT_(p_, poolSto_, poolSize_, evtSize_)
Platform-dependent macro defining the event pool initialization.
Definition: macros.hpp:117
namespace associated with the QP/C++ framework
Definition: struct.dox:1
void QS_target_info_(std::uint8_t const isReset) noexcept
send the Target info (object sizes, build time-stamp, QP version)
Definition: qs.cpp:464
void QF_EVT_REF_CTR_INC_(QEvt const *const e) noexcept
increment the refCtr_ of an event e
Definition: qf_pkg.hpp:150
static QXKIdleThread l_idleThread
Definition: qxk.cpp:72
QF_EPOOL_TYPE_ QF_pool_[QF_MAX_EPOOL]
allocate event pools
Definition: qf_dyn.cpp:54
void QF_EVT_REF_CTR_DEC_(QEvt const *const e) noexcept
decrement the refCtr_ of an event e
Definition: qf_pkg.hpp:155
#define Q_STATE_CAST(handler_)
Macro to perform casting to QStateHandler.
Definition: qep.hpp:642
#define QEP_ENTER_(state_)
helper macro to trigger entry action in an HSM
Definition: qep_hsm.cpp:65
#define QEP_EXIT_(state_)
helper macro to trigger exit action in an HSM
Definition: qep_hsm.cpp:55
#define QEP_TRIG_(state_, sig_)
helper macro to trigger internal event in an HSM
Definition: qep_hsm.cpp:51
#define QEP_ACT_PTR_INC_(act_)
Internal macro to increment the given action table act_.
Definition: qep_msm.cpp:53
std::uint_fast8_t QF_LOG2(QP::QPSetBits x) noexcept
function that returns (log2(x) + 1), where x is a 32-bit bitmask
Definition: qf_act.cpp:151
#define QF_PTR_INC_(p_)
Definition: qf_act.cpp:57
#define QF_CRIT_STAT_
This is an internal macro for defining the critical section status type.
Definition: qf_pkg.hpp:56
#define QF_PTR_AT_(base_, i_)
access element at index i_ from the base pointer base_
Definition: qf_pkg.hpp:171
#define Q_ASSERT_CRIT_(id_, test_)
Definition: qf_pkg.hpp:94
#define QF_EVT_CONST_CAST_(e_)
helper macro to cast const away from an event pointer e_
Definition: qf_pkg.hpp:43
#define QF_CRIT_X_()
This is an internal macro for exiting a critical section.
Definition: qf_pkg.hpp:77
#define QF_PTR_RANGE_(x_, min_, max_)
macro to test that a pointer x_ is in range between min_ and max_
Definition: qf_pkg.hpp:168
#define Q_REQUIRE_CRIT_(id_, test_)
Definition: qf_pkg.hpp:101
#define QF_CRIT_E_()
This is an internal macro for entering a critical section.
Definition: qf_pkg.hpp:66
#define Q_ERROR_CRIT_(id_)
Definition: qf_pkg.hpp:103
#define QF_QMACTIVE_TO_QMSM_CONST_CAST_(qact_)
Internal macro to cast a QP::QMActive pointer qact_ to QP::QMsm const *.
Definition: qf_qmact.cpp:53
#define QF_QMACTIVE_TO_QMSM_CAST_(qact_)
Internal macro to cast a QP::QMActive pointer qact_ to QP::QMsm*.
Definition: qf_qmact.cpp:49
#define QK_ISR_CONTEXT_()
Internal port-specific macro that reports the execution context.
Definition: qk.hpp:173
#define QF_SCHED_LOCK_(prio_)
Internal macro for selective scheduler locking.
Definition: qk.hpp:183
#define QF_SCHED_UNLOCK_()
Internal macro for selective scheduler unlocking.
Definition: qk.hpp:192
#define QF_SCHED_STAT_
Internal macro to represent the scheduler lock status.
Definition: qk.hpp:180
#define QK_ISR_EXIT()
Define the ISR exit sequence, if the compiler supports writing interrupts in C++.
Definition: qk_port.hpp:67
#define QK_ISR_ENTRY()
Define the ISR entry sequence, if the compiler supports writing interrupts in C++.
Definition: qk_port.hpp:56
#define QF_MPOOL_EL(type_)
Memory pool element to allocate correctly aligned storage for QP::QMPool.
Definition: qmpool.hpp:176
#define QS_CRIT_STAT_
This is an internal macro for defining the critical section status type.
Definition: qs.hpp:783
#define QS_CRIT_X_()
This is an internal macro for exiting a critical section.
Definition: qs.hpp:803
#define QS_CRIT_E_()
This is an internal macro for entering a critical section.
Definition: qs.hpp:793
#define QS_TEST_PROBE(code_)
QS macro to apply a Test-Probe.
Definition: qs.hpp:1073
#define QS_TEST_PROBE_ID(id_, code_)
QS macro to apply a Test-Probe.
Definition: qs.hpp:1077
#define QS_BEGIN_PRE_(rec_, qs_id_)
Definition: qs_dummy.hpp:96
#define QS_BEGIN_NOCRIT_PRE_(rec_, qs_id_)
Definition: qs_dummy.hpp:98
#define QS_OBJ_PRE_(obj_)
Definition: qs_dummy.hpp:107
#define QS_FUN_PRE_(fun_)
Definition: qs_dummy.hpp:108
#define QS_END_PRE_()
Definition: qs_dummy.hpp:97
#define QS_INSERT_ESC_BYTE_(b_)
Internal QS macro to insert an escaped byte into the QS buffer.
Definition: qs_pkg.hpp:51
#define QS_REC_NUM_(enum_)
Internal QS macro to cast enumerated QS record number to uint8_t.
Definition: qs_pkg.hpp:250
#define QS_INSERT_BYTE_(b_)
Internal QS macro to insert an un-escaped byte into the QS buffer.
Definition: qs_pkg.hpp:43
#define QV_CPU_SLEEP()
Macro to put the CPU to sleep safely in the cooperative.
Definition: qv_port.hpp:52
#define QXK_ISR_CONTEXT_()
Internal port-specific macro that reports the execution context.
Definition: qxk.hpp:178
#define QXK_PTR_CAST_(type_, ptr_)
intertnal macro to encapsulate casting of pointers for MISRA deviations
Definition: qxk_pkg.hpp:76
#define QXK_CONTEXT_SWITCH_()
trigger context switch (used internally in QXK only)
Definition: qxk_port.hpp:50
#define QXTHREAD_CAST_(ptr_)
intertnal macro to encapsulate casting of pointers for MISRA deviations *‍/
Definition: qxk_xthr.cpp:68