Problem Report Number |
0072 |
Submitter's Classification |
Specification problem |
State |
Resolved |
Resolution |
Interpretation (INT) |
Problem Resolution ID |
INT.PX.0007 |
Raised |
2022-10-26 02:43 |
Updated |
2022-10-27 11:28 |
Published |
2022-10-27 11:28 |
Product Standard |
PSE52 Realtime Controller 1003.1-2003 System |
Certification Program |
POSIX Certified by IEEE and The Open Group |
Test Suite |
VSRT-PSE version 5.4.18 |
Test Identification |
/tset/rt.hdr/misc/types/T.types.2 |
Specification |
PSE52 Realtime Controller 1003.1-2003 System Product Standard |
Location in Spec |
2.12 Data Types |
Problem Summary |
Definition of timer_t type |
Problem Text |
POSIX.1.2004 requires timer_t to be an arithmetic type and a pointer type
in the code. However, this seems to have been relaxed in POSIX.1-2008. |
Test Output |
***********************************************************************
*
/tset/rt.hdr/misc/types/T.types 2 Failed
Test Description:
For UNIX98 mode:
When the header file <sys/types.h> is included, the type
timer_t
is defined as an arithmetic type.
For POSIX01 and UNIX03 test modes:
If _POSIX_TIMERS is not defined as -1 in <unistd.h>:
When the header file <sys/types.h> is included, the
type
timer_t is defined as an arithmetic type.
For other test modes:
When the header file <sys/types.h> is included, the type
timer_t
is defined.
Test Information:
Compilation exited with non-zero value when expected to succeed
Feature test macros: -D_POSIX_C_SOURCE=200112
Compiler or run-time messages or results:
cc02es.c: In function 'main':
cc02es.c:51:10: warning: assignment to 'timer_t' {aka 'void *'}
from
'int' makes pointer from integer without a cast
[-Wint-conversion]
51 | mytimer = 1;
| ^
cc02es.c:53:14: error: invalid operands to binary + (have
'timer_t'
{aka 'void *'} and 'timer_t' {aka 'void *'})
53 | if (mytimer + mytimer != 2) {
| ^
Compilation exited with non-zero value when expected to succeed
Feature test macros: -D_POSIX_C_SOURCE=200112 -D_POSIX_SOURCE
Compiler or run-time messages or results:
cc02es.c: In function 'main':
cc02es.c:51:10: warning: assignment to 'timer_t' {aka 'void *'}
from
'int' makes pointer from integer without a cast
[-Wint-conversion]
51 | mytimer = 1;
| ^
cc02es.c:53:14: error: invalid operands to binary + (have
'timer_t'
{aka 'void *'} and 'timer_t' {aka 'void *'})
53 | if (mytimer + mytimer != 2) {
| ^
***********************************************************************
* |