Fwd: New Defects reported by Coverity Scan for RTEMS
Sebastian Huber
sebastian.huber at embedded-brains.de
Wed Dec 9 09:11:51 UTC 2020
On 08/12/2020 19:10, Gedare Bloom wrote:
>
> Hi all,
>
> I get a text report on new defects from Coverity. I don't know how I
> managed to sign up for it, and I'm not sure I can get it sent to any
> list automatically, but here is the current updated new defects. Just
> looks like two new ones related to static assertions.
>
> ---------- Forwarded message ---------
> From: <scan-admin at coverity.com <mailto:scan-admin at coverity.com>>
> Date: Mon, Dec 7, 2020 at 7:38 AM
> Subject: New Defects reported by Coverity Scan for RTEMS
> To: <gedare at gwmail.gwu.edu <mailto:gedare at gwmail.gwu.edu>>
>
>
> Hi,
>
> Please find the latest report on new defect(s) introduced to RTEMS
> found with Coverity Scan.
>
> 1 new defect(s) introduced to RTEMS found with Coverity Scan.
> 10 defect(s), reported by Coverity Scan earlier, were marked fixed in
> the recent build analyzed by Coverity Scan.
>
> New defect(s) Reported-by: Coverity Scan
> Showing 1 of 1 defect(s)
>
>
> ** CID 1470570: (PARSE_ERROR)
> /cpukit/include/rtems/confdefs/inittask.h: 110 in ()
> /cpukit/include/rtems/confdefs/inittask.h: 110 in ()
>
>
> ________________________________________________________________________________________________________
> *** CID 1470570: (PARSE_ERROR)
> /cpukit/include/rtems/confdefs/inittask.h: 110 in ()
> 104 */
> 105 #pragma GCC diagnostic push
> 106 #pragma GCC diagnostic ignored "-Waddress"
> 107 #pragma GCC diagnostic ignored "-Wpragmas"
> 108 #pragma GCC diagnostic ignored "-Wtautological-pointer-compare"
> 109
> >>> CID 1470570: (PARSE_ERROR)
> >>> type of cast must be integral
> 110 RTEMS_STATIC_ASSERT(
> 111 CONFIGURE_INIT_TASK_ENTRY_POINT != NULL,
> 112 CONFIGURE_INIT_TASK_ENTRY_POINT_MUST_NOT_BE_NULL
> 113 );
> 114
> 115 #pragma GCC diagnostic pop
> /cpukit/include/rtems/confdefs/inittask.h: 110 in ()
> 104 */
> 105 #pragma GCC diagnostic push
> 106 #pragma GCC diagnostic ignored "-Waddress"
> 107 #pragma GCC diagnostic ignored "-Wpragmas"
> 108 #pragma GCC diagnostic ignored "-Wtautological-pointer-compare"
> 109
> >>> CID 1470570: (PARSE_ERROR)
> >>> expression must be an integral constant expression
> 110 RTEMS_STATIC_ASSERT(
> 111 CONFIGURE_INIT_TASK_ENTRY_POINT != NULL,
> 112 CONFIGURE_INIT_TASK_ENTRY_POINT_MUST_NOT_BE_NULL
> 113 );
> 114
> 115 #pragma GCC diagnostic pop
I checked an example code with three compilers and noticed no standard
related warnings. I can ask on a C/C++ mailing list if the code is
standard compliant. It could be Coverity bug.
#include <cstddef>
void f(void);
static_assert(f != NULL, "f");
constexpr bool g()
{
return f != NULL;
}
extern const bool b;
const bool b = g();
arm-rtems6-g++ -Wall -Wextra -pedantic -std=c++11 -S -o - test.cc
.cpu arm7tdmi
.eabi_attribute 20, 1
.eabi_attribute 21, 1
.eabi_attribute 23, 3
.eabi_attribute 24, 1
.eabi_attribute 25, 1
.eabi_attribute 26, 2
.eabi_attribute 30, 6
.eabi_attribute 34, 0
.eabi_attribute 18, 4
.file "test.cc"
test.cc:5:17: warning: the address of 'void f()' will never be NULL
[-Waddress]
5 | static_assert(f != NULL, "f");
| ^
test.cc: In function 'constexpr bool g()':
test.cc:9:12: warning: the address of 'void f()' will never be NULL
[-Waddress]
9 | return f != NULL;
| ^
.text
.global b
.section .rodata
.type b, %object
.size b, 1
b:
.byte 1
.ident "GCC: (GNU) 10.2.1 20201203 (RTEMS 6, RSB
ff6b2320ed34abab48751022085912217f42590d, Newlib 7fa8405)"
g++ -Wall -Wextra -pedantic -std=c++11 -S -o - test.cc
.file "test.cc"
test.cc:5:17: warning: the address of ‘void f()’ will never be NULL
[-Waddress]
static_assert(f != NULL, "f");
^
test.cc: In function ‘constexpr bool g()’:
test.cc:9:12: warning: the address of ‘void f()’ will never be NULL
[-Waddress]
return f != NULL;
^
.text
.globl b
.section .rodata
.type b, @object
.size b, 1
b:
.byte 1
.ident "GCC: (SUSE Linux) 7.5.0"
.section .note.GNU-stack,"", at progbits
clang -Wall -Wextra -pedantic -std=c++11 -S -o - test.cc
test.cc:5:15: warning: comparison of function 'f' not equal to a null
pointer is always true [-Wtautological-pointer-compare]
static_assert(f != NULL, "f");
^ ~~~~
test.cc:5:15: note: prefix with the address-of operator to silence this
warning
static_assert(f != NULL, "f");
^
&
test.cc:9:10: warning: comparison of function 'f' not equal to a null
pointer is always true [-Wtautological-pointer-compare]
return f != NULL;
^ ~~~~
test.cc:9:10: note: prefix with the address-of operator to silence this
warning
return f != NULL;
^
&
.text
.file "test.cc"
.type b, at object # @b
.section .rodata,"a", at progbits
.globl b
b:
.byte 1 # 0x1
.size b, 1
.ident "clang version 7.0.1 (tags/RELEASE_701/final 349238)"
.section ".note.GNU-stack","", at progbits
.addrsig
.addrsig_sym b
2 warnings generated.
--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.huber at embedded-brains.de
phone: +49-89-18 94 741 - 16
fax: +49-89-18 94 741 - 08
Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
More information about the devel
mailing list