Skip to content

Commit

Permalink
posix.cfg: Added support for strxfrm_l (danmar#5839)
Browse files Browse the repository at this point in the history
  • Loading branch information
orbitcowboy authored Jan 5, 2024
1 parent 42c3aeb commit 950b285
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 2 deletions.
24 changes: 24 additions & 0 deletions cfg/posix.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -4179,6 +4179,30 @@ The function 'mktemp' is considered to be dangerous due to race conditions and s
<valid>0:</valid>
</arg>
</function>
<!-- https://pubs.opengroup.org/onlinepubs/9699919799/functions/strxfrm_l.html -->
<!-- size_t strxfrm_l(char *restrict s1, const char *restrict s2, size_t n, locale_t locale) -->
<function name="strxfrm_l">
<returnValue type="size_t"/>
<noreturn>false</noreturn>
<leak-ignore/>
<!-- In case the 3rd argument is 0, the 1st argument is permitted to be a null pointer. (#6306) -->
<arg nr="1" direction="out">
<minsize type="argvalue" arg="3"/>
</arg>
<arg nr="2" direction="in">
<not-null/>
<not-uninit/>
<strz/>
<minsize type="argvalue" arg="3"/>
</arg>
<arg nr="3" direction="in">
<not-uninit/>
<valid>0:</valid>
</arg>
<arg nr="4" direction="in">
<not-uninit/>
</arg>
</function>
<!-- https://pubs.opengroup.org/onlinepubs/9699919799/functions/asctime.html -->
<!-- char *asctime_r(const struct tm *tm, char *buf); -->
<function name="asctime_r">
Expand Down
19 changes: 17 additions & 2 deletions test/cfg/posix.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,18 @@
#include <ctype.h>
#include <stdbool.h>
#include <time.h>
#include <string.h>
#include <strings.h>
#if defined(__APPLE__)
#include <xlocale.h>
#endif
#if !(defined(__APPLE__) && defined(__MACH__))
#include <mqueue.h>
#endif
#include <stdlib.h>
#include <unistd.h>
#include <wchar.h>
#include <string.h>
#include <strings.h>


#if !(defined(__APPLE__) && defined(__MACH__))
void nullPointer_mq_timedsend(mqd_t mqdes, const char* msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec* abs_timeout) {
Expand Down Expand Up @@ -102,6 +106,17 @@ int nullPointer_posix_trace_getnext_event(trace_id_t trid, struct posix_trace_ev
}
#endif // __TRACE_H__

size_t nullPointer_strxfrm_l(char *restrict dest, const char *restrict src, size_t count, locale_t locale)
{
(void)strxfrm_l(dest, src, count, locale);
// In case the 3rd argument is 0, the 1st argument is permitted to be a null pointer. (#6306)
(void)strxfrm_l(NULL, src, 0, locale);
(void)strxfrm_l(NULL, src, 1, locale);
(void)strxfrm_l(NULL, src, count, locale);
// cppcheck-suppress nullPointer
return strxfrm_l(dest, NULL, count, locale);
}

void nullPointer_pthread_attr_getstack(const pthread_attr_t *attr, void *stackaddr, size_t stacksize) {
// cppcheck-suppress nullPointer
(void) pthread_attr_getstack(NULL, &stackaddr, &stacksize);
Expand Down

0 comments on commit 950b285

Please sign in to comment.