QP/C++  7.3.3
Real-Time Embedded Framework
Loading...
Searching...
No Matches
options.lnt
Go to the documentation of this file.
1//============================================================================
2// QP/C Real-Time Embedded Framework (RTEF)
3// Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved.
4//
5// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial
6//
7// This software is dual-licensed under the terms of the open source GNU
8// General Public License version 3 (or any later version), or alternatively,
9// under the terms of one of the closed source Quantum Leaps commercial
10// licenses.
11//
12// The terms of the open source GNU General Public License version 3
13// can be found at: <www.gnu.org/licenses/gpl-3.0>
14//
15// The terms of the closed source Quantum Leaps commercial licenses
16// can be found at: <www.state-machine.com/licensing>
17//
18// Redistributions in source code must retain this top-level comment block.
19// Plagiarizing this software to sidestep the license obligations is illegal.
20//
21// Contact information:
22// <www.state-machine.com>
23// <info@state-machine.com>
24//============================================================================
25//! @date Last updated on: 2024-02-19
26//! @version Last updated for: @ref qpcpp_7_3_0
27//!
28//! @file
29//! @brief PC-Lint-Plus option file for linting QP/C++ source code
30
31//============================================================================
32// general options
33-unit_check // perform only subset check (suppresses Global Wrapup)
34-max_threads=1 // suppress message "no '-max_threads=N' option"
35//-vf // print names of all source files (for debugging linting)
36
37// include directories
38-i. // QP/C++ port includes (see also qk/ and qv/)
39-i%QPCPP%/include // QP/C++ public includes
40
41// standards
42au-autosar.lnt // AUTOSAR:C++14
43au-ds.lnt // Dan Saks recommendations
44au-ql-cpp11.lnt // Quantum Leaps coding standard for C++11
45
46
47// size/alignment options
48cpu.lnt // for the chosen CPU
49
50// defined macros (might be undefined on command-line with -u<macro>)
51-dQ_SPY
52-dQ_UTEST
53
54//============================================================================
55// QP/C++ options for clients
56qpcpp.lnt // QP/C++ options
57
58//============================================================================
59// additional suppression rules for building QP/C source code...
60
61// general suppression for now...
62
63// preprocessor directive ... is deprecated. [AUTOSAR Rule A16-0-1]
64-e586
65
66// preprocessor directive encountered in conditionally excluded region
67// [AUTOSAR Rule A16-0-1], [AUTOSAR Rule A16-6-1]
68-e886
69
70// friend ... in class
71-e9435
72
73// symbol ... has array type
74-e9436
75
76// enum ... is not a scoped enumeration [AUTOSAR Rule A7-2-3]
77-e9419
78
79// QEP -----------------------------------------------------------------------
80
81//! MC++R16-0-4 function-like macro ???
82-esym(9026,
87
88//! M4-D4.9(A) function-like macro
89//! @tr{DVP-QP-MC4-D04_09B}
90-esym(9026,
91 QHSM_RESERVED_EVT_,
92 QS_STATE_ENTRY_,
93 QS_STATE_EXIT_)
94
95// implicit conversion of enum 'QP::QAsm::QStateRet' to integral type
96-esym(641,
97 QP::QAsm::QStateRet)
98
99// MC++R7-1-2 parameter of function could be pointer to const
100-esym(818,
101 QP::QHsm::top)
102
103// QF ------------------------------------------------------------------------
104
105// MC++R16-0-4 function-like macro
106-esym(9026,
117 QTICKER_CAST_)
118
119// MC++R16-0-4 function-like macro
120-esym(9026,
127
128// MC++R10-0-6 unparenthesized macro parameter in definition of macro
129-esym(9022,
131
132// [AUTOSAR Rule A5-2-3] cast drops const qualifier
133-emacro(9005,
135
136// M3-R11.3(r) cast from pointer to object type
137-emacro(9087,
138 QTICKER_CAST_)
139
140// suspicious pointer-to-pointer conversion (area too small)
141-emacro(826,
142 QTICKER_CAST_)
143
144// AC++M5-2-9 casting from pointer type to integer type
145-emacro(9091,
147
148// [AC++M12-1-1] non-static data member not initialized by ctor
149-esym(1401,
150 QP::QEvt::*,
151 QP::QActive::*)
152
153// definition of macro ends in semi-colon
154-esym(823,
156
157// MC++5-2-8 conversion from integer type (0) to pointer type
158-emacro(9010,
160
161
162// M3-R11.8(r) cast drops const qualifier
163-emacro(9005,
165
166// M3-D11.5(a) conversion from pointer to void to other pointer type
167-efunc(9079,
168 QF_bzero)
169
170// M3-R17.8(a) function parameter modified
171-efunc(9044,
172 QF_LOG2,
173 QMPool_init)
174
175// M3-R18.1(r) potential out of bounds pointer access
176-emacro(661,
178
179// AR-M5-2-8 conversion from pointer to void to other pointer type
180-emacro(9079,
182
183// M3-R18.3(r) relational operator <= applied to pointers
184-emacro(946,
186
187// M3-R8.13(a) parameter of function could be pointer to const
188-efunc(818,
189 QP::QActive::start,
190 QP::QTicker::postLIFO)
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// AC++M5-2-3: downcast of polymorphic type
204-efunc(9171,
205 QP::QActive::post_,
206 QP::QActive::postLIFO)
207
208// BARR-C:2018 R 6.2c return statement before end of function
209-efunc(904,
210 QP::QActive::post_,
211 QP::QActive::postLIFO)
212
213// [AC++M5-2-2]: casting from base class to derived class (QP::QActiveDummy)
214-efunc(1939,
215 QP::QActive::post_,
216 QP::QActive::postLIFO)
217
218// PCLP-1731: public virtual function (in a class without virtual destructor)
219-esym(1731,
220 QP::QTicker::*)
221
222 // PCLP-1933: call to unqualified virtual function from non-static member function
223-efunc(1933,
224 QP::QActive::start)
225
226// PCLP-9079:
227-efunc(9079,
228 QP::QF::bzero_,
229 QP::QTimeEvt::armX,
230 QP::QTimeEvt::disarm,
231 QP::QTimeEvt::rearm,
232 QP::QMPool::init,
233 QP::QMPool::get,
234 QP::QMPool::put)
235
236
237// QV ------------------------------------------------------------------------
238// MC++R16-0-4 function-like macro
239-esym(9026,
241
242
243// QK ------------------------------------------------------------------------
244
245// MC++R16-0-4 function-like macro
246-esym(9026,
250
251
252// QXK -----------------------------------------------------------------------
253// MC++R16-0-4 function-like macro
254-esym(9026,
260
261// MC++R10-0-6 unparenthesized macro parameter in definition of macro
262-esym(9022,
264
265// MC++R5-2-7 pointer type converted to unrelated pointer
266-emacro(9176,
268
269// M3-R11.3(r) cast to pointer to different object type
270//-emacro(9087,
271// QXK_PTR_CAST_,
272// QXTHREAD_CAST_)
273
274// MC++R5-2-7 pointer type converted to unrelated pointer type
275-emacro(9176,
277
278// MC++R5-2-3 downcast of polymorphic type ... to type ...
279-emacro(9171,
281
282// casting from base class 'QP::QActive' to derived class
283-emacro(1939,
285
286// suspicious pointer-to-pointer conversion (area too small)
287-emacro(826,
290
291
292// QS ------------------------------------------------------------------------
293// the following options are needed only when Q_SPY is defined
294
295// MC++R16-0-4 function-like macro
296-esym(9026,
301 QS_PTR_AT_,
302 QS_PTR_INC_,
303 QS_INSERT_BYTE_,
304 QS_INSERT_ESC_BYTE_,
305 QS_REC_NUM_)
306
307// M3-R14.3(r) boolean condition for 'if' always evaluates to 'false'
308-emacro(774,,
309 QS_INSERT_BYTE_,
310 QS_INSERT_ESC_BYTE_,
311 QS_BEGIN_PRE_,
312 QS_BEGIN_PRE_)
313
314// the right operand to << always evaluates to 0
315-emacro(845,
316 QS_BEGIN_PRE_,
317 QS_BEGIN_PRE_)
318
319// excessive shift value (precision 3 shifted right by 3)
320-emacro(572,
321 QS_BEGIN_PRE_,
322 QS_BEGIN_PRE_)
323
324// constant expression evaluates to 0 in 'binary' operation '>>'
325-emacro(778,
326 QS_BEGIN_PRE_,
327 QS_BEGIN_PRE_)
328
329// constant value used in Boolean context
330-emacro(506,
331 QS_BEGIN_PRE_,
332 QS_BEGIN_PRE_)
333
334// bitwise operator '>>' applied to signed underlying type [AS-M5-0-21]
335-emacro(9130,
336 QS_BEGIN_PRE_,
337 QS_BEGIN_PRE_)
338
339// use of c-style cast to void [AS-A5-2-2]
340-emacro(1954,
341 QS_END_PRE_)
342
343// MC++R0-1-9 operator == always evaluates to true
344-emacro(948,
345 QS_BEGIN_PRE_)
346
347// MC++R0-1-1, MC++R0-1-2, MC++R0-1-9
348// left operand to '||' always evaluates to 'true'
349-emacro(944,
350 QS_BEGIN_PRE_)
351
352// MC++R5-2-9 casting from pointer type to integer type
353-emacro(9091,
354 QS_OBJ_PRE_,
355 QS_FUN_PRE_)
356
357// M3-R11.6(r) explicit cast from 'void *volatile' to 'uint32_t'
358//-emacro(923,
359// QS_OBJ_PRE_,
360// QS_FUN_PRE_)
361
362// M3-R11.1(4) conversion between pointer to function and differing type
363//-emacro(9074,
364// QS_FUN_PRE_)
365
366// definition of macro ends in semi-colon
367-esym(823,
369 QS_BEGIN_PRE_)
370
371// union initialization
372-efunc(708,
373 QS_f64_fmt_)
374
375// M3-R19.2(a) union declared
376-efunc(9018,
377 QS_f32_fmt_,
378 QS_f64_fmt_)
379
380// MC++R10-0-6 unparenthesized macro parameter in definition of macro
381-esym(9022,
384
385// AR M5-0-10 the result of the ~ operator applied to an object with an
386// underlying type of 'unsigned char' must be cast to 'unsigned char'
387// in this context
388-efunc(9126,
389 QP::QS::glbFilter_,
390 QP::QS::locFilter_)
391
392// don't report problems within QS_target_info_() function
393-efunc(9130,
394 QP::QS_target_info_)
395-efunc(9114,
396 QP::QS_target_info_)
397-efunc(9117,
398 QP::QS_target_info_)
399-efunc(9125,
400 QP::QS_target_info_)
401-efunc(9112,
402 QP::QS_target_info_)
403-efunc(9128,
404 QP::QS_target_info_)
405-efunc(737,
406 QP::QS_target_info_)
407
void bzero_(void *const start, std::uint_fast16_t const len) noexcept
Definition qf_act.cpp:81
void init()
Definition qk.cpp:368
QP/C++ framework.
Definition qequeue.hpp:50
std::uint_fast8_t QF_LOG2(QP::QPSetBits x) noexcept
Definition qf_act.cpp:101
#define QF_SCHED_LOCK_(ceil_)
Definition qk.hpp:127
#define QF_EPOOL_EVENT_SIZE_(p_)
Definition qk.hpp:184
#define QACTIVE_EQUEUE_SIGNAL_(me_)
Definition qk.hpp:148
#define QF_SCHED_UNLOCK_()
Definition qk.hpp:136
#define QACTIVE_EQUEUE_WAIT_(me_)
Definition qk.hpp:143
#define QF_EPOOL_PUT_(p_, e_, qsId_)
Definition qk.hpp:191
#define QF_EPOOL_INIT_(p_, poolSto_, poolSize_, evtSize_)
Definition qk.hpp:180
#define QF_SCHED_STAT_
Definition qk.hpp:124
#define QF_EPOOL_GET_(p_, e_, m_, qsId_)
Definition qk.hpp:187
#define QF_MPOOL_EL(evType_)
Definition qmpool.hpp:77
#define QF_MEM_APP()
Definition qp.hpp:1276
#define Q_STATE_CAST(handler_)
Definition qp.hpp:493
#define QF_MEM_SYS()
Definition qp.hpp:1271
#define Q_ACTION_CAST(act_)
Definition qp_pkg.hpp:82
#define QF_CONST_CAST_(type_, ptr_)
Definition qp_pkg.hpp:79
#define Q_UINTPTR_CAST_(ptr_)
Internal helper macro to cast pointers to integers.
Definition qp_pkg.hpp:81
#define QF_PTR_RANGE_(x_, min_, max_)
Definition qp_pkg.hpp:80
#define QK_ISR_EXIT()
Definition qp_port.hpp:123
#define QXK_ISR_CONTEXT_()
Check if the code executes in the ISR context.
Definition qp_port.hpp:137
#define QK_ISR_CONTEXT_()
Definition qp_port.hpp:111
#define QV_CPU_SLEEP()
! def QF_MEM_ISOLATE
Definition qp_port.hpp:100
#define QXK_CONTEXT_SWITCH_()
Trigger context switch (used internally in QXK only)
Definition qp_port.hpp:140
#define QK_ISR_ENTRY()
Define the ISR entry sequence.
Definition qp_port.hpp:114
#define QS_CRIT_STAT
Definition qs.hpp:590
#define QS_MEM_APP()
Definition qs.hpp:610
#define QS_TEST_PROBE(code_)
Definition qs.hpp:874
#define QS_TEST_PROBE_ID(id_, code_)
Definition qs.hpp:877
#define QS_CRIT_EXIT()
Definition qs.hpp:600
#define QS_MEM_SYS()
Definition qs.hpp:605
#define QS_CRIT_ENTRY()
Definition qs.hpp:595
#define QF_CRIT_ENTRY()
Definition qsafe.h:58
#define Q_ASSERT_INCRIT(id_, expr_)
Definition qsafe.h:72
#define Q_ENSURE_INCRIT(id_, expr_)
Definition qsafe.h:145
#define QF_CRIT_EXIT()
Definition qsafe.h:62
#define Q_REQUIRE_INCRIT(id_, expr_)
Definition qsafe.h:136
#define Q_ERROR_INCRIT(id_)
Definition qsafe.h:76
#define QXTHREAD_EQUEUE_SIGNAL_(me_)
Definition qxk.hpp:277
#define QXTHREAD_CAST_(ptr_)
Definition qxk.hpp:305
#define QXK_PTR_CAST_(type_, ptr_)
Definition qxk.hpp:308