diff --git a/share/libc/math.h b/share/libc/math.h index a7a0ef9dbf6040e15ff30925742c05f9d1678ed0..f8d414b78b556b749ff9e4c74e78479764c2ab06 100644 --- a/share/libc/math.h +++ b/share/libc/math.h @@ -42,21 +42,19 @@ typedef double double_t; #define HUGE_VALL 0x1.0p32767L /* The constants below are not part of C99/C11 but they are defined in POSIX */ -#ifdef _XOPEN_SOURCE -# define M_E 0x1.5bf0a8b145769p1 /* e */ -# define M_LOG2E 0x1.71547652b82fep0 /* log_2 e */ -# define M_LOG10E 0x1.bcb7b1526e50ep-2 /* log_10 e */ -# define M_LN2 0x1.62e42fefa39efp-1 /* log_e 2 */ -# define M_LN10 0x1.26bb1bbb55516p1 /* log_e 10 */ -# define M_PI 0x1.921fb54442d18p1 /* pi */ -# define M_PI_2 0x1.921fb54442d18p0 /* pi/2 */ -# define M_PI_4 0x1.921fb54442d18p-1 /* pi/4 */ -# define M_1_PI 0x1.45f306dc9c883p-2 /* 1/pi */ -# define M_2_PI 0x1.45f306dc9c883p-1 /* 2/pi */ -# define M_2_SQRTPI 0x1.20dd750429b6dp0 /* 2/sqrt(pi) */ -# define M_SQRT2 0x1.6a09e667f3bcdp0 /* sqrt(2) */ -# define M_SQRT1_2 0x1.6a09e667f3bcdp-1 /* 1/sqrt(2) */ -#endif +#define M_E 0x1.5bf0a8b145769p1 /* e */ +#define M_LOG2E 0x1.71547652b82fep0 /* log_2 e */ +#define M_LOG10E 0x1.bcb7b1526e50ep-2 /* log_10 e */ +#define M_LN2 0x1.62e42fefa39efp-1 /* log_e 2 */ +#define M_LN10 0x1.26bb1bbb55516p1 /* log_e 10 */ +#define M_PI 0x1.921fb54442d18p1 /* pi */ +#define M_PI_2 0x1.921fb54442d18p0 /* pi/2 */ +#define M_PI_4 0x1.921fb54442d18p-1 /* pi/4 */ +#define M_1_PI 0x1.45f306dc9c883p-2 /* 1/pi */ +#define M_2_PI 0x1.45f306dc9c883p-1 /* 2/pi */ +#define M_2_SQRTPI 0x1.20dd750429b6dp0 /* 2/sqrt(pi) */ +#define M_SQRT2 0x1.6a09e667f3bcdp0 /* sqrt(2) */ +#define M_SQRT1_2 0x1.6a09e667f3bcdp-1 /* 1/sqrt(2) */ /* The following specifications will set errno. */ #define math_errhandling MATH_ERRNO diff --git a/share/libc/signal.h b/share/libc/signal.h index f1eb5d6cc1b20256a72059b97021f8219c07661d..458175c0aef5c02d33692115211af148407e4fac 100644 --- a/share/libc/signal.h +++ b/share/libc/signal.h @@ -44,9 +44,7 @@ typedef void (*__fc_sighandler_t) (int); #define sighandler_t __fc_sighandler_t /* for BSD 4.4 */ -#ifdef __USE_MISC typedef __fc_sighandler_t sig_t; -#endif #define SIG_DFL ((__fc_sighandler_t)0) /* default signal handling */ #define SIG_IGN ((__fc_sighandler_t)1) /* ignore signal */ @@ -96,7 +94,8 @@ typedef __fc_sighandler_t sig_t; #define SIGSYS 31 #define SIGUNUSED 31 - +#define SIGRTMIN 32 +#define SIGRTMAX 64 #define SA_NOCLDSTOP 0x00000001 #define SA_NOCLDWAIT 0x00000002 @@ -198,9 +197,25 @@ extern int sigdelset(sigset_t *set, int signum); */ extern int sigismember(const sigset_t *set, int signum); -extern int sigaction(int signum, const struct sigaction *act, - struct sigaction *oldact); - +extern struct sigaction __fc_sigaction[SIGRTMAX+1]; +extern struct sigaction *__fc_p_sigaction = __fc_sigaction; + +/*@ // missing: errno may be set to EINVAL when trying to set some signals + requires valid_signal: 0 <= signum <= SIGRTMAX; + requires valid_oldact_or_null: oldact == \null || \valid(oldact); + requires valid_read_act_or_null: act == \null || \valid_read(act); + requires separation:separated_acts: \separated(act, oldact); + assigns oldact == \null ? \empty : *oldact \from __fc_p_sigaction; + assigns act == \null ? \empty : __fc_p_sigaction[signum] \from *act; + assigns \result \from indirect:signum, indirect:act, indirect:*act, + indirect:oldact, indirect:*oldact; + ensures act_changed: act == \null || \subset(__fc_p_sigaction[signum], *act); + ensures oldact_assigned: oldact == \null || + \subset({*oldact}, __fc_p_sigaction[signum]); + ensures result_ok_or_error: \result == 0 || \result == -1; + */ +extern int sigaction(int signum, const struct sigaction *restrict act, + struct sigaction *restrict oldact); /*@ // missing: assigns *oldset \from 'previous mask in process' requires valid_set_or_null: set == \null || \valid_read(set); @@ -226,6 +241,13 @@ extern int sigprocmask(int how, const sigset_t * restrict set, */ extern int kill(pid_t pid, int sig); +/*@ // missing: errno may be set to EINVAL, EPERM, ESRCH + // missing: assigns 'other processes' \from 'other processes' + assigns \result \from indirect:pgrp, indirect: sig; + ensures result_ok_or_error: \result == 0 || \result == -1; +*/ +extern int killpg(pid_t pgrp, int sig); + __END_DECLS __POP_FC_STDLIB diff --git a/share/libc/stddef.h b/share/libc/stddef.h index e32d8548e869d1d2bee02714348b5b151cf7d2c1..38c32691d7e9bc2340a191773cef99b6f3f526c6 100644 --- a/share/libc/stddef.h +++ b/share/libc/stddef.h @@ -32,9 +32,7 @@ typedef __PTRDIFF_T ptrdiff_t; #endif __END_DECLS #include "__fc_define_size_t.h" -#ifdef __GNU_C__ #include "__fc_define_ssize_t.h" -#endif #include "__fc_define_wchar_t.h" #include "__fc_define_null.h" #define offsetof(type, member) __builtin_offsetof(type,member) diff --git a/share/libc/stdlib.h b/share/libc/stdlib.h index e69ed2aa5b7dd00a0a704e72dc6e398b8036dfe2..98a172ccdb0cdc17eab4112275724b0984f870b1 100644 --- a/share/libc/stdlib.h +++ b/share/libc/stdlib.h @@ -593,7 +593,6 @@ extern size_t wcstombs(char * restrict s, const wchar_t * restrict pwcs, size_t n); - // Note: this specification should ideally use a more specific predicate, // such as 'is_allocable_aligned(alignment, size)'. /*@ @@ -622,6 +621,17 @@ extern size_t wcstombs(char * restrict s, */ extern int posix_memalign(void **memptr, size_t alignment, size_t size); +/*@ + // missing: requires 'last 6 characters of template must be XXXXXX' + // missing: assigns \result, template[0..] \from 'filesystem', 'RNG'; + requires valid_template: valid_string(template); + assigns template[0..] \from \nothing; + assigns \result \from \nothing; + ensures result_error_or_valid_fd: \result == -1 || + 0 <= \result < __FC_FOPEN_MAX; + */ +extern int mkstemp(char *template); + __END_DECLS __POP_FC_STDLIB diff --git a/share/libc/string.h b/share/libc/string.h index b9e46ee597ed4f3a042c3289e0490e1fbdea9331..c8f5b3d8ec308565caed422e7debcb744c61c755 100644 --- a/share/libc/string.h +++ b/share/libc/string.h @@ -222,7 +222,6 @@ extern char *strpbrk(const char *s, const char *accept); @*/ extern char *strstr(const char *haystack, const char *needle); -#ifdef __USE_GNU /*@ requires valid_string_haystack: valid_read_string(haystack); @ requires valid_string_needle: valid_read_string(needle); @ assigns \result \from haystack, indirect:haystack[0..], @@ -232,7 +231,6 @@ extern char *strstr(const char *haystack, const char *needle); @ || (\subset(\result, haystack+(0..)) && \valid_read(\result)); @*/ extern char *strcasestr (const char *haystack, const char *needle); -#endif // internal state of strtok char *__fc_strtok_ptr; @@ -387,8 +385,6 @@ extern char *strncpy(char *restrict dest, size_t strlcpy(char * restrict dest, const char * restrict src, size_t n); // stpcpy is POSIX.1-2008 -#ifdef _POSIX_C_SOURCE -# if _POSIX_C_SOURCE >= 200809L /*@ requires valid_string_src: valid_read_string(src); @ requires room_string: \valid(dest+(0..strlen(src))); @ requires separation: @@ -399,8 +395,6 @@ size_t strlcpy(char * restrict dest, const char * restrict src, size_t n); @ ensures points_to_end: \result == dest + strlen(dest); @*/ extern char *stpcpy(char *restrict dest, const char *restrict src); -# endif -#endif /*@ // missing: separation @ requires valid_string_src: valid_read_string(src); @@ -502,15 +496,24 @@ extern char *strdup (const char *s); extern char *strndup (const char *s, size_t n); // More POSIX, non-C99 functions -#ifdef _POSIX_C_SOURCE extern char *stpncpy(char *restrict dest, const char *restrict src, size_t n); //extern int strcoll_l(const char *s1, const char *s2, locale_t locale); //extern char *strerror_l(int errnum, locale_t locale); extern int strerror_r(int errnum, char *strerrbuf, size_t buflen); -extern char *strsignal(int sig); + +extern char __fc_strsignal[64]; +char * const __fc_p_strsignal = __fc_strsignal; + +/*@ //missing: requires valid_signal(signum); + @ assigns \result \from __fc_p_strsignal, indirect:signum; + @ ensures result_internal_str: \result == __fc_p_strsignal; + @ ensures result_nul_terminated: \result[63] == 0; + @ ensures result_valid_string: valid_read_string(\result); + @*/ +extern char *strsignal(int signum); + //extern size_t strxfrm_l(char *restrict s1, const char *restrict s2, size_t n, // locale_t locale); -#endif __END_DECLS diff --git a/share/libc/unistd.h b/share/libc/unistd.h index d3e906a43b37b56b5c7ec700f3017b254d122a95..3e790d2126994b6800877bfbed1493e67e19ebae 100644 --- a/share/libc/unistd.h +++ b/share/libc/unistd.h @@ -900,7 +900,15 @@ extern char *getlogin(void); extern int getlogin_r(char *, size_t); extern int getpagesize(void); extern char *getpass(const char *); -extern pid_t getpgid(pid_t); + +/*@ //missing: assigns \result \from 'process PGID' + assigns \result \from indirect:pid; +*/ +extern pid_t getpgid(pid_t pid); + +/*@ //missing: assigns \result \from 'calling process PGID' + assigns \result \from \nothing; +*/ extern pid_t getpgrp(void); /*@ //missing: assigns \result \from 'process id' @@ -998,7 +1006,13 @@ extern int seteuid(uid_t uid); */ extern int setgid(gid_t gid); -extern int setpgid(pid_t, pid_t); +/*@ // missing: may assign to errno + // missing: assigns \result \from 'processes' + assigns \result \from indirect:pid, indirect:pgid; + ensures result_ok_or_error: \result == 0 || \result == -1; +*/ +extern int setpgid(pid_t pid, pid_t pgid); + extern pid_t setpgrp(void); /*@ // missing: may assign errno to EINVAL, EPERM or EAGAIN @@ -1063,12 +1077,16 @@ extern char *ttyname(int fildes); extern int ttyname_r(int, char *, size_t); extern useconds_t ualarm(useconds_t, useconds_t); -extern int unlink(const char *); -// usleep is not POSIX anymore since 200809 -#if (_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200809L) \ - || /* Glibc since 2.19: */ defined _DEFAULT_SOURCE \ - || /* Glibc versions <= 2.19: */ defined _BSD_SOURCE +/*@ // missing: may assign errno + // missing: assigns 'filesystem' \from path[0..]; + // missing: assigns \result \from 'filesystem'; + requires valid_string_path: valid_read_string(path); + assigns \result \from path[0..]; + ensures result_ok_or_error: \result == 0 || \result == -1; + */ +extern int unlink(const char *path); + /*@ assigns \result \from indirect:usec, indirect:Frama_C_entropy_source; assigns Frama_C_entropy_source \from Frama_C_entropy_source; @@ -1076,8 +1094,6 @@ extern int unlink(const char *); */ extern int usleep(useconds_t usec); -#endif - extern pid_t vfork(void); /*@ @@ -1093,7 +1109,6 @@ extern ssize_t write(int fd, const void *buf, size_t count); extern int setgroups(size_t size, const gid_t *list); // The following functions are GNU extensions -#ifdef _GNU_SOURCE /*@ // missing: assigns \result, *ruid, *euid, *suid \from 'process' @@ -1143,7 +1158,6 @@ int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); */ int setresgid(gid_t rgid, gid_t egid, gid_t sgid); -#endif __END_DECLS diff --git a/src/plugins/report/tests/report/oracle/csv.csv b/src/plugins/report/tests/report/oracle/csv.csv index 27957ca3cfac5d1699e63571fe34539b7c224d83..18a0e92bcf745d267e58b4a630a8962646e626ed 100644 --- a/src/plugins/report/tests/report/oracle/csv.csv +++ b/src/plugins/report/tests/report/oracle/csv.csv @@ -1,5 +1,5 @@ directory file line function property kind status property -FRAMAC_SHARE/libc math.h 528 pow precondition Unknown finite_logic_res: \is_finite(pow(x, y)) +FRAMAC_SHARE/libc math.h 526 pow precondition Unknown finite_logic_res: \is_finite(pow(x, y)) tests/report csv.c 11 main1 signed_overflow Unknown -2147483648 ≤ x * x tests/report csv.c 11 main1 signed_overflow Unknown x * x ≤ 2147483647 tests/report csv.c 12 main1 index_bound Unknown 0 ≤ x diff --git a/tests/builtins/oracle/imprecise.res.oracle b/tests/builtins/oracle/imprecise.res.oracle index 14a7a8fc9c75c9e6d16d8fc506eedc6a96ac5c51..d77f1466122eaff29333291e8a76e978c2c2fbab 100644 --- a/tests/builtins/oracle/imprecise.res.oracle +++ b/tests/builtins/oracle/imprecise.res.oracle @@ -59,6 +59,8 @@ __fc_strtok_ptr ∈ {0} __fc_strerror[0..63] ∈ [--..--] __fc_p_strerror ∈ {{ &__fc_strerror[0] }} + __fc_strsignal[0..63] ∈ [--..--] + __fc_p_strsignal ∈ {{ &__fc_strsignal[0] }} i ∈ {1} j ∈ {1; 2} k[0..4] ∈ [--..--] @@ -143,6 +145,8 @@ __fc_strtok_ptr ∈ {0} __fc_strerror[0..63] ∈ [--..--] __fc_p_strerror ∈ {{ &__fc_strerror[0] }} + __fc_strsignal[0..63] ∈ [--..--] + __fc_p_strsignal ∈ {{ &__fc_strsignal[0] }} v ∈ [--..--] addr ∈ [--..--] v1.[bits 0 to 7] ∈ {1} @@ -179,6 +183,8 @@ __fc_strtok_ptr ∈ {0} __fc_strerror[0..63] ∈ [--..--] __fc_p_strerror ∈ {{ &__fc_strerror[0] }} + __fc_strsignal[0..63] ∈ [--..--] + __fc_p_strsignal ∈ {{ &__fc_strsignal[0] }} v ∈ [--..--] addr ∈ [--..--] v1.[bits 0 to 7] ∈ {1} @@ -624,6 +630,8 @@ __fc_strtok_ptr ∈ {{ NULL ; &S___fc_strtok_ptr[0] }} __fc_strerror[0..63] ∈ [--..--] __fc_p_strerror ∈ {{ &__fc_strerror[0] }} + __fc_strsignal[0..63] ∈ [--..--] + __fc_p_strsignal ∈ {{ &__fc_strsignal[0] }} i ∈ {1} j ∈ {1; 2} k[0..4] ∈ [--..--] @@ -702,6 +710,8 @@ __fc_strtok_ptr ∈ {{ NULL ; &S___fc_strtok_ptr[0] }} __fc_strerror[0..63] ∈ [--..--] __fc_p_strerror ∈ {{ &__fc_strerror[0] }} + __fc_strsignal[0..63] ∈ [--..--] + __fc_p_strsignal ∈ {{ &__fc_strsignal[0] }} v ∈ [--..--] addr ∈ [--..--] v1.[bits 0 to 7] ∈ {1} @@ -741,6 +751,8 @@ __fc_strtok_ptr ∈ {{ NULL ; &S___fc_strtok_ptr[0] }} __fc_strerror[0..63] ∈ [--..--] __fc_p_strerror ∈ {{ &__fc_strerror[0] }} + __fc_strsignal[0..63] ∈ [--..--] + __fc_p_strsignal ∈ {{ &__fc_strsignal[0] }} v ∈ [--..--] addr ∈ [--..--] v1.[bits 0 to 7] ∈ {1} diff --git a/tests/builtins/oracle/memcpy.res.oracle b/tests/builtins/oracle/memcpy.res.oracle index 34325075722573f2b05936a38e2822674bfdb142..649c1f67a8f6a0006d1ee7a14c2927b14c3e86d6 100644 --- a/tests/builtins/oracle/memcpy.res.oracle +++ b/tests/builtins/oracle/memcpy.res.oracle @@ -400,6 +400,8 @@ __fc_strtok_ptr ∈ {0} __fc_strerror[0..63] ∈ [--..--] __fc_p_strerror ∈ {{ &__fc_strerror[0] }} + __fc_strsignal[0..63] ∈ [--..--] + __fc_p_strsignal ∈ {{ &__fc_strsignal[0] }} i ∈ [--..--] src[0..19] ∈ {0} dst1[0..19] ∈ {0} @@ -1383,6 +1385,19 @@ [ Valid ] Default behavior by Frama-C kernel. +-------------------------------------------------------------------------------- +--- Properties of Function 'strcasestr' +-------------------------------------------------------------------------------- + +[ Extern ] Post-condition 'result_null_or_in_haystack' + Unverifiable but considered Valid. +[ Extern ] Assigns nothing + Unverifiable but considered Valid. +[ Extern ] Froms (file share/libc/string.h, line 227) + Unverifiable but considered Valid. +[ Valid ] Default behavior + by Frama-C kernel. + -------------------------------------------------------------------------------- --- Properties of Function 'strtok' -------------------------------------------------------------------------------- @@ -1395,11 +1410,13 @@ Unverifiable but considered Valid. [ Extern ] Post-condition for 'resume_str' 'ptr_subset' Unverifiable but considered Valid. -[ Extern ] Assigns (file share/libc/string.h, line 242) +[ Extern ] Assigns (file share/libc/string.h, line 240) + Unverifiable but considered Valid. +[ Extern ] Assigns for 'new_str' (file share/libc/string.h, line 255) Unverifiable but considered Valid. -[ Extern ] Assigns for 'new_str' (file share/libc/string.h, line 257) +[ Extern ] Assigns for 'resume_str' (file share/libc/string.h, line 263) Unverifiable but considered Valid. -[ Extern ] Assigns for 'resume_str' (file share/libc/string.h, line 265) +[ Extern ] Froms (file share/libc/string.h, line 240) Unverifiable but considered Valid. [ Extern ] Froms (file share/libc/string.h, line 242) Unverifiable but considered Valid. @@ -1407,19 +1424,17 @@ Unverifiable but considered Valid. [ Extern ] Froms (file share/libc/string.h, line 246) Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 248) +[ Extern ] Froms for 'new_str' (file share/libc/string.h, line 255) Unverifiable but considered Valid. -[ Extern ] Froms for 'new_str' (file share/libc/string.h, line 257) - Unverifiable but considered Valid. -[ Extern ] Froms for 'new_str' (file share/libc/string.h, line 258) +[ Extern ] Froms for 'new_str' (file share/libc/string.h, line 256) Unverifiable but considered Valid. -[ Extern ] Froms for 'new_str' (file share/libc/string.h, line 259) +[ Extern ] Froms for 'new_str' (file share/libc/string.h, line 257) Unverifiable but considered Valid. -[ Extern ] Froms for 'resume_str' (file share/libc/string.h, line 265) +[ Extern ] Froms for 'resume_str' (file share/libc/string.h, line 263) Unverifiable but considered Valid. -[ Extern ] Froms for 'resume_str' (file share/libc/string.h, line 268) +[ Extern ] Froms for 'resume_str' (file share/libc/string.h, line 266) Unverifiable but considered Valid. -[ Extern ] Froms for 'resume_str' (file share/libc/string.h, line 271) +[ Extern ] Froms for 'resume_str' (file share/libc/string.h, line 269) Unverifiable but considered Valid. [ Valid ] Default behavior by Frama-C kernel. @@ -1442,11 +1457,13 @@ Unverifiable but considered Valid. [ Extern ] Post-condition for 'resume_str' 'saveptr_subset' Unverifiable but considered Valid. -[ Extern ] Assigns (file share/libc/string.h, line 284) +[ Extern ] Assigns (file share/libc/string.h, line 282) Unverifiable but considered Valid. -[ Extern ] Assigns for 'new_str' (file share/libc/string.h, line 299) +[ Extern ] Assigns for 'new_str' (file share/libc/string.h, line 297) Unverifiable but considered Valid. -[ Extern ] Assigns for 'resume_str' (file share/libc/string.h, line 309) +[ Extern ] Assigns for 'resume_str' (file share/libc/string.h, line 307) + Unverifiable but considered Valid. +[ Extern ] Froms (file share/libc/string.h, line 282) Unverifiable but considered Valid. [ Extern ] Froms (file share/libc/string.h, line 284) Unverifiable but considered Valid. @@ -1454,19 +1471,17 @@ Unverifiable but considered Valid. [ Extern ] Froms (file share/libc/string.h, line 288) Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 290) - Unverifiable but considered Valid. -[ Extern ] Froms for 'new_str' (file share/libc/string.h, line 299) +[ Extern ] Froms for 'new_str' (file share/libc/string.h, line 297) Unverifiable but considered Valid. -[ Extern ] Froms for 'new_str' (file share/libc/string.h, line 300) +[ Extern ] Froms for 'new_str' (file share/libc/string.h, line 298) Unverifiable but considered Valid. -[ Extern ] Froms for 'new_str' (file share/libc/string.h, line 301) +[ Extern ] Froms for 'new_str' (file share/libc/string.h, line 299) Unverifiable but considered Valid. -[ Extern ] Froms for 'resume_str' (file share/libc/string.h, line 309) +[ Extern ] Froms for 'resume_str' (file share/libc/string.h, line 307) Unverifiable but considered Valid. -[ Extern ] Froms for 'resume_str' (file share/libc/string.h, line 312) +[ Extern ] Froms for 'resume_str' (file share/libc/string.h, line 310) Unverifiable but considered Valid. -[ Extern ] Froms for 'resume_str' (file share/libc/string.h, line 315) +[ Extern ] Froms for 'resume_str' (file share/libc/string.h, line 313) Unverifiable but considered Valid. [ Valid ] Default behavior by Frama-C kernel. @@ -1479,11 +1494,11 @@ --- Properties of Function 'strsep' -------------------------------------------------------------------------------- -[ Extern ] Assigns (file share/libc/string.h, line 327) +[ Extern ] Assigns (file share/libc/string.h, line 325) Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 327) +[ Extern ] Froms (file share/libc/string.h, line 325) Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 328) +[ Extern ] Froms (file share/libc/string.h, line 326) Unverifiable but considered Valid. [ Valid ] Default behavior by Frama-C kernel. @@ -1500,7 +1515,7 @@ Unverifiable but considered Valid. [ Extern ] Assigns nothing Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 338) +[ Extern ] Froms (file share/libc/string.h, line 336) Unverifiable but considered Valid. [ Valid ] Default behavior by Frama-C kernel. @@ -1513,11 +1528,11 @@ Unverifiable but considered Valid. [ Extern ] Post-condition 'result_ptr' Unverifiable but considered Valid. -[ Extern ] Assigns (file share/libc/string.h, line 351) +[ Extern ] Assigns (file share/libc/string.h, line 349) Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 351) +[ Extern ] Froms (file share/libc/string.h, line 349) Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 352) +[ Extern ] Froms (file share/libc/string.h, line 350) Unverifiable but considered Valid. [ Valid ] Default behavior by Frama-C kernel. @@ -1534,11 +1549,11 @@ Unverifiable but considered Valid. [ Extern ] Post-condition for 'partial' 'equal_prefix' Unverifiable but considered Valid. -[ Extern ] Assigns (file share/libc/string.h, line 363) +[ Extern ] Assigns (file share/libc/string.h, line 361) Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 363) +[ Extern ] Froms (file share/libc/string.h, line 361) Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 364) +[ Extern ] Froms (file share/libc/string.h, line 362) Unverifiable but considered Valid. [ Valid ] Behavior 'complete' by Frama-C kernel. @@ -1555,11 +1570,28 @@ Unverifiable but considered Valid. [ Extern ] Post-condition 'bounded_result' Unverifiable but considered Valid. -[ Extern ] Assigns (file share/libc/string.h, line 382) +[ Extern ] Assigns (file share/libc/string.h, line 380) + Unverifiable but considered Valid. +[ Extern ] Froms (file share/libc/string.h, line 380) + Unverifiable but considered Valid. +[ Extern ] Froms (file share/libc/string.h, line 381) + Unverifiable but considered Valid. +[ Valid ] Default behavior + by Frama-C kernel. + +-------------------------------------------------------------------------------- +--- Properties of Function 'stpcpy' +-------------------------------------------------------------------------------- + +[ Extern ] Post-condition 'equal_contents' + Unverifiable but considered Valid. +[ Extern ] Post-condition 'points_to_end' + Unverifiable but considered Valid. +[ Extern ] Assigns (file share/libc/string.h, line 392) Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 382) +[ Extern ] Froms (file share/libc/string.h, line 392) Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 383) +[ Extern ] Froms (file share/libc/string.h, line 393) Unverifiable but considered Valid. [ Valid ] Default behavior by Frama-C kernel. @@ -1576,11 +1608,11 @@ Unverifiable but considered Valid. [ Extern ] Post-condition 'result_ptr' Unverifiable but considered Valid. -[ Extern ] Assigns (file share/libc/string.h, line 409) +[ Extern ] Assigns (file share/libc/string.h, line 403) Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 409) +[ Extern ] Froms (file share/libc/string.h, line 403) Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 412) +[ Extern ] Froms (file share/libc/string.h, line 406) Unverifiable but considered Valid. [ Valid ] Default behavior by Frama-C kernel. @@ -1595,23 +1627,23 @@ Unverifiable but considered Valid. [ Extern ] Post-condition for 'partial' 'sum_of_bounded_lengths' Unverifiable but considered Valid. -[ Extern ] Assigns for 'complete' (file share/libc/string.h, line 429) +[ Extern ] Assigns for 'complete' (file share/libc/string.h, line 423) Unverifiable but considered Valid. -[ Extern ] Assigns (file share/libc/string.h, line 423) +[ Extern ] Assigns (file share/libc/string.h, line 417) Unverifiable but considered Valid. -[ Extern ] Assigns for 'partial' (file share/libc/string.h, line 437) +[ Extern ] Assigns for 'partial' (file share/libc/string.h, line 431) Unverifiable but considered Valid. -[ Extern ] Froms for 'complete' (file share/libc/string.h, line 429) +[ Extern ] Froms for 'complete' (file share/libc/string.h, line 423) Unverifiable but considered Valid. -[ Extern ] Froms for 'complete' (file share/libc/string.h, line 431) +[ Extern ] Froms for 'complete' (file share/libc/string.h, line 425) Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 423) +[ Extern ] Froms (file share/libc/string.h, line 417) Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 424) +[ Extern ] Froms (file share/libc/string.h, line 418) Unverifiable but considered Valid. -[ Extern ] Froms for 'partial' (file share/libc/string.h, line 437) +[ Extern ] Froms for 'partial' (file share/libc/string.h, line 431) Unverifiable but considered Valid. -[ Extern ] Froms for 'partial' (file share/libc/string.h, line 439) +[ Extern ] Froms for 'partial' (file share/libc/string.h, line 433) Unverifiable but considered Valid. [ Valid ] Behavior 'complete' by Frama-C kernel. @@ -1626,11 +1658,11 @@ [ Extern ] Post-condition 'bounded_result' Unverifiable but considered Valid. -[ Extern ] Assigns (file share/libc/string.h, line 449) +[ Extern ] Assigns (file share/libc/string.h, line 443) Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 449) +[ Extern ] Froms (file share/libc/string.h, line 443) Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 450) +[ Extern ] Froms (file share/libc/string.h, line 444) Unverifiable but considered Valid. [ Valid ] Default behavior by Frama-C kernel. @@ -1639,11 +1671,11 @@ --- Properties of Function 'strxfrm' -------------------------------------------------------------------------------- -[ Extern ] Assigns (file share/libc/string.h, line 458) +[ Extern ] Assigns (file share/libc/string.h, line 452) Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 458) +[ Extern ] Froms (file share/libc/string.h, line 452) Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 459) +[ Extern ] Froms (file share/libc/string.h, line 453) Unverifiable but considered Valid. [ Valid ] Default behavior by Frama-C kernel. @@ -1658,19 +1690,19 @@ Unverifiable but considered Valid. [ Extern ] Post-condition for 'no_allocation' 'result_null' Unverifiable but considered Valid. -[ Extern ] Assigns for 'allocation' (file share/libc/string.h, line 470) +[ Extern ] Assigns for 'allocation' (file share/libc/string.h, line 464) Unverifiable but considered Valid. [ Extern ] Assigns nothing Unverifiable but considered Valid. [ Extern ] Assigns for 'no_allocation' nothing Unverifiable but considered Valid. -[ Extern ] Froms for 'allocation' (file share/libc/string.h, line 470) +[ Extern ] Froms for 'allocation' (file share/libc/string.h, line 464) Unverifiable but considered Valid. -[ Extern ] Froms for 'allocation' (file share/libc/string.h, line 471) +[ Extern ] Froms for 'allocation' (file share/libc/string.h, line 465) Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 467) +[ Extern ] Froms (file share/libc/string.h, line 461) Unverifiable but considered Valid. -[ Extern ] Froms for 'no_allocation' (file share/libc/string.h, line 477) +[ Extern ] Froms for 'no_allocation' (file share/libc/string.h, line 471) Unverifiable but considered Valid. [ Valid ] Behavior 'allocation' by Frama-C kernel. @@ -1678,7 +1710,7 @@ by Frama-C kernel. [ Valid ] Behavior 'no_allocation' by Frama-C kernel. -[ Extern ] Frees/Allocates nothing/(file share/libc/string.h, line 466) +[ Extern ] Frees/Allocates nothing/(file share/libc/string.h, line 460) Unverifiable but considered Valid. [ Extern ] Frees/Allocates for 'no_allocation' nothing/nothing Unverifiable but considered Valid. @@ -1693,19 +1725,19 @@ Unverifiable but considered Valid. [ Extern ] Post-condition for 'no_allocation' 'result_null' Unverifiable but considered Valid. -[ Extern ] Assigns for 'allocation' (file share/libc/string.h, line 488) +[ Extern ] Assigns for 'allocation' (file share/libc/string.h, line 482) Unverifiable but considered Valid. [ Extern ] Assigns nothing Unverifiable but considered Valid. [ Extern ] Assigns for 'no_allocation' nothing Unverifiable but considered Valid. -[ Extern ] Froms for 'allocation' (file share/libc/string.h, line 488) +[ Extern ] Froms for 'allocation' (file share/libc/string.h, line 482) Unverifiable but considered Valid. -[ Extern ] Froms for 'allocation' (file share/libc/string.h, line 489) +[ Extern ] Froms for 'allocation' (file share/libc/string.h, line 483) Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/string.h, line 484) +[ Extern ] Froms (file share/libc/string.h, line 478) Unverifiable but considered Valid. -[ Extern ] Froms for 'no_allocation' (file share/libc/string.h, line 498) +[ Extern ] Froms for 'no_allocation' (file share/libc/string.h, line 492) Unverifiable but considered Valid. [ Valid ] Behavior 'allocation' by Frama-C kernel. @@ -1713,11 +1745,28 @@ by Frama-C kernel. [ Valid ] Behavior 'no_allocation' by Frama-C kernel. -[ Extern ] Frees/Allocates nothing/(file share/libc/string.h, line 483) +[ Extern ] Frees/Allocates nothing/(file share/libc/string.h, line 477) Unverifiable but considered Valid. [ Extern ] Frees/Allocates for 'no_allocation' nothing/nothing Unverifiable but considered Valid. +-------------------------------------------------------------------------------- +--- Properties of Function 'strsignal' +-------------------------------------------------------------------------------- + +[ Extern ] Post-condition 'result_internal_str' + Unverifiable but considered Valid. +[ Extern ] Post-condition 'result_nul_terminated' + Unverifiable but considered Valid. +[ Extern ] Post-condition 'result_valid_string' + Unverifiable but considered Valid. +[ Extern ] Assigns nothing + Unverifiable but considered Valid. +[ Extern ] Froms (file share/libc/string.h, line 508) + Unverifiable but considered Valid. +[ Valid ] Default behavior + by Frama-C kernel. + -------------------------------------------------------------------------------- --- Properties of Function 'bzero' -------------------------------------------------------------------------------- @@ -2166,9 +2215,9 @@ -------------------------------------------------------------------------------- --- Status Report Summary -------------------------------------------------------------------------------- - 158 Completely validated - 225 Considered valid + 161 Completely validated + 238 Considered valid 29 To be validated 4 Alarms emitted - 416 Total + 432 Total -------------------------------------------------------------------------------- diff --git a/tests/builtins/oracle/memcpy2.res.oracle b/tests/builtins/oracle/memcpy2.res.oracle index bd415ec9eac9b34f5ed22f65f780b388f791b4a6..912286440a4435cca2a1146eb60e1d541b313ffe 100644 --- a/tests/builtins/oracle/memcpy2.res.oracle +++ b/tests/builtins/oracle/memcpy2.res.oracle @@ -27,6 +27,8 @@ __fc_strtok_ptr ∈ {0} __fc_strerror[0..63] ∈ [--..--] __fc_p_strerror ∈ {{ &__fc_strerror[0] }} + __fc_strsignal[0..63] ∈ [--..--] + __fc_p_strsignal ∈ {{ &__fc_strsignal[0] }} c ∈ [--..--] v ∈ {{ NULL ; &S_v[0] }} t[0..510] ∈ {0} or UNINITIALIZED diff --git a/tests/builtins/oracle/strnlen.res.oracle b/tests/builtins/oracle/strnlen.res.oracle index 9cacd457242f401eae1bff00691a9f9965a1881f..097bcf8ac85f81bbc49e03b7b0a16135a388faf8 100644 --- a/tests/builtins/oracle/strnlen.res.oracle +++ b/tests/builtins/oracle/strnlen.res.oracle @@ -47,6 +47,8 @@ __fc_strtok_ptr ∈ {0} __fc_strerror[0..63] ∈ [--..--] __fc_p_strerror ∈ {{ &__fc_strerror[0] }} + __fc_strsignal[0..63] ∈ [--..--] + __fc_p_strsignal ∈ {{ &__fc_strsignal[0] }} t1[0] ∈ {97} [1] ∈ {98} [2] ∈ {99} diff --git a/tests/builtins/oracle/write-const.res.oracle b/tests/builtins/oracle/write-const.res.oracle index 3548706927775625b2fda28b07dd323884377a37..8b39ca3d183021f676f5240a91aaf3c582e4e66e 100644 --- a/tests/builtins/oracle/write-const.res.oracle +++ b/tests/builtins/oracle/write-const.res.oracle @@ -24,6 +24,8 @@ __fc_strtok_ptr ∈ {0} __fc_strerror[0..63] ∈ [--..--] __fc_p_strerror ∈ {{ &__fc_strerror[0] }} + __fc_strsignal[0..63] ∈ [--..--] + __fc_p_strsignal ∈ {{ &__fc_strsignal[0] }} v ∈ [--..--] a ∈ {-1} b ∈ {1} @@ -49,6 +51,8 @@ __fc_strtok_ptr ∈ {0} __fc_strerror[0..63] ∈ [--..--] __fc_p_strerror ∈ {{ &__fc_strerror[0] }} + __fc_strsignal[0..63] ∈ [--..--] + __fc_p_strsignal ∈ {{ &__fc_strsignal[0] }} v ∈ [--..--] a ∈ {-1} b ∈ {84215045} @@ -71,6 +75,8 @@ __fc_strtok_ptr ∈ {0} __fc_strerror[0..63] ∈ [--..--] __fc_p_strerror ∈ {{ &__fc_strerror[0] }} + __fc_strsignal[0..63] ∈ [--..--] + __fc_p_strsignal ∈ {{ &__fc_strsignal[0] }} v ∈ [--..--] a ∈ {-1} b ∈ {1} @@ -92,6 +98,8 @@ __fc_strtok_ptr ∈ {0} __fc_strerror[0..63] ∈ [--..--] __fc_p_strerror ∈ {{ &__fc_strerror[0] }} + __fc_strsignal[0..63] ∈ [--..--] + __fc_p_strsignal ∈ {{ &__fc_strsignal[0] }} v ∈ [--..--] a ∈ {-1} b ∈ {2} diff --git a/tests/idct/oracle/ieee_1180_1990.res.oracle b/tests/idct/oracle/ieee_1180_1990.res.oracle index 2c7e41c81de51023519cf04af34b7d44f3d10625..288eef68b4c6d877a34f1fdbcfbdd25a17146633 100644 --- a/tests/idct/oracle/ieee_1180_1990.res.oracle +++ b/tests/idct/oracle/ieee_1180_1990.res.oracle @@ -1,7 +1,4 @@ [kernel] Parsing tests/idct/ieee_1180_1990.c (with preprocessing) -[kernel:parser:decimal-float] tests/idct/ieee_1180_1990.c:101: Warning: - Floating-point constant 3.14159265358979323846 is not represented exactly. Will use 0x1.921fb54442d18p1. - (warn-once: no further messages from category 'parser:decimal-float' will be emitted) [kernel] Parsing tests/idct/idct.c (with preprocessing) [eva] Analyzing a complete application starting at main [eva] Computing initial state @@ -2142,7 +2139,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 73) +[ Extern ] Froms (file share/libc/math.h, line 71) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2186,7 +2183,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 97) +[ Extern ] Froms (file share/libc/math.h, line 95) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2218,28 +2215,28 @@ [ Extern ] Post-condition for 'domain_error' 'errno_set' ensures errno_set: __fc_errno ≡ 1 Unverifiable but considered Valid. -[ Extern ] Assigns (file share/libc/math.h, line 134) +[ Extern ] Assigns (file share/libc/math.h, line 132) assigns __fc_errno, \result; Unverifiable but considered Valid. -[ Extern ] Assigns for 'domain_error' (file share/libc/math.h, line 141) +[ Extern ] Assigns for 'domain_error' (file share/libc/math.h, line 139) assigns __fc_errno, \result; Unverifiable but considered Valid. [ Extern ] Assigns for 'normal' nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 134) +[ Extern ] Froms (file share/libc/math.h, line 132) assigns __fc_errno \from x; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 134) +[ Extern ] Froms (file share/libc/math.h, line 132) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 141) +[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 139) assigns __fc_errno \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 141) +[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 139) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'normal' (file share/libc/math.h, line 137) +[ Extern ] Froms for 'normal' (file share/libc/math.h, line 135) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2262,28 +2259,28 @@ [ Extern ] Post-condition for 'domain_error' 'errno_set' ensures errno_set: __fc_errno ≡ 1 Unverifiable but considered Valid. -[ Extern ] Assigns (file share/libc/math.h, line 148) +[ Extern ] Assigns (file share/libc/math.h, line 146) assigns __fc_errno, \result; Unverifiable but considered Valid. -[ Extern ] Assigns for 'domain_error' (file share/libc/math.h, line 155) +[ Extern ] Assigns for 'domain_error' (file share/libc/math.h, line 153) assigns __fc_errno, \result; Unverifiable but considered Valid. [ Extern ] Assigns for 'normal' nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 148) +[ Extern ] Froms (file share/libc/math.h, line 146) assigns __fc_errno \from x; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 148) +[ Extern ] Froms (file share/libc/math.h, line 146) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 155) +[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 153) assigns __fc_errno \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 155) +[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 153) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'normal' (file share/libc/math.h, line 151) +[ Extern ] Froms for 'normal' (file share/libc/math.h, line 149) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2306,28 +2303,28 @@ [ Extern ] Post-condition for 'domain_error' 'errno_set' ensures errno_set: __fc_errno ≡ 1 Unverifiable but considered Valid. -[ Extern ] Assigns (file share/libc/math.h, line 162) +[ Extern ] Assigns (file share/libc/math.h, line 160) assigns __fc_errno, \result; Unverifiable but considered Valid. -[ Extern ] Assigns for 'domain_error' (file share/libc/math.h, line 169) +[ Extern ] Assigns for 'domain_error' (file share/libc/math.h, line 167) assigns __fc_errno, \result; Unverifiable but considered Valid. [ Extern ] Assigns for 'normal' nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 162) +[ Extern ] Froms (file share/libc/math.h, line 160) assigns __fc_errno \from x; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 162) +[ Extern ] Froms (file share/libc/math.h, line 160) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 169) +[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 167) assigns __fc_errno \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 169) +[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 167) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'normal' (file share/libc/math.h, line 165) +[ Extern ] Froms for 'normal' (file share/libc/math.h, line 163) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2350,28 +2347,28 @@ [ Extern ] Post-condition for 'domain_error' 'errno_set' ensures errno_set: __fc_errno ≡ 1 Unverifiable but considered Valid. -[ Extern ] Assigns (file share/libc/math.h, line 176) +[ Extern ] Assigns (file share/libc/math.h, line 174) assigns __fc_errno, \result; Unverifiable but considered Valid. -[ Extern ] Assigns for 'domain_error' (file share/libc/math.h, line 183) +[ Extern ] Assigns for 'domain_error' (file share/libc/math.h, line 181) assigns __fc_errno, \result; Unverifiable but considered Valid. [ Extern ] Assigns for 'normal' nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 176) +[ Extern ] Froms (file share/libc/math.h, line 174) assigns __fc_errno \from x; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 176) +[ Extern ] Froms (file share/libc/math.h, line 174) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 183) +[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 181) assigns __fc_errno \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 183) +[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 181) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'normal' (file share/libc/math.h, line 179) +[ Extern ] Froms for 'normal' (file share/libc/math.h, line 177) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2394,28 +2391,28 @@ [ Extern ] Post-condition for 'domain_error' 'errno_set' ensures errno_set: __fc_errno ≡ 1 Unverifiable but considered Valid. -[ Extern ] Assigns (file share/libc/math.h, line 190) +[ Extern ] Assigns (file share/libc/math.h, line 188) assigns __fc_errno, \result; Unverifiable but considered Valid. -[ Extern ] Assigns for 'domain_error' (file share/libc/math.h, line 197) +[ Extern ] Assigns for 'domain_error' (file share/libc/math.h, line 195) assigns __fc_errno, \result; Unverifiable but considered Valid. [ Extern ] Assigns for 'normal' nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 190) +[ Extern ] Froms (file share/libc/math.h, line 188) assigns __fc_errno \from x; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 190) +[ Extern ] Froms (file share/libc/math.h, line 188) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 197) +[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 195) assigns __fc_errno \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 197) +[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 195) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'normal' (file share/libc/math.h, line 193) +[ Extern ] Froms for 'normal' (file share/libc/math.h, line 191) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2438,28 +2435,28 @@ [ Extern ] Post-condition for 'domain_error' 'errno_set' ensures errno_set: __fc_errno ≡ 1 Unverifiable but considered Valid. -[ Extern ] Assigns (file share/libc/math.h, line 204) +[ Extern ] Assigns (file share/libc/math.h, line 202) assigns __fc_errno, \result; Unverifiable but considered Valid. -[ Extern ] Assigns for 'domain_error' (file share/libc/math.h, line 211) +[ Extern ] Assigns for 'domain_error' (file share/libc/math.h, line 209) assigns __fc_errno, \result; Unverifiable but considered Valid. [ Extern ] Assigns for 'normal' nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 204) +[ Extern ] Froms (file share/libc/math.h, line 202) assigns __fc_errno \from x; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 204) +[ Extern ] Froms (file share/libc/math.h, line 202) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 211) +[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 209) assigns __fc_errno \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 211) +[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 209) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'normal' (file share/libc/math.h, line 207) +[ Extern ] Froms for 'normal' (file share/libc/math.h, line 205) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2485,7 +2482,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 218) +[ Extern ] Froms (file share/libc/math.h, line 216) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2505,7 +2502,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 225) +[ Extern ] Froms (file share/libc/math.h, line 223) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2525,7 +2522,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 232) +[ Extern ] Froms (file share/libc/math.h, line 230) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2542,7 +2539,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 240) +[ Extern ] Froms (file share/libc/math.h, line 238) assigns \result \from x, y; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2559,7 +2556,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 247) +[ Extern ] Froms (file share/libc/math.h, line 245) assigns \result \from x, y; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2582,7 +2579,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 255) +[ Extern ] Froms (file share/libc/math.h, line 253) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2602,7 +2599,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 262) +[ Extern ] Froms (file share/libc/math.h, line 260) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2622,7 +2619,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 269) +[ Extern ] Froms (file share/libc/math.h, line 267) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2642,7 +2639,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 276) +[ Extern ] Froms (file share/libc/math.h, line 274) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2662,7 +2659,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 283) +[ Extern ] Froms (file share/libc/math.h, line 281) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2682,7 +2679,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 290) +[ Extern ] Froms (file share/libc/math.h, line 288) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2702,10 +2699,10 @@ [ Extern ] Post-condition for 'domain_error' 'errno_set' ensures errno_set: __fc_errno ≡ 1 Unverifiable but considered Valid. -[ Extern ] Assigns (file share/libc/math.h, line 301) +[ Extern ] Assigns (file share/libc/math.h, line 299) assigns __fc_errno, \result; Unverifiable but considered Valid. -[ Extern ] Assigns for 'domain_error' (file share/libc/math.h, line 312) +[ Extern ] Assigns for 'domain_error' (file share/libc/math.h, line 310) assigns __fc_errno, \result; Unverifiable but considered Valid. [ Extern ] Assigns for 'infinite' nothing @@ -2714,22 +2711,22 @@ [ Extern ] Assigns for 'normal' nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 301) +[ Extern ] Froms (file share/libc/math.h, line 299) assigns __fc_errno \from x; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 301) +[ Extern ] Froms (file share/libc/math.h, line 299) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 312) +[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 310) assigns __fc_errno \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 312) +[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 310) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'infinite' (file share/libc/math.h, line 308) +[ Extern ] Froms for 'infinite' (file share/libc/math.h, line 306) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'normal' (file share/libc/math.h, line 304) +[ Extern ] Froms for 'normal' (file share/libc/math.h, line 302) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2758,10 +2755,10 @@ [ Extern ] Post-condition for 'domain_error' 'errno_set' ensures errno_set: __fc_errno ≡ 1 Unverifiable but considered Valid. -[ Extern ] Assigns (file share/libc/math.h, line 319) +[ Extern ] Assigns (file share/libc/math.h, line 317) assigns __fc_errno, \result; Unverifiable but considered Valid. -[ Extern ] Assigns for 'domain_error' (file share/libc/math.h, line 330) +[ Extern ] Assigns for 'domain_error' (file share/libc/math.h, line 328) assigns __fc_errno, \result; Unverifiable but considered Valid. [ Extern ] Assigns for 'infinite' nothing @@ -2770,22 +2767,22 @@ [ Extern ] Assigns for 'normal' nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 319) +[ Extern ] Froms (file share/libc/math.h, line 317) assigns __fc_errno \from x; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 319) +[ Extern ] Froms (file share/libc/math.h, line 317) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 330) +[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 328) assigns __fc_errno \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 330) +[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 328) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'infinite' (file share/libc/math.h, line 326) +[ Extern ] Froms for 'infinite' (file share/libc/math.h, line 324) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'normal' (file share/libc/math.h, line 322) +[ Extern ] Froms for 'normal' (file share/libc/math.h, line 320) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2814,10 +2811,10 @@ [ Extern ] Post-condition for 'domain_error' 'errno_set' ensures errno_set: __fc_errno ≡ 1 Unverifiable but considered Valid. -[ Extern ] Assigns (file share/libc/math.h, line 337) +[ Extern ] Assigns (file share/libc/math.h, line 335) assigns __fc_errno, \result; Unverifiable but considered Valid. -[ Extern ] Assigns for 'domain_error' (file share/libc/math.h, line 348) +[ Extern ] Assigns for 'domain_error' (file share/libc/math.h, line 346) assigns __fc_errno, \result; Unverifiable but considered Valid. [ Extern ] Assigns for 'infinite' nothing @@ -2826,22 +2823,22 @@ [ Extern ] Assigns for 'normal' nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 337) +[ Extern ] Froms (file share/libc/math.h, line 335) assigns __fc_errno \from x; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 337) +[ Extern ] Froms (file share/libc/math.h, line 335) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 348) +[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 346) assigns __fc_errno \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 348) +[ Extern ] Froms for 'domain_error' (file share/libc/math.h, line 346) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'infinite' (file share/libc/math.h, line 344) +[ Extern ] Froms for 'infinite' (file share/libc/math.h, line 342) assigns \result \from x; Unverifiable but considered Valid. -[ Extern ] Froms for 'normal' (file share/libc/math.h, line 340) +[ Extern ] Froms for 'normal' (file share/libc/math.h, line 338) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2870,7 +2867,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 376) +[ Extern ] Froms (file share/libc/math.h, line 374) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2890,7 +2887,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 384) +[ Extern ] Froms (file share/libc/math.h, line 382) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2907,7 +2904,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 414) +[ Extern ] Froms (file share/libc/math.h, line 412) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2924,7 +2921,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 421) +[ Extern ] Froms (file share/libc/math.h, line 419) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2941,7 +2938,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 428) +[ Extern ] Froms (file share/libc/math.h, line 426) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2958,7 +2955,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 435) +[ Extern ] Froms (file share/libc/math.h, line 433) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2975,7 +2972,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 442) +[ Extern ] Froms (file share/libc/math.h, line 440) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -2992,7 +2989,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 449) +[ Extern ] Froms (file share/libc/math.h, line 447) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3009,7 +3006,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 460) +[ Extern ] Froms (file share/libc/math.h, line 458) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3026,7 +3023,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 467) +[ Extern ] Froms (file share/libc/math.h, line 465) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3043,7 +3040,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 474) +[ Extern ] Froms (file share/libc/math.h, line 472) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3068,7 +3065,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 500) +[ Extern ] Froms (file share/libc/math.h, line 498) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3093,7 +3090,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 508) +[ Extern ] Froms (file share/libc/math.h, line 506) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3118,7 +3115,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 516) +[ Extern ] Froms (file share/libc/math.h, line 514) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3135,7 +3132,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 529) +[ Extern ] Froms (file share/libc/math.h, line 527) assigns \result \from x, y; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3152,7 +3149,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 536) +[ Extern ] Froms (file share/libc/math.h, line 534) assigns \result \from x, y; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3178,7 +3175,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 545) +[ Extern ] Froms (file share/libc/math.h, line 543) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3198,7 +3195,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 553) +[ Extern ] Froms (file share/libc/math.h, line 551) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3218,7 +3215,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 561) +[ Extern ] Froms (file share/libc/math.h, line 559) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3235,7 +3232,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 584) +[ Extern ] Froms (file share/libc/math.h, line 582) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3252,7 +3249,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 590) +[ Extern ] Froms (file share/libc/math.h, line 588) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3269,7 +3266,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 597) +[ Extern ] Froms (file share/libc/math.h, line 595) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3286,7 +3283,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 603) +[ Extern ] Froms (file share/libc/math.h, line 601) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3303,7 +3300,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 609) +[ Extern ] Froms (file share/libc/math.h, line 607) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3320,7 +3317,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 615) +[ Extern ] Froms (file share/libc/math.h, line 613) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3337,7 +3334,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 637) +[ Extern ] Froms (file share/libc/math.h, line 635) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3354,7 +3351,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 643) +[ Extern ] Froms (file share/libc/math.h, line 641) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3371,7 +3368,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 649) +[ Extern ] Froms (file share/libc/math.h, line 647) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3388,7 +3385,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 663) +[ Extern ] Froms (file share/libc/math.h, line 661) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3405,7 +3402,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 669) +[ Extern ] Froms (file share/libc/math.h, line 667) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3422,7 +3419,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 675) +[ Extern ] Froms (file share/libc/math.h, line 673) assigns \result \from x; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3439,7 +3436,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 682) +[ Extern ] Froms (file share/libc/math.h, line 680) assigns \result \from x, y; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3456,7 +3453,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 689) +[ Extern ] Froms (file share/libc/math.h, line 687) assigns \result \from x, y; Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3473,7 +3470,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 710) +[ Extern ] Froms (file share/libc/math.h, line 708) assigns \result \from (indirect: *(tagp + (0 ..))); Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3490,7 +3487,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 717) +[ Extern ] Froms (file share/libc/math.h, line 715) assigns \result \from (indirect: *(tagp + (0 ..))); Unverifiable but considered Valid. [ Valid ] Default behavior @@ -3507,7 +3504,7 @@ [ Extern ] Assigns nothing assigns \nothing; Unverifiable but considered Valid. -[ Extern ] Froms (file share/libc/math.h, line 724) +[ Extern ] Froms (file share/libc/math.h, line 722) assigns \result \from (indirect: *(tagp + (0 ..))); Unverifiable but considered Valid. [ Valid ] Default behavior diff --git a/tests/libc/oracle/coverage.res.oracle b/tests/libc/oracle/coverage.res.oracle index 81b8f86a27e7a7a613c8d725aaf40e1ee5d8ad51..6e7f751bf3ca6d1d5a1eeefee38a7b5424392b83 100644 --- a/tests/libc/oracle/coverage.res.oracle +++ b/tests/libc/oracle/coverage.res.oracle @@ -28,7 +28,7 @@ main: 4 stmts out of 4 (100.0%) [metrics] Eva coverage statistics ======================= - Syntactically reachable functions = 2 (out of 78) + Syntactically reachable functions = 2 (out of 82) Semantically reached functions = 2 Coverage estimation = 100.0% [metrics] Statements analyzed by Eva diff --git a/tests/libc/oracle/fc_libc.0.res.oracle b/tests/libc/oracle/fc_libc.0.res.oracle index 32c4f831a3aca48a4593fe3ed92573a3f2dd412b..15885d81a20c5ef411514cad2ccb94d49ff54c3a 100644 --- a/tests/libc/oracle/fc_libc.0.res.oracle +++ b/tests/libc/oracle/fc_libc.0.res.oracle @@ -38,7 +38,7 @@ wcslen (2 calls); wcsncat (0 call); wcsncpy (0 call); wmemcpy (0 call); wmemset (0 call); - Undefined functions (367) + Undefined functions (377) ========================= FD_CLR (0 call); FD_ISSET (0 call); FD_SET (0 call); FD_ZERO (0 call); Frama_C_abort (1 call); Frama_C_char_interval (1 call); @@ -93,25 +93,26 @@ getc_unlocked (0 call); getchar (0 call); getchar_unlocked (0 call); getcwd (0 call); getegid (0 call); geteuid (0 call); getgid (0 call); gethostname (0 call); getitimer (0 call); getopt (0 call); - getopt_long (0 call); getopt_long_only (0 call); getpid (0 call); - getppid (0 call); getpriority (0 call); getpwnam (0 call); - getpwuid (0 call); getresgid (0 call); getresuid (0 call); - getrlimit (0 call); getrusage (0 call); gets (0 call); getsid (0 call); - getsockopt (0 call); gettimeofday (0 call); getuid (0 call); - gmtime (0 call); htonl (0 call); htons (0 call); iconv (0 call); - iconv_close (0 call); iconv_open (0 call); inet_addr (2 calls); - inet_ntoa (0 call); inet_ntop (0 call); inet_pton (0 call); - isascii (0 call); isatty (0 call); kill (0 call); labs (0 call); - ldiv (0 call); listen (0 call); llabs (0 call); lldiv (0 call); - localtime (0 call); log (0 call); log10 (0 call); log10f (0 call); - log10l (0 call); log2 (0 call); log2f (0 call); log2l (0 call); - logf (0 call); logl (0 call); longjmp (0 call); lrand48 (0 call); - malloc (7 calls); mblen (0 call); mbstowcs (0 call); mbtowc (0 call); - memoverlap (1 call); mkdir (0 call); mktime (0 call); nan (0 call); - nanf (0 call); nanl (0 call); nanosleep (0 call); ntohl (0 call); - ntohs (0 call); open (0 call); openat (0 call); opendir (0 call); - openlog (0 call); pathconf (0 call); pclose (0 call); perror (0 call); - pipe (0 call); poll (0 call); popen (0 call); pow (0 call); powf (0 call); + getopt_long (0 call); getopt_long_only (0 call); getpgid (0 call); + getpgrp (0 call); getpid (0 call); getppid (0 call); getpriority (0 call); + getpwnam (0 call); getpwuid (0 call); getresgid (0 call); + getresuid (0 call); getrlimit (0 call); getrusage (0 call); gets (0 call); + getsid (0 call); getsockopt (0 call); gettimeofday (0 call); + getuid (0 call); gmtime (0 call); htonl (0 call); htons (0 call); + iconv (0 call); iconv_close (0 call); iconv_open (0 call); + inet_addr (2 calls); inet_ntoa (0 call); inet_ntop (0 call); + inet_pton (0 call); isascii (0 call); isatty (0 call); kill (0 call); + killpg (0 call); labs (0 call); ldiv (0 call); listen (0 call); + llabs (0 call); lldiv (0 call); localtime (0 call); log (0 call); + log10 (0 call); log10f (0 call); log10l (0 call); log2 (0 call); + log2f (0 call); log2l (0 call); logf (0 call); logl (0 call); + longjmp (0 call); lrand48 (0 call); malloc (7 calls); mblen (0 call); + mbstowcs (0 call); mbtowc (0 call); memoverlap (1 call); mkdir (0 call); + mkstemp (0 call); mktime (0 call); nan (0 call); nanf (0 call); + nanl (0 call); nanosleep (0 call); ntohl (0 call); ntohs (0 call); + open (0 call); openat (0 call); opendir (0 call); openlog (0 call); + pathconf (0 call); pclose (0 call); perror (0 call); pipe (0 call); + poll (0 call); popen (0 call); pow (0 call); powf (0 call); pthread_cond_broadcast (0 call); pthread_cond_destroy (0 call); pthread_cond_init (0 call); pthread_cond_wait (0 call); pthread_create (0 call); pthread_join (0 call); @@ -125,40 +126,41 @@ roundf (0 call); roundl (0 call); select (0 call); send (0 call); setbuf (0 call); setegid (0 call); seteuid (0 call); setgid (0 call); sethostname (0 call); setitimer (0 call); setjmp (0 call); - setlogmask (0 call); setpriority (0 call); setregid (0 call); - setresgid (0 call); setresuid (0 call); setreuid (0 call); - setrlimit (0 call); setsid (0 call); setsockopt (0 call); + setlogmask (0 call); setpgid (0 call); setpriority (0 call); + setregid (0 call); setresgid (0 call); setresuid (0 call); + setreuid (0 call); setrlimit (0 call); setsid (0 call); setsockopt (0 call); settimeofday (0 call); setuid (0 call); setvbuf (0 call); shutdown (0 call); - sigaddset (0 call); sigdelset (0 call); sigemptyset (0 call); - sigfillset (0 call); sigismember (0 call); siglongjmp (0 call); - signal (0 call); sigprocmask (0 call); sin (0 call); sinf (0 call); - sinl (0 call); socket (0 call); socketpair (0 call); sqrt (0 call); - sqrtf (0 call); sqrtl (0 call); srand (0 call); srand48 (0 call); - srandom (0 call); stat (0 call); strcoll (0 call); strcspn (0 call); - strftime (0 call); strlcat (0 call); strlcpy (0 call); strncasecmp (0 call); - strpbrk (0 call); strsep (0 call); strspn (0 call); strtod (0 call); + sigaction (0 call); sigaddset (0 call); sigdelset (0 call); + sigemptyset (0 call); sigfillset (0 call); sigismember (0 call); + siglongjmp (0 call); signal (0 call); sigprocmask (0 call); sin (0 call); + sinf (0 call); sinl (0 call); socket (0 call); socketpair (0 call); + sqrt (0 call); sqrtf (0 call); sqrtl (0 call); srand (0 call); + srand48 (0 call); srandom (0 call); stat (0 call); stpcpy (0 call); + strcasestr (0 call); strcoll (0 call); strcspn (0 call); strftime (0 call); + strlcat (0 call); strlcpy (0 call); strncasecmp (0 call); strpbrk (0 call); + strsep (0 call); strsignal (0 call); strspn (0 call); strtod (0 call); strtof (0 call); strtoimax (0 call); strtok (0 call); strtok_r (0 call); strtol (0 call); strtold (0 call); strtoll (0 call); strtoul (0 call); strtoull (0 call); strxfrm (0 call); sync (0 call); sysconf (0 call); syslog (0 call); system (0 call); tcgetattr (0 call); tcsetattr (0 call); time (0 call); times (0 call); tmpfile (0 call); tmpnam (0 call); trunc (0 call); truncf (0 call); truncl (0 call); ttyname (0 call); - tzset (0 call); umask (0 call); ungetc (0 call); usleep (0 call); - utimes (0 call); vfprintf (0 call); vfscanf (0 call); vprintf (0 call); - vscanf (0 call); vsnprintf (0 call); vsprintf (0 call); vsyslog (0 call); - wait (0 call); waitpid (0 call); wcschr (0 call); wcscmp (0 call); - wcscspn (0 call); wcslcat (0 call); wcslcpy (0 call); wcsncmp (0 call); - wcspbrk (0 call); wcsrchr (0 call); wcsspn (0 call); wcsstr (0 call); - wcstombs (0 call); wctomb (0 call); wmemchr (0 call); wmemcmp (0 call); - wmemmove (0 call); write (0 call); + tzset (0 call); umask (0 call); ungetc (0 call); unlink (0 call); + usleep (0 call); utimes (0 call); vfprintf (0 call); vfscanf (0 call); + vprintf (0 call); vscanf (0 call); vsnprintf (0 call); vsprintf (0 call); + vsyslog (0 call); wait (0 call); waitpid (0 call); wcschr (0 call); + wcscmp (0 call); wcscspn (0 call); wcslcat (0 call); wcslcpy (0 call); + wcsncmp (0 call); wcspbrk (0 call); wcsrchr (0 call); wcsspn (0 call); + wcsstr (0 call); wcstombs (0 call); wctomb (0 call); wmemchr (0 call); + wmemcmp (0 call); wmemmove (0 call); write (0 call); - 'Extern' global variables (18) + 'Extern' global variables (20) ============================== __fc_basename; __fc_dirname; __fc_getpwuid_pw_dir; __fc_getpwuid_pw_gid; __fc_getpwuid_pw_name; __fc_getpwuid_pw_passwd; __fc_getpwuid_pw_shell; __fc_getpwuid_pw_uid; __fc_hostname; __fc_mblen_state; __fc_mbtowc_state; - __fc_strerror; __fc_ttyname; __fc_wctomb_state; optarg; opterr; optopt; - tzname + __fc_sigaction; __fc_strerror; __fc_strsignal; __fc_ttyname; + __fc_wctomb_state; optarg; opterr; optopt; tzname Potential entry points (1) ========================== @@ -168,13 +170,13 @@ ============== Sloc = 1026 Decision point = 195 - Global variables = 61 + Global variables = 65 If = 186 Loop = 42 Goto = 84 Assignment = 415 Exit point = 76 - Function = 443 + Function = 453 Function call = 84 Pointer dereferencing = 157 Cyclomatic complexity = 271 diff --git a/tests/libc/oracle/fc_libc.1.res.oracle b/tests/libc/oracle/fc_libc.1.res.oracle index e56f5e98e8c872547a2d14eb5df95aa6a03e182f..aecfd20abf26a67bc0a99da4ee9d7f8dc15b3c52 100644 --- a/tests/libc/oracle/fc_libc.1.res.oracle +++ b/tests/libc/oracle/fc_libc.1.res.oracle @@ -122,6 +122,28 @@ typedef int pid_t; typedef unsigned int gid_t; typedef unsigned int uid_t; typedef unsigned long sigset_t; +union sigval { + int sival_int ; + void *sival_ptr ; +}; +struct __anonstruct_siginfo_t_20 { + int si_signo ; + int si_code ; + union sigval si_value ; + int si_errno ; + pid_t si_pid ; + uid_t si_uid ; + void *si_addr ; + int si_status ; + int si_band ; +}; +typedef struct __anonstruct_siginfo_t_20 siginfo_t; +struct sigaction { + void (*sa_handler)(int ) ; + void (*sa_sigaction)(int , siginfo_t *, void *) ; + sigset_t sa_mask ; + int sa_flags ; +}; typedef unsigned int socklen_t; typedef unsigned short sa_family_t; struct sockaddr { @@ -1923,6 +1945,15 @@ extern size_t wcstombs(char * __restrict s, wchar_t const * __restrict pwcs, int posix_memalign(void **memptr, size_t alignment, size_t size); +/*@ requires valid_template: valid_string(template); + ensures + result_error_or_valid_fd: \result ≡ -1 ∨ (0 ≤ \result < 16); + assigns *(template + (0 ..)), \result; + assigns *(template + (0 ..)) \from \nothing; + assigns \result \from \nothing; + */ +extern int mkstemp(char *template); + int glob(char const *pattern, int flags, int (*errfunc)(char const *epath, int eerrno), glob_t *pglob) { @@ -2898,6 +2929,33 @@ extern int sigdelset(sigset_t *set, int signum); */ extern int sigismember(sigset_t const *set, int signum); +extern struct sigaction __fc_sigaction[64 + 1]; + +struct sigaction *__fc_p_sigaction = __fc_sigaction; +/*@ requires valid_signal: 0 ≤ signum ≤ 64; + requires valid_oldact_or_null: oldact ≡ \null ∨ \valid(oldact); + requires valid_read_act_or_null: act ≡ \null ∨ \valid_read(act); + requires separation: separated_acts: \separated(act, oldact); + ensures + act_changed: + \old(act) ≡ \null ∨ + \subset(*(__fc_p_sigaction + \old(signum)), *\old(act)); + ensures + oldact_assigned: + \old(oldact) ≡ \null ∨ + *\old(oldact) ∈ *(__fc_p_sigaction + \old(signum)); + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns oldact ≡ \null? \empty: *oldact, + act ≡ \null? \empty: *(__fc_p_sigaction + signum), \result; + assigns oldact ≡ \null? \empty: *oldact \from __fc_p_sigaction; + assigns act ≡ \null? \empty: *(__fc_p_sigaction + signum) \from *act; + assigns \result + \from (indirect: signum), (indirect: act), (indirect: *act), + (indirect: oldact), (indirect: *oldact); + */ +extern int sigaction(int signum, struct sigaction const * __restrict act, + struct sigaction * __restrict oldact); + /*@ requires valid_set_or_null: set ≡ \null ∨ \valid_read(set); requires valid_how: set ≢ \null ⇒ how ∈ {0, 2, 1}; requires valid_oldset_or_null: oldset ≡ \null ∨ \valid(oldset); @@ -2923,6 +2981,12 @@ extern int sigprocmask(int how, sigset_t const * __restrict set, */ extern int kill(pid_t pid, int sig); +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result \from (indirect: pgrp), (indirect: sig); + */ +extern int killpg(pid_t pgrp, int sig); + /*@ ghost struct __fc_sockfds_type __fc_sockfds[1024]; */ /*@ ghost extern int __fc_socket_counter __attribute__((__FRAMA_C_MODEL__)); */ @@ -3327,6 +3391,19 @@ extern char *strpbrk(char const *s, char const *accept); char *strstr(char const *haystack, char const *needle); +/*@ requires valid_string_haystack: valid_read_string(haystack); + requires valid_string_needle: valid_read_string(needle); + ensures + result_null_or_in_haystack: + \result ≡ \null ∨ + (\subset(\result, \old(haystack) + (0 ..)) ∧ \valid_read(\result)); + assigns \result; + assigns \result + \from haystack, (indirect: *(haystack + (0 ..))), + (indirect: *(needle + (0 ..))); + */ +extern char *strcasestr(char const *haystack, char const *needle); + char *__fc_strtok_ptr; /*@ requires valid_string_delim: valid_read_string(delim); assigns *(s + (0 ..)), *(__fc_strtok_ptr + (0 ..)), \result, @@ -3492,6 +3569,20 @@ char *strncpy(char *dest, char const *src, size_t n); */ size_t strlcpy(char * __restrict dest, char const * __restrict src, size_t n); +/*@ requires valid_string_src: valid_read_string(src); + requires room_string: \valid(dest + (0 .. strlen(src))); + requires + separation: + \separated(dest + (0 .. strlen(src)), src + (0 .. strlen(src))); + ensures equal_contents: strcmp(\old(dest), \old(src)) ≡ 0; + ensures points_to_end: \result ≡ \old(dest) + strlen(\old(dest)); + assigns *(dest + (0 .. strlen{Old}(src))), \result; + assigns *(dest + (0 .. strlen{Old}(src))) + \from *(src + (0 .. strlen{Old}(src))); + assigns \result \from dest; + */ +extern char *stpcpy(char * __restrict dest, char const * __restrict src); + char *strcat(char *dest, char const *src); char *strncat(char *dest, char const *src, size_t n); @@ -3524,6 +3615,17 @@ char *strdup(char const *s); char *strndup(char const *s, size_t n); +extern char __fc_strsignal[64]; + +char * const __fc_p_strsignal = __fc_strsignal; +/*@ ensures result_internal_str: \result ≡ __fc_p_strsignal; + ensures result_nul_terminated: *(\result + 63) ≡ 0; + ensures result_valid_string: valid_read_string(\result); + assigns \result; + assigns \result \from __fc_p_strsignal, (indirect: signum); + */ +extern char *strsignal(int signum); + /*@ requires valid_memory_area: \valid((char *)s + (0 .. n - 1)); ensures s_initialized: initialization: @@ -7191,6 +7293,14 @@ extern int gethostname(char *name, size_t len); */ extern int sethostname(char const *name, size_t len); +/*@ assigns \result; + assigns \result \from (indirect: pid); */ +extern pid_t getpgid(pid_t pid); + +/*@ assigns \result; + assigns \result \from \nothing; */ +extern pid_t getpgrp(void); + /*@ assigns \result; assigns \result \from \nothing; */ extern pid_t getpid(void); @@ -7263,6 +7373,12 @@ extern int seteuid(uid_t uid); */ extern int setgid(gid_t gid); +/*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result \from (indirect: pid), (indirect: pgid); + */ +extern int setpgid(pid_t pid, pid_t pgid); + /*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; assigns \result; assigns \result \from (indirect: rgid), (indirect: egid); @@ -7304,6 +7420,13 @@ char *__fc_p_ttyname = (char *)(__fc_ttyname); */ extern char *ttyname(int fildes); +/*@ requires valid_string_path: valid_read_string(path); + ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; + assigns \result; + assigns \result \from *(path + (0 ..)); + */ +extern int unlink(char const *path); + /*@ ensures result_ok_or_error: \result ≡ 0 ∨ \result ≡ -1; assigns \result, Frama_C_entropy_source; assigns \result diff --git a/tests/libc/oracle/netdb_c.res.oracle b/tests/libc/oracle/netdb_c.res.oracle index 1ceb0a03241f85b3da6db15f8f7abcaed67fc928..419fd8ae3f596924cb1de2e8e4a64b6ebe139bf0 100644 --- a/tests/libc/oracle/netdb_c.res.oracle +++ b/tests/libc/oracle/netdb_c.res.oracle @@ -23,16 +23,19 @@ \return(strrchr) == 0 (auto) \return(strpbrk) == 0 (auto) \return(strstr) == 0 (auto) + \return(strcasestr) == 0 (auto) \return(strtok) == 0 (auto) \return(strtok_r) == 0 (auto) \return(strsep) == 0 (auto) \return(strerror) == 0 (auto) \return(strcpy) == 0 (auto) \return(strncpy) == 0 (auto) + \return(stpcpy) == 0 (auto) \return(strcat) == 0 (auto) \return(strncat) == 0 (auto) \return(strdup) == 0 (auto) \return(strndup) == 0 (auto) + \return(strsignal) == 0 (auto) \return(bind) == 0 (auto) \return(socket) == -1 (auto) \return(signal) == 0 (auto) @@ -244,7 +247,7 @@ function strncpy: precondition 'room_nstring' got status valid. [eva] share/libc/netdb.c:147: function strncpy: precondition 'separation' got status valid. -[eva] share/libc/string.h:369: +[eva] share/libc/string.h:367: cannot evaluate ACSL term, unsupported ACSL construct: logic function strcmp [eva] Done for function strncpy [eva] Recording results for gethostbyname diff --git a/tests/libc/oracle/signal_h.res.oracle b/tests/libc/oracle/signal_h.res.oracle index 1d3c95b0de4f684bf6a1b27b5ba5ff5de3e7fc86..42c80f2642d6fdde9b66d2ab9487b73f4ff7b8a8 100644 --- a/tests/libc/oracle/signal_h.res.oracle +++ b/tests/libc/oracle/signal_h.res.oracle @@ -99,12 +99,189 @@ Called from tests/libc/signal_h.c:42. [eva] using specification for function kill [eva] Done for function kill +[eva] computing for function sigaction <- main. + Called from tests/libc/signal_h.c:45. +[eva] using specification for function sigaction +[eva] tests/libc/signal_h.c:45: + function sigaction: precondition 'valid_signal' got status valid. +[eva] tests/libc/signal_h.c:45: + function sigaction: precondition 'valid_oldact_or_null' got status valid. +[eva] tests/libc/signal_h.c:45: + function sigaction: precondition 'valid_read_act_or_null' got status valid. +[eva] tests/libc/signal_h.c:45: + function sigaction: precondition 'separation,separated_acts' got status valid. +[eva] Done for function sigaction +[eva] computing for function sigaction <- main. + Called from tests/libc/signal_h.c:45. +[eva] Done for function sigaction +[eva] computing for function sigaction <- main. + Called from tests/libc/signal_h.c:48. +[eva] tests/libc/signal_h.c:48: + function sigaction: precondition 'valid_signal' got status valid. +[eva] tests/libc/signal_h.c:48: + function sigaction: precondition 'valid_oldact_or_null' got status valid. +[eva] tests/libc/signal_h.c:48: + function sigaction: precondition 'valid_read_act_or_null' got status valid. +[eva] tests/libc/signal_h.c:48: + function sigaction: precondition 'separation,separated_acts' got status valid. +[eva] share/libc/signal.h:212: + cannot evaluate ACSL term, unsupported ACSL construct: logic coercion struct sigaction -> set<struct sigaction> +[eva] Done for function sigaction +[eva] computing for function sigaction <- main. + Called from tests/libc/signal_h.c:51. +[eva] tests/libc/signal_h.c:51: + function sigaction: precondition 'valid_signal' got status valid. +[eva] tests/libc/signal_h.c:51: + function sigaction: precondition 'valid_oldact_or_null' got status valid. +[eva] tests/libc/signal_h.c:51: + function sigaction: precondition 'valid_read_act_or_null' got status valid. +[eva] tests/libc/signal_h.c:51: + function sigaction: precondition 'separation,separated_acts' got status valid. +[eva] Done for function sigaction [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: + __fc_sigaction[0]{.sa_handler; .sa_sigaction} ∈ {0} + [0]{.sa_mask; .sa_flags} ∈ [--..--] + [1]{.sa_handler; .sa_sigaction} ∈ {0} + [1]{.sa_mask; .sa_flags} ∈ [--..--] + [2]{.sa_handler; .sa_sigaction} ∈ {0} + [2]{.sa_mask; .sa_flags} ∈ [--..--] + [3]{.sa_handler; .sa_sigaction} ∈ {0} + [3]{.sa_mask; .sa_flags} ∈ [--..--] + [4]{.sa_handler; .sa_sigaction} ∈ {0} + [4]{.sa_mask; .sa_flags} ∈ [--..--] + [5]{.sa_handler; .sa_sigaction} ∈ {0} + [5]{.sa_mask; .sa_flags} ∈ [--..--] + [6]{.sa_handler; .sa_sigaction} ∈ {0} + [6]{.sa_mask; .sa_flags} ∈ [--..--] + [7]{.sa_handler; .sa_sigaction} ∈ {0} + [7]{.sa_mask; .sa_flags} ∈ [--..--] + [8]{.sa_handler; .sa_sigaction} ∈ {0} + [8]{.sa_mask; .sa_flags} ∈ [--..--] + [9]{.sa_handler; .sa_sigaction} ∈ {0} + [9]{.sa_mask; .sa_flags} ∈ [--..--] + [10] ∈ + {{ garbled mix of &{__fc_sigaction} + (origin: Library function) }} + [11]{.sa_handler; .sa_sigaction} ∈ {0} + [11]{.sa_mask; .sa_flags} ∈ [--..--] + [12]{.sa_handler; .sa_sigaction} ∈ {0} + [12]{.sa_mask; .sa_flags} ∈ [--..--] + [13]{.sa_handler; .sa_sigaction} ∈ {0} + [13]{.sa_mask; .sa_flags} ∈ [--..--] + [14]{.sa_handler; .sa_sigaction} ∈ {0} + [14]{.sa_mask; .sa_flags} ∈ [--..--] + [15]{.sa_handler; .sa_sigaction} ∈ {0} + [15]{.sa_mask; .sa_flags} ∈ [--..--] + [16]{.sa_handler; .sa_sigaction} ∈ {0} + [16]{.sa_mask; .sa_flags} ∈ [--..--] + [17]{.sa_handler; .sa_sigaction} ∈ {0} + [17]{.sa_mask; .sa_flags} ∈ [--..--] + [18] ∈ + {{ garbled mix of &{__fc_sigaction} + (origin: Library function) }} + [19]{.sa_handler; .sa_sigaction} ∈ {0} + [19]{.sa_mask; .sa_flags} ∈ [--..--] + [20]{.sa_handler; .sa_sigaction} ∈ {0} + [20]{.sa_mask; .sa_flags} ∈ [--..--] + [21]{.sa_handler; .sa_sigaction} ∈ {0} + [21]{.sa_mask; .sa_flags} ∈ [--..--] + [22]{.sa_handler; .sa_sigaction} ∈ {0} + [22]{.sa_mask; .sa_flags} ∈ [--..--] + [23]{.sa_handler; .sa_sigaction} ∈ {0} + [23]{.sa_mask; .sa_flags} ∈ [--..--] + [24]{.sa_handler; .sa_sigaction} ∈ {0} + [24]{.sa_mask; .sa_flags} ∈ [--..--] + [25]{.sa_handler; .sa_sigaction} ∈ {0} + [25]{.sa_mask; .sa_flags} ∈ [--..--] + [26]{.sa_handler; .sa_sigaction} ∈ {0} + [26]{.sa_mask; .sa_flags} ∈ [--..--] + [27]{.sa_handler; .sa_sigaction} ∈ {0} + [27]{.sa_mask; .sa_flags} ∈ [--..--] + [28]{.sa_handler; .sa_sigaction} ∈ {0} + [28]{.sa_mask; .sa_flags} ∈ [--..--] + [29]{.sa_handler; .sa_sigaction} ∈ {0} + [29]{.sa_mask; .sa_flags} ∈ [--..--] + [30]{.sa_handler; .sa_sigaction} ∈ {0} + [30]{.sa_mask; .sa_flags} ∈ [--..--] + [31]{.sa_handler; .sa_sigaction} ∈ {0} + [31]{.sa_mask; .sa_flags} ∈ [--..--] + [32]{.sa_handler; .sa_sigaction} ∈ {0} + [32]{.sa_mask; .sa_flags} ∈ [--..--] + [33]{.sa_handler; .sa_sigaction} ∈ {0} + [33]{.sa_mask; .sa_flags} ∈ [--..--] + [34]{.sa_handler; .sa_sigaction} ∈ {0} + [34]{.sa_mask; .sa_flags} ∈ [--..--] + [35]{.sa_handler; .sa_sigaction} ∈ {0} + [35]{.sa_mask; .sa_flags} ∈ [--..--] + [36]{.sa_handler; .sa_sigaction} ∈ {0} + [36]{.sa_mask; .sa_flags} ∈ [--..--] + [37]{.sa_handler; .sa_sigaction} ∈ {0} + [37]{.sa_mask; .sa_flags} ∈ [--..--] + [38]{.sa_handler; .sa_sigaction} ∈ {0} + [38]{.sa_mask; .sa_flags} ∈ [--..--] + [39]{.sa_handler; .sa_sigaction} ∈ {0} + [39]{.sa_mask; .sa_flags} ∈ [--..--] + [40]{.sa_handler; .sa_sigaction} ∈ {0} + [40]{.sa_mask; .sa_flags} ∈ [--..--] + [41]{.sa_handler; .sa_sigaction} ∈ {0} + [41]{.sa_mask; .sa_flags} ∈ [--..--] + [42]{.sa_handler; .sa_sigaction} ∈ {0} + [42]{.sa_mask; .sa_flags} ∈ [--..--] + [43]{.sa_handler; .sa_sigaction} ∈ {0} + [43]{.sa_mask; .sa_flags} ∈ [--..--] + [44]{.sa_handler; .sa_sigaction} ∈ {0} + [44]{.sa_mask; .sa_flags} ∈ [--..--] + [45]{.sa_handler; .sa_sigaction} ∈ {0} + [45]{.sa_mask; .sa_flags} ∈ [--..--] + [46]{.sa_handler; .sa_sigaction} ∈ {0} + [46]{.sa_mask; .sa_flags} ∈ [--..--] + [47]{.sa_handler; .sa_sigaction} ∈ {0} + [47]{.sa_mask; .sa_flags} ∈ [--..--] + [48]{.sa_handler; .sa_sigaction} ∈ {0} + [48]{.sa_mask; .sa_flags} ∈ [--..--] + [49]{.sa_handler; .sa_sigaction} ∈ {0} + [49]{.sa_mask; .sa_flags} ∈ [--..--] + [50]{.sa_handler; .sa_sigaction} ∈ {0} + [50]{.sa_mask; .sa_flags} ∈ [--..--] + [51]{.sa_handler; .sa_sigaction} ∈ {0} + [51]{.sa_mask; .sa_flags} ∈ [--..--] + [52]{.sa_handler; .sa_sigaction} ∈ {0} + [52]{.sa_mask; .sa_flags} ∈ [--..--] + [53]{.sa_handler; .sa_sigaction} ∈ {0} + [53]{.sa_mask; .sa_flags} ∈ [--..--] + [54]{.sa_handler; .sa_sigaction} ∈ {0} + [54]{.sa_mask; .sa_flags} ∈ [--..--] + [55]{.sa_handler; .sa_sigaction} ∈ {0} + [55]{.sa_mask; .sa_flags} ∈ [--..--] + [56]{.sa_handler; .sa_sigaction} ∈ {0} + [56]{.sa_mask; .sa_flags} ∈ [--..--] + [57]{.sa_handler; .sa_sigaction} ∈ {0} + [57]{.sa_mask; .sa_flags} ∈ [--..--] + [58]{.sa_handler; .sa_sigaction} ∈ {0} + [58]{.sa_mask; .sa_flags} ∈ [--..--] + [59]{.sa_handler; .sa_sigaction} ∈ {0} + [59]{.sa_mask; .sa_flags} ∈ [--..--] + [60]{.sa_handler; .sa_sigaction} ∈ {0} + [60]{.sa_mask; .sa_flags} ∈ [--..--] + [61]{.sa_handler; .sa_sigaction} ∈ {0} + [61]{.sa_mask; .sa_flags} ∈ [--..--] + [62]{.sa_handler; .sa_sigaction} ∈ {0} + [62]{.sa_mask; .sa_flags} ∈ [--..--] + [63]{.sa_handler; .sa_sigaction} ∈ {0} + [63]{.sa_mask; .sa_flags} ∈ [--..--] + [64]{.sa_handler; .sa_sigaction} ∈ {0} + [64]{.sa_mask; .sa_flags} ∈ [--..--] s ∈ [--..--] uninit ∈ UNINITIALIZED old ∈ [--..--] or UNINITIALIZED kill_res ∈ {-1; 0} + sa1 ∈ + {{ garbled mix of &{__fc_sigaction} + (origin: Library function) }} or UNINITIALIZED + sa2 ∈ + {{ garbled mix of &{__fc_sigaction} + (origin: Library function {tests/libc/signal_h.c:48}) }} or UNINITIALIZED __retres ∈ {-1; 0; 1; 2; 3} diff --git a/tests/libc/oracle/stdlib_c_env.res.oracle b/tests/libc/oracle/stdlib_c_env.res.oracle index bb422440f6dd0ea084bbe3a495d1c1fcb56e1ded..5322b2985d4f9b618cd28c574c20c7a7be2d59ee 100644 --- a/tests/libc/oracle/stdlib_c_env.res.oracle +++ b/tests/libc/oracle/stdlib_c_env.res.oracle @@ -105,7 +105,7 @@ function strcpy: precondition 'room_string' got status valid. [eva] tests/libc/stdlib_c_env.c:15: function strcpy: precondition 'separation' got status valid. -[eva] share/libc/string.h:353: +[eva] share/libc/string.h:351: cannot evaluate ACSL term, unsupported ACSL construct: logic function strcmp [eva] Done for function strcpy [eva] computing for function getenv <- main. diff --git a/tests/libc/oracle/stdlib_h.res.oracle b/tests/libc/oracle/stdlib_h.res.oracle index c9beadd4b2c9daef94bfab354009fe86ba8b05e0..f5a2bec1be1185a580dea18a6847f0b06bcaa48f 100644 --- a/tests/libc/oracle/stdlib_h.res.oracle +++ b/tests/libc/oracle/stdlib_h.res.oracle @@ -232,6 +232,12 @@ function bsearch: precondition 'valid_function_compar' got status valid. [eva] Done for function bsearch [eva:alarm] tests/libc/stdlib_h.c:68: Warning: assertion got status unknown. +[eva] computing for function mkstemp <- main. + Called from tests/libc/stdlib_h.c:82. +[eva] using specification for function mkstemp +[eva] tests/libc/stdlib_h.c:82: + function mkstemp: precondition 'valid_template' got status valid. +[eva] Done for function mkstemp [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== @@ -261,4 +267,6 @@ [3] ∈ {20} key ∈ {-1} p ∈ {{ &ai[1] }} + tempFilename[0..9] ∈ [--..--] + r ∈ [-1..19] __retres ∈ {0} diff --git a/tests/libc/oracle/string_c.res.oracle b/tests/libc/oracle/string_c.res.oracle index 7dc1cf2aedc6feefe779fa8f9084dddffb19c524..d4cb7a56f166e0c86f7e6014fb885161748ef0e9 100644 --- a/tests/libc/oracle/string_c.res.oracle +++ b/tests/libc/oracle/string_c.res.oracle @@ -485,13 +485,13 @@ function strlen: precondition 'valid_string_s' got status valid. [eva] Recording results for strlen [eva] Done for function strlen -[eva] share/libc/string.h:411: +[eva] share/libc/string.h:405: function strcat: postcondition 'sum_of_lengths' got status valid. -[eva] share/libc/string.h:414: +[eva] share/libc/string.h:408: function strcat: postcondition 'initialization,dest' got status valid. -[eva] share/libc/string.h:415: +[eva] share/libc/string.h:409: function strcat: postcondition 'dest_null_terminated' got status valid. -[eva] share/libc/string.h:416: +[eva] share/libc/string.h:410: function strcat: postcondition 'result_ptr' got status valid. [eva] Recording results for strcat [eva] Done for function strcat @@ -550,11 +550,11 @@ function strcpy: precondition 'room_string' got status valid. [eva] tests/libc/string_c.c:142: function strcpy: precondition 'separation' got status valid. -[eva] share/libc/string.h:353: +[eva] share/libc/string.h:351: cannot evaluate ACSL term, unsupported ACSL construct: logic function strcmp -[eva:alarm] share/libc/string.h:353: Warning: +[eva:alarm] share/libc/string.h:351: Warning: function strcpy: postcondition 'equal_contents' got status unknown. -[eva] share/libc/string.h:354: +[eva] share/libc/string.h:352: function strcpy: postcondition 'result_ptr' got status valid. [eva] Recording results for strcpy [eva] Done for function strcpy @@ -594,13 +594,13 @@ function strncpy: precondition 'room_nstring' got status valid. [eva] tests/libc/string_c.c:154: function strncpy: precondition 'separation' got status valid. -[eva] share/libc/string.h:365: +[eva] share/libc/string.h:363: function strncpy: postcondition 'result_ptr' got status valid. -[eva] share/libc/string.h:366: +[eva] share/libc/string.h:364: function strncpy: postcondition 'initialization' got status valid. -[eva] share/libc/string.h:369: +[eva] share/libc/string.h:367: cannot evaluate ACSL term, unsupported ACSL construct: logic function strcmp -[eva:alarm] share/libc/string.h:369: Warning: +[eva:alarm] share/libc/string.h:367: Warning: function strncpy, behavior complete: postcondition 'equal_after_copy' got status unknown. [eva] Recording results for strncpy [eva] Done for function strncpy @@ -614,9 +614,9 @@ function strncpy: precondition 'room_nstring' got status valid. [eva] tests/libc/string_c.c:157: function strncpy: precondition 'separation' got status valid. -[eva] share/libc/string.h:372: +[eva] share/libc/string.h:370: cannot evaluate ACSL term, unsupported ACSL construct: logic function memcmp -[eva:alarm] share/libc/string.h:372: Warning: +[eva:alarm] share/libc/string.h:370: Warning: function strncpy, behavior partial: postcondition 'equal_prefix' got status unknown. [eva] Recording results for strncpy [eva] Done for function strncpy diff --git a/tests/libc/oracle/string_c_generic.res.oracle b/tests/libc/oracle/string_c_generic.res.oracle index 3431164e2afbe4604967c749dada73fe8b96d09e..79cc74ecd4c8d7931621e3703168d0584d862705 100644 --- a/tests/libc/oracle/string_c_generic.res.oracle +++ b/tests/libc/oracle/string_c_generic.res.oracle @@ -12,11 +12,11 @@ function strcpy: precondition 'room_string' got status valid. [eva] tests/libc/string_c_generic.c:56: function strcpy: precondition 'separation' got status valid. -[eva] share/libc/string.h:353: +[eva] share/libc/string.h:351: cannot evaluate ACSL term, unsupported ACSL construct: logic function strcmp -[eva:alarm] share/libc/string.h:353: Warning: +[eva:alarm] share/libc/string.h:351: Warning: function strcpy: postcondition 'equal_contents' got status unknown. -[eva] share/libc/string.h:354: +[eva] share/libc/string.h:352: function strcpy: postcondition 'result_ptr' got status valid. [eva] Recording results for strcpy [eva] Done for function strcpy @@ -161,13 +161,13 @@ [eva] tests/libc/string_c_generic.c:73: function strncpy: precondition 'separation' got status valid. [eva] share/libc/string.c:212: starting to merge loop iterations -[eva] share/libc/string.h:365: +[eva] share/libc/string.h:363: function strncpy: postcondition 'result_ptr' got status valid. -[eva] share/libc/string.h:366: +[eva] share/libc/string.h:364: function strncpy: postcondition 'initialization' got status valid. -[eva] share/libc/string.h:369: +[eva] share/libc/string.h:367: cannot evaluate ACSL term, unsupported ACSL construct: logic function strcmp -[eva:alarm] share/libc/string.h:369: Warning: +[eva:alarm] share/libc/string.h:367: Warning: function strncpy, behavior complete: postcondition 'equal_after_copy' got status unknown. [eva] Recording results for strncpy [eva] Done for function strncpy @@ -199,9 +199,9 @@ function strncpy: precondition 'room_nstring' got status valid. [eva] tests/libc/string_c_generic.c:78: function strncpy: precondition 'separation' got status valid. -[eva] share/libc/string.h:372: +[eva] share/libc/string.h:370: cannot evaluate ACSL term, unsupported ACSL construct: logic function memcmp -[eva:alarm] share/libc/string.h:372: Warning: +[eva:alarm] share/libc/string.h:370: Warning: function strncpy, behavior partial: postcondition 'equal_prefix' got status unknown. [eva] Recording results for strncpy [eva] Done for function strncpy @@ -252,9 +252,9 @@ function strlen: postcondition 'acsl_c_equiv' got status valid. [eva] Recording results for strlen [eva] Done for function strlen -[eva] share/libc/string.h:425: +[eva] share/libc/string.h:419: function strncat: postcondition 'result_ptr' got status valid. -[eva] share/libc/string.h:440: +[eva] share/libc/string.h:434: function strncat, behavior partial: postcondition 'sum_of_bounded_lengths' got status valid. [eva] Recording results for strncat [eva] Done for function strncat diff --git a/tests/libc/oracle/string_h.res.oracle b/tests/libc/oracle/string_h.res.oracle index dd500d0409a4378d30868ee18d352a65de94c277..913d0fe0a7cdfcf9445e1512f68a3a9491fc5e65 100644 --- a/tests/libc/oracle/string_h.res.oracle +++ b/tests/libc/oracle/string_h.res.oracle @@ -257,34 +257,39 @@ [eva] tests/libc/string_h.c:120: Warning: ignoring unsupported \allocates clause [eva] Done for function strndup [eva] computing for function strlcpy <- main. - Called from tests/libc/string_h.c:124. + Called from tests/libc/string_h.c:123. [eva] using specification for function strlcpy -[eva] tests/libc/string_h.c:124: +[eva] tests/libc/string_h.c:123: function strlcpy: precondition 'valid_string_src' got status valid. -[eva] tests/libc/string_h.c:124: +[eva] tests/libc/string_h.c:123: function strlcpy: precondition 'room_nstring' got status valid. -[eva] tests/libc/string_h.c:124: +[eva] tests/libc/string_h.c:123: function strlcpy: precondition 'separation' got status valid. [eva] Done for function strlcpy [eva] computing for function strlcpy <- main. - Called from tests/libc/string_h.c:125. -[eva] tests/libc/string_h.c:125: + Called from tests/libc/string_h.c:124. +[eva] tests/libc/string_h.c:124: function strlcpy: precondition 'valid_string_src' got status valid. -[eva] tests/libc/string_h.c:125: +[eva] tests/libc/string_h.c:124: function strlcpy: precondition 'room_nstring' got status valid. -[eva] tests/libc/string_h.c:125: +[eva] tests/libc/string_h.c:124: function strlcpy: precondition 'separation' got status valid. [eva] Done for function strlcpy [eva] computing for function strlcat <- main. - Called from tests/libc/string_h.c:126. + Called from tests/libc/string_h.c:125. [eva] using specification for function strlcat -[eva:alarm] tests/libc/string_h.c:126: Warning: +[eva:alarm] tests/libc/string_h.c:125: Warning: function strlcat: precondition 'valid_string_src' got status unknown. -[eva:alarm] tests/libc/string_h.c:126: Warning: +[eva:alarm] tests/libc/string_h.c:125: Warning: function strlcat: precondition 'valid_string_dest' got status unknown. -[eva] tests/libc/string_h.c:126: +[eva] tests/libc/string_h.c:125: function strlcat: precondition 'room_nstring' got status valid. [eva] Done for function strlcat +[eva] computing for function strsignal <- main. + Called from tests/libc/string_h.c:126. +[eva] using specification for function strsignal +[eva] Done for function strsignal +[eva] tests/libc/string_h.c:127: assertion got status valid. [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== @@ -336,4 +341,5 @@ r1 ∈ {18} r2 ∈ {5} r3 ∈ [--..--] + strsig ∈ {{ &__fc_strsignal[0] }} __retres ∈ {0} diff --git a/tests/libc/oracle/unistd_h.0.res.oracle b/tests/libc/oracle/unistd_h.0.res.oracle index 8acd40bd2d4580f5b0bed8763e743d007b0da385..78a30b4a80af8682c477b5bdbdb42c3aababec9f 100644 --- a/tests/libc/oracle/unistd_h.0.res.oracle +++ b/tests/libc/oracle/unistd_h.0.res.oracle @@ -5,15 +5,18 @@ \return(dup) == -1 (auto) \return(getcwd) == 0 (auto) \return(gethostname) == 0 (auto) + \return(getpgrp) == 0 (auto) \return(isatty) == 0 (auto) \return(setegid) == 0 (auto) \return(seteuid) == 0 (auto) \return(setgid) == 0 (auto) + \return(setpgid) == 0 (auto) \return(setregid) == 0 (auto) \return(setreuid) == 0 (auto) \return(setsid) == 0 (auto) \return(setuid) == 0 (auto) \return(ttyname) == 0 (auto) + \return(unlink) == 0 (auto) \return(usleep) == 0 (auto) \return(getresuid) == 0 (auto) \return(setresuid) == 0 (auto) @@ -471,35 +474,62 @@ [eva] computing for function setreuid <- main. Called from tests/libc/unistd_h.c:74. [eva] Done for function setreuid -[eva] computing for function isatty <- main. +[eva] computing for function getpgid <- main. + Called from tests/libc/unistd_h.c:75. +[eva] using specification for function getpgid +[eva] Done for function getpgid +[eva] computing for function getpgid <- main. + Called from tests/libc/unistd_h.c:75. +[eva] Done for function getpgid +[eva] computing for function setpgid <- main. + Called from tests/libc/unistd_h.c:75. +[eva] using specification for function setpgid +[eva] Done for function setpgid +[eva] computing for function setpgid <- main. + Called from tests/libc/unistd_h.c:75. +[eva] Done for function setpgid +[eva] computing for function getpgrp <- main. + Called from tests/libc/unistd_h.c:76. +[eva] using specification for function getpgrp +[eva] Done for function getpgrp +[eva] computing for function getpgrp <- main. Called from tests/libc/unistd_h.c:76. +[eva] Done for function getpgrp +[eva] computing for function unlink <- main. + Called from tests/libc/unistd_h.c:78. +[eva] using specification for function unlink +[eva] tests/libc/unistd_h.c:78: + function unlink: precondition 'valid_string_path' got status valid. +[eva] Done for function unlink +[eva] computing for function isatty <- main. + Called from tests/libc/unistd_h.c:80. [eva] using specification for function isatty [eva] Done for function isatty [eva] computing for function isatty <- main. - Called from tests/libc/unistd_h.c:76. + Called from tests/libc/unistd_h.c:80. [eva] Done for function isatty -[eva] tests/libc/unistd_h.c:77: assertion got status valid. +[eva] tests/libc/unistd_h.c:81: assertion got status valid. [eva] computing for function ttyname <- main. - Called from tests/libc/unistd_h.c:78. + Called from tests/libc/unistd_h.c:82. [eva] using specification for function ttyname [eva] Done for function ttyname [eva] computing for function ttyname <- main. - Called from tests/libc/unistd_h.c:78. + Called from tests/libc/unistd_h.c:82. [eva] Done for function ttyname [eva] computing for function chown <- main. - Called from tests/libc/unistd_h.c:80. + Called from tests/libc/unistd_h.c:84. [eva] using specification for function chown -[eva] tests/libc/unistd_h.c:80: +[eva] tests/libc/unistd_h.c:84: function chown: precondition 'valid_string_path' got status valid. [eva] Done for function chown [eva] computing for function chown <- main. - Called from tests/libc/unistd_h.c:80. + Called from tests/libc/unistd_h.c:84. [eva] Done for function chown [eva] computing for function chown <- main. - Called from tests/libc/unistd_h.c:80. + Called from tests/libc/unistd_h.c:84. [eva] Done for function chown [eva] computing for function chown <- main. - Called from tests/libc/unistd_h.c:80. + Called from tests/libc/unistd_h.c:84. [eva] Done for function chown [eva] Recording results for main [eva] done for function main diff --git a/tests/libc/oracle/unistd_h.1.res.oracle b/tests/libc/oracle/unistd_h.1.res.oracle index 39a11b77b4e4ae5530789d3936f5737a6b77bc10..78e0c0de0e69dd98b7adb4fbd0f5bcf9f8f82c0e 100644 --- a/tests/libc/oracle/unistd_h.1.res.oracle +++ b/tests/libc/oracle/unistd_h.1.res.oracle @@ -5,15 +5,18 @@ \return(dup) == -1 (auto) \return(getcwd) == 0 (auto) \return(gethostname) == 0 (auto) + \return(getpgrp) == 0 (auto) \return(isatty) == 0 (auto) \return(setegid) == 0 (auto) \return(seteuid) == 0 (auto) \return(setgid) == 0 (auto) + \return(setpgid) == 0 (auto) \return(setregid) == 0 (auto) \return(setreuid) == 0 (auto) \return(setsid) == 0 (auto) \return(setuid) == 0 (auto) \return(ttyname) == 0 (auto) + \return(unlink) == 0 (auto) \return(usleep) == 0 (auto) \return(getresuid) == 0 (auto) \return(setresuid) == 0 (auto) @@ -471,35 +474,62 @@ [eva] computing for function setreuid <- main. Called from tests/libc/unistd_h.c:74. [eva] Done for function setreuid -[eva] computing for function isatty <- main. +[eva] computing for function getpgid <- main. + Called from tests/libc/unistd_h.c:75. +[eva] using specification for function getpgid +[eva] Done for function getpgid +[eva] computing for function getpgid <- main. + Called from tests/libc/unistd_h.c:75. +[eva] Done for function getpgid +[eva] computing for function setpgid <- main. + Called from tests/libc/unistd_h.c:75. +[eva] using specification for function setpgid +[eva] Done for function setpgid +[eva] computing for function setpgid <- main. + Called from tests/libc/unistd_h.c:75. +[eva] Done for function setpgid +[eva] computing for function getpgrp <- main. + Called from tests/libc/unistd_h.c:76. +[eva] using specification for function getpgrp +[eva] Done for function getpgrp +[eva] computing for function getpgrp <- main. Called from tests/libc/unistd_h.c:76. +[eva] Done for function getpgrp +[eva] computing for function unlink <- main. + Called from tests/libc/unistd_h.c:78. +[eva] using specification for function unlink +[eva] tests/libc/unistd_h.c:78: + function unlink: precondition 'valid_string_path' got status valid. +[eva] Done for function unlink +[eva] computing for function isatty <- main. + Called from tests/libc/unistd_h.c:80. [eva] using specification for function isatty [eva] Done for function isatty [eva] computing for function isatty <- main. - Called from tests/libc/unistd_h.c:76. + Called from tests/libc/unistd_h.c:80. [eva] Done for function isatty -[eva] tests/libc/unistd_h.c:77: assertion got status valid. +[eva] tests/libc/unistd_h.c:81: assertion got status valid. [eva] computing for function ttyname <- main. - Called from tests/libc/unistd_h.c:78. + Called from tests/libc/unistd_h.c:82. [eva] using specification for function ttyname [eva] Done for function ttyname [eva] computing for function ttyname <- main. - Called from tests/libc/unistd_h.c:78. + Called from tests/libc/unistd_h.c:82. [eva] Done for function ttyname [eva] computing for function chown <- main. - Called from tests/libc/unistd_h.c:80. + Called from tests/libc/unistd_h.c:84. [eva] using specification for function chown -[eva] tests/libc/unistd_h.c:80: +[eva] tests/libc/unistd_h.c:84: function chown: precondition 'valid_string_path' got status valid. [eva] Done for function chown [eva] computing for function chown <- main. - Called from tests/libc/unistd_h.c:80. + Called from tests/libc/unistd_h.c:84. [eva] Done for function chown [eva] computing for function chown <- main. - Called from tests/libc/unistd_h.c:80. + Called from tests/libc/unistd_h.c:84. [eva] Done for function chown [eva] computing for function chown <- main. - Called from tests/libc/unistd_h.c:80. + Called from tests/libc/unistd_h.c:84. [eva] Done for function chown [eva] Recording results for main [eva] done for function main diff --git a/tests/libc/signal_h.c b/tests/libc/signal_h.c index 289f4c365e8762970c7e63c37b05b06c086af7ea..f8aa063de2edf99c21e12b0d14a974e35ab24b0c 100644 --- a/tests/libc/signal_h.c +++ b/tests/libc/signal_h.c @@ -41,5 +41,16 @@ int main() { int kill_res = kill(42, SIGTERM); + struct sigaction sa1, sa2; + if (sigaction(SIGCHLD, 0, &sa1)) { + return -1; + } + if (sigaction(SIGCONT, &sa1, &sa2)) { + return -1; + } + if (sigaction(SIGUSR1, &sa2, 0)) { + return -1; + } + return 0; } diff --git a/tests/libc/stdlib_h.c b/tests/libc/stdlib_h.c index 160cf1d2bfcd044f3ddeb01b308df1055b86fa67..dec6260f59fd24e6aed419f1af823ab1527d2fd6 100644 --- a/tests/libc/stdlib_h.c +++ b/tests/libc/stdlib_h.c @@ -77,5 +77,9 @@ int main() { char *v = getenv("MUTABLE"); if (v[8] != 'n') return 1; // possible only if imprecise }*/ + + char tempFilename[] = "blaXXXXXX"; + int r = mkstemp(tempFilename); + return 0; } diff --git a/tests/libc/string_h.c b/tests/libc/string_h.c index 9dd3b05c2b9d5cce31c68fd7529a0fb11d3a73d1..27065864dd54811732a6107eecaeca8386c9422f 100644 --- a/tests/libc/string_h.c +++ b/tests/libc/string_h.c @@ -118,11 +118,12 @@ int main(int argc, char **argv) test_strtok_r(); char *a = strdup("bla"); // unsound; specification currently unsupported char *b = strndup("bla", 2); // unsound; specification currently unsupported - char buf[16]; char buf2[32]; size_t r1 = strlcpy(buf, "longer than buffer", 16); size_t r2 = strlcpy(buf2, "short", 16); size_t r3 = strlcat(buf2, buf, 32); + char *strsig = strsignal(1); + //@ assert valid_read_string(strsig); return 0; } diff --git a/tests/libc/unistd_h.c b/tests/libc/unistd_h.c index d665ec88fa9055339d43cb3ba706867b93bee864..b6eba6c732ceee7e6be079621580bfec33ba7991 100644 --- a/tests/libc/unistd_h.c +++ b/tests/libc/unistd_h.c @@ -72,6 +72,10 @@ int main() { r = setuid(ruid); r = setregid(rgid, egid); r = setreuid(ruid, euid); + r = setpgid(p, getpgid(0)); + r = getpgrp(); + + r = unlink("/tmp/test_unlink"); r = isatty(1); //@ assert r == 0 || r == 1; diff --git a/tests/misc/oracle/pragma-pack.0.res.oracle b/tests/misc/oracle/pragma-pack.0.res.oracle index a129933710ffda3e3a258680488c531640c4d6c6..4ca3caef6f2bb369a68f39a45945228800208ff8 100644 --- a/tests/misc/oracle/pragma-pack.0.res.oracle +++ b/tests/misc/oracle/pragma-pack.0.res.oracle @@ -8,6 +8,8 @@ [kernel:typing:pragma] Pushing fc_stdlib stddef.h [kernel:typing:pragma] Pushing fc_stdlib __fc_define_size_t.h [kernel:typing:pragma] Popping fc_stdlib __fc_define_size_t.h +[kernel:typing:pragma] Pushing fc_stdlib __fc_define_ssize_t.h +[kernel:typing:pragma] Popping fc_stdlib __fc_define_ssize_t.h [kernel:typing:pragma] Pushing fc_stdlib __fc_define_wchar_t.h [kernel:typing:pragma] Popping fc_stdlib __fc_define_wchar_t.h [kernel:typing:pragma] Popping fc_stdlib stddef.h