From 40d7c4518670a326c5492439b5ae207ca7bb3a5b Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Fri, 24 Feb 2023 09:25:46 +0100 Subject: [PATCH] [libc] fix postcondition in strto* functions Thanks to Mark Dascher for the fix. --- share/libc/stdlib.h | 14 ++--- .../tests/sarif/oracle/std_string.sarif | 56 +++++++++---------- tests/libc/oracle/fc_libc.1.res.oracle | 14 ++--- tests/libc/oracle/stdlib_h.0.res.oracle | 56 +++++++++---------- tests/libc/oracle/stdlib_h.1.res.oracle | 56 +++++++++---------- 5 files changed, 98 insertions(+), 98 deletions(-) diff --git a/share/libc/stdlib.h b/share/libc/stdlib.h index 0b8dbb19a68..55783f8ac05 100644 --- a/share/libc/stdlib.h +++ b/share/libc/stdlib.h @@ -108,7 +108,7 @@ extern long long int atoll(const char *nptr); assigns \result \from indirect:nptr, indirect:nptr[0 ..]; assigns *endptr \from nptr, indirect:nptr[0 ..], indirect:endptr; ensures initialization: \initialized(endptr); - ensures valid_endptr: \valid_read(endptr); + ensures valid_endptr_content: \valid_read(*endptr); ensures position_subset: \subset(*endptr, nptr + (0 ..)); complete behaviors; disjoint behaviors; @@ -130,7 +130,7 @@ extern double strtod(const char * restrict nptr, assigns \result \from indirect:nptr, indirect:nptr[0 ..]; assigns *endptr \from nptr, indirect:nptr[0 ..], indirect:endptr; ensures initialization: \initialized(endptr); - ensures valid_endptr: \valid_read(endptr); + ensures valid_endptr_content: \valid_read(*endptr); ensures position_subset: \subset(*endptr, nptr + (0 ..)); complete behaviors; disjoint behaviors; @@ -152,7 +152,7 @@ extern float strtof(const char * restrict nptr, assigns \result \from indirect:nptr, indirect:nptr[0 ..]; assigns *endptr \from nptr, indirect:nptr[0 ..], indirect:endptr; ensures initialization: \initialized(endptr); - ensures valid_endptr: \valid_read(endptr); + ensures valid_endptr_content: \valid_read(*endptr); ensures position_subset: \subset(*endptr, nptr + (0 ..)); complete behaviors; disjoint behaviors; @@ -176,7 +176,7 @@ extern long double strtold(const char * restrict nptr, assigns \result \from indirect:nptr, indirect:nptr[0 ..], indirect:base; assigns *endptr \from nptr, indirect:nptr[0 ..], indirect:endptr, indirect:base; ensures initialization: \initialized(endptr); - ensures valid_endptr: \valid_read(endptr); + ensures valid_endptr_content: \valid_read(*endptr); ensures position_subset: \subset(*endptr, nptr + (0 ..)); complete behaviors; disjoint behaviors; @@ -201,7 +201,7 @@ extern long int strtol( assigns \result \from indirect:nptr, indirect:nptr[0 ..], indirect:base; assigns *endptr \from nptr, indirect:nptr[0 ..], indirect:endptr, indirect:base; ensures initialization: \initialized(endptr); - ensures valid_endptr: \valid_read(endptr); + ensures valid_endptr_content: \valid_read(*endptr); ensures position_subset: \subset(*endptr, nptr + (0 ..)); complete behaviors; disjoint behaviors; @@ -226,7 +226,7 @@ extern long long int strtoll( assigns \result \from indirect:nptr, indirect:nptr[0 ..], indirect:base; assigns *endptr \from nptr, indirect:nptr[0 ..], indirect:endptr, indirect:base; ensures initialization: \initialized(endptr); - ensures valid_endptr: \valid_read(endptr); + ensures valid_endptr_content: \valid_read(*endptr); ensures position_subset: \subset(*endptr, nptr + (0 ..)); complete behaviors; disjoint behaviors; @@ -251,7 +251,7 @@ extern unsigned long int strtoul( assigns \result \from indirect:nptr, indirect:nptr[0 ..], indirect:base; assigns *endptr \from nptr, indirect:nptr[0 ..], indirect:endptr, indirect:base; ensures initialization: \initialized(endptr); - ensures valid_endptr: \valid_read(endptr); + ensures valid_endptr_content: \valid_read(*endptr); ensures position_subset: \subset(*endptr, nptr + (0 ..)); complete behaviors; disjoint behaviors; diff --git a/src/plugins/markdown-report/tests/sarif/oracle/std_string.sarif b/src/plugins/markdown-report/tests/sarif/oracle/std_string.sarif index 1e15a794fc4..e499e1e3500 100644 --- a/src/plugins/markdown-report/tests/sarif/oracle/std_string.sarif +++ b/src/plugins/markdown-report/tests/sarif/oracle/std_string.sarif @@ -21078,7 +21078,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_endptr." }, + "message": { "text": "valid_endptr_content." }, "locations": [ { "physicalLocation": { @@ -21088,10 +21088,10 @@ }, "region": { "startLine": 111, - "startColumn": 26, + "startColumn": 34, "endLine": 111, - "endColumn": 45, - "byteLength": 19 + "endColumn": 54, + "byteLength": 20 } } } @@ -21573,7 +21573,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_endptr." }, + "message": { "text": "valid_endptr_content." }, "locations": [ { "physicalLocation": { @@ -21583,10 +21583,10 @@ }, "region": { "startLine": 133, - "startColumn": 26, + "startColumn": 34, "endLine": 133, - "endColumn": 45, - "byteLength": 19 + "endColumn": 54, + "byteLength": 20 } } } @@ -23442,7 +23442,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_endptr." }, + "message": { "text": "valid_endptr_content." }, "locations": [ { "physicalLocation": { @@ -23452,10 +23452,10 @@ }, "region": { "startLine": 179, - "startColumn": 26, + "startColumn": 34, "endLine": 179, - "endColumn": 45, - "byteLength": 19 + "endColumn": 54, + "byteLength": 20 } } } @@ -23937,7 +23937,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_endptr." }, + "message": { "text": "valid_endptr_content." }, "locations": [ { "physicalLocation": { @@ -23947,10 +23947,10 @@ }, "region": { "startLine": 155, - "startColumn": 26, + "startColumn": 34, "endLine": 155, - "endColumn": 45, - "byteLength": 19 + "endColumn": 54, + "byteLength": 20 } } } @@ -24455,7 +24455,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_endptr." }, + "message": { "text": "valid_endptr_content." }, "locations": [ { "physicalLocation": { @@ -24465,10 +24465,10 @@ }, "region": { "startLine": 204, - "startColumn": 26, + "startColumn": 34, "endLine": 204, - "endColumn": 45, - "byteLength": 19 + "endColumn": 54, + "byteLength": 20 } } } @@ -24973,7 +24973,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_endptr." }, + "message": { "text": "valid_endptr_content." }, "locations": [ { "physicalLocation": { @@ -24983,10 +24983,10 @@ }, "region": { "startLine": 229, - "startColumn": 26, + "startColumn": 34, "endLine": 229, - "endColumn": 45, - "byteLength": 19 + "endColumn": 54, + "byteLength": 20 } } } @@ -25491,7 +25491,7 @@ "ruleId": "user-spec", "kind": "pass", "level": "none", - "message": { "text": "valid_endptr." }, + "message": { "text": "valid_endptr_content." }, "locations": [ { "physicalLocation": { @@ -25501,10 +25501,10 @@ }, "region": { "startLine": 254, - "startColumn": 26, + "startColumn": 34, "endLine": 254, - "endColumn": 45, - "byteLength": 19 + "endColumn": 54, + "byteLength": 20 } } } diff --git a/tests/libc/oracle/fc_libc.1.res.oracle b/tests/libc/oracle/fc_libc.1.res.oracle index af69919cfaa..23a36e77700 100644 --- a/tests/libc/oracle/fc_libc.1.res.oracle +++ b/tests/libc/oracle/fc_libc.1.res.oracle @@ -943,7 +943,7 @@ extern long long atoll(char const *nptr); assumes nonnull_endptr: endptr ≢ \null; requires valid_endptr: \valid(endptr); ensures initialization: \initialized(\old(endptr)); - ensures valid_endptr: \valid_read(\old(endptr)); + ensures valid_endptr_content: \valid_read(*\old(endptr)); ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); assigns \result, *endptr; assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); @@ -971,7 +971,7 @@ extern double strtod(char const * restrict nptr, char ** restrict endptr); assumes nonnull_endptr: endptr ≢ \null; requires valid_endptr: \valid(endptr); ensures initialization: \initialized(\old(endptr)); - ensures valid_endptr: \valid_read(\old(endptr)); + ensures valid_endptr_content: \valid_read(*\old(endptr)); ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); assigns \result, *endptr; assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); @@ -999,7 +999,7 @@ extern float strtof(char const * restrict nptr, char ** restrict endptr); assumes nonnull_endptr: endptr ≢ \null; requires valid_endptr: \valid(endptr); ensures initialization: \initialized(\old(endptr)); - ensures valid_endptr: \valid_read(\old(endptr)); + ensures valid_endptr_content: \valid_read(*\old(endptr)); ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); assigns \result, *endptr; assigns \result \from (indirect: nptr), (indirect: *(nptr + (0 ..))); @@ -1033,7 +1033,7 @@ extern long double strtold(char const * restrict nptr, assumes nonnull_endptr: endptr ≢ \null; requires valid_endptr: \valid(endptr); ensures initialization: \initialized(\old(endptr)); - ensures valid_endptr: \valid_read(\old(endptr)); + ensures valid_endptr_content: \valid_read(*\old(endptr)); ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); assigns \result, *endptr; assigns \result @@ -1070,7 +1070,7 @@ extern long strtol(char const * restrict nptr, char ** restrict endptr, assumes nonnull_endptr: endptr ≢ \null; requires valid_endptr: \valid(endptr); ensures initialization: \initialized(\old(endptr)); - ensures valid_endptr: \valid_read(\old(endptr)); + ensures valid_endptr_content: \valid_read(*\old(endptr)); ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); assigns \result, *endptr; assigns \result @@ -1107,7 +1107,7 @@ extern long long strtoll(char const * restrict nptr, char ** restrict endptr, assumes nonnull_endptr: endptr ≢ \null; requires valid_endptr: \valid(endptr); ensures initialization: \initialized(\old(endptr)); - ensures valid_endptr: \valid_read(\old(endptr)); + ensures valid_endptr_content: \valid_read(*\old(endptr)); ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); assigns \result, *endptr; assigns \result @@ -1144,7 +1144,7 @@ extern unsigned long strtoul(char const * restrict nptr, assumes nonnull_endptr: endptr ≢ \null; requires valid_endptr: \valid(endptr); ensures initialization: \initialized(\old(endptr)); - ensures valid_endptr: \valid_read(\old(endptr)); + ensures valid_endptr_content: \valid_read(*\old(endptr)); ensures position_subset: \subset(*\old(endptr), \old(nptr) + (0 ..)); assigns \result, *endptr; assigns \result diff --git a/tests/libc/oracle/stdlib_h.0.res.oracle b/tests/libc/oracle/stdlib_h.0.res.oracle index cc7c4632797..7ed7accc254 100644 --- a/tests/libc/oracle/stdlib_h.0.res.oracle +++ b/tests/libc/oracle/stdlib_h.0.res.oracle @@ -18,8 +18,8 @@ [eva] Done for function strtol [eva] computing for function strtol <- main. Called from stdlib_h.c:22. -[eva:alarm] stdlib_h.c:22: Warning: - function strtol: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:22: + function strtol: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:22: function strtol: precondition 'separation' got status valid. [eva] stdlib_h.c:22: @@ -29,8 +29,8 @@ [eva] Done for function strtol [eva] computing for function strtol <- main. Called from stdlib_h.c:23. -[eva:alarm] stdlib_h.c:23: Warning: - function strtol: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:23: + function strtol: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:23: function strtol: precondition 'separation' got status valid. [eva] stdlib_h.c:23: @@ -59,8 +59,8 @@ [eva] Done for function strtoll [eva] computing for function strtoll <- main. Called from stdlib_h.c:29. -[eva:alarm] stdlib_h.c:29: Warning: - function strtoll: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:29: + function strtoll: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:29: function strtoll: precondition 'separation' got status valid. [eva] stdlib_h.c:29: @@ -70,8 +70,8 @@ [eva] Done for function strtoll [eva] computing for function strtoll <- main. Called from stdlib_h.c:30. -[eva:alarm] stdlib_h.c:30: Warning: - function strtoll: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:30: + function strtoll: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:30: function strtoll: precondition 'separation' got status valid. [eva] stdlib_h.c:30: @@ -91,8 +91,8 @@ [eva] Done for function strtoul [eva] computing for function strtoul <- main. Called from stdlib_h.c:35. -[eva:alarm] stdlib_h.c:35: Warning: - function strtoul: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:35: + function strtoul: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:35: function strtoul: precondition 'separation' got status valid. [eva] stdlib_h.c:35: @@ -102,8 +102,8 @@ [eva] Done for function strtoul [eva] computing for function strtoul <- main. Called from stdlib_h.c:36. -[eva:alarm] stdlib_h.c:36: Warning: - function strtoul: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:36: + function strtoul: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:36: function strtoul: precondition 'separation' got status valid. [eva] stdlib_h.c:36: @@ -123,8 +123,8 @@ [eva] Done for function strtoull [eva] computing for function strtoull <- main. Called from stdlib_h.c:41. -[eva:alarm] stdlib_h.c:41: Warning: - function strtoull: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:41: + function strtoull: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:41: function strtoull: precondition 'separation' got status valid. [eva] stdlib_h.c:41: @@ -134,8 +134,8 @@ [eva] Done for function strtoull [eva] computing for function strtoull <- main. Called from stdlib_h.c:42. -[eva:alarm] stdlib_h.c:42: Warning: - function strtoull: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:42: + function strtoull: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:42: function strtoull: precondition 'separation' got status valid. [eva] stdlib_h.c:42: @@ -153,8 +153,8 @@ [eva] Done for function strtod [eva] computing for function strtod <- main. Called from stdlib_h.c:48. -[eva:alarm] stdlib_h.c:48: Warning: - function strtod: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:48: + function strtod: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:48: function strtod: precondition 'separation' got status valid. [eva] stdlib_h.c:48: @@ -162,8 +162,8 @@ [eva] Done for function strtod [eva] computing for function strtod <- main. Called from stdlib_h.c:49. -[eva:alarm] stdlib_h.c:49: Warning: - function strtod: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:49: + function strtod: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:49: function strtod: precondition 'separation' got status valid. [eva] Done for function strtod @@ -179,8 +179,8 @@ [eva] Done for function strtold [eva] computing for function strtold <- main. Called from stdlib_h.c:54. -[eva:alarm] stdlib_h.c:54: Warning: - function strtold: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:54: + function strtold: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:54: function strtold: precondition 'separation' got status valid. [eva] stdlib_h.c:54: @@ -188,8 +188,8 @@ [eva] Done for function strtold [eva] computing for function strtold <- main. Called from stdlib_h.c:55. -[eva:alarm] stdlib_h.c:55: Warning: - function strtold: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:55: + function strtold: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:55: function strtold: precondition 'separation' got status valid. [eva] Done for function strtold @@ -205,8 +205,8 @@ [eva] Done for function strtof [eva] computing for function strtof <- main. Called from stdlib_h.c:60. -[eva:alarm] stdlib_h.c:60: Warning: - function strtof: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:60: + function strtof: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:60: function strtof: precondition 'separation' got status valid. [eva] stdlib_h.c:60: @@ -214,8 +214,8 @@ [eva] Done for function strtof [eva] computing for function strtof <- main. Called from stdlib_h.c:61. -[eva:alarm] stdlib_h.c:61: Warning: - function strtof: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:61: + function strtof: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:61: function strtof: precondition 'separation' got status valid. [eva] Done for function strtof diff --git a/tests/libc/oracle/stdlib_h.1.res.oracle b/tests/libc/oracle/stdlib_h.1.res.oracle index e2727df8a18..03146ea7ad7 100644 --- a/tests/libc/oracle/stdlib_h.1.res.oracle +++ b/tests/libc/oracle/stdlib_h.1.res.oracle @@ -18,8 +18,8 @@ [eva] Done for function strtol [eva] computing for function strtol <- main. Called from stdlib_h.c:22. -[eva:alarm] stdlib_h.c:22: Warning: - function strtol: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:22: + function strtol: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:22: function strtol: precondition 'separation' got status valid. [eva] stdlib_h.c:22: @@ -29,8 +29,8 @@ [eva] Done for function strtol [eva] computing for function strtol <- main. Called from stdlib_h.c:23. -[eva:alarm] stdlib_h.c:23: Warning: - function strtol: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:23: + function strtol: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:23: function strtol: precondition 'separation' got status valid. [eva] stdlib_h.c:23: @@ -59,8 +59,8 @@ [eva] Done for function strtoll [eva] computing for function strtoll <- main. Called from stdlib_h.c:29. -[eva:alarm] stdlib_h.c:29: Warning: - function strtoll: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:29: + function strtoll: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:29: function strtoll: precondition 'separation' got status valid. [eva] stdlib_h.c:29: @@ -70,8 +70,8 @@ [eva] Done for function strtoll [eva] computing for function strtoll <- main. Called from stdlib_h.c:30. -[eva:alarm] stdlib_h.c:30: Warning: - function strtoll: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:30: + function strtoll: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:30: function strtoll: precondition 'separation' got status valid. [eva] stdlib_h.c:30: @@ -91,8 +91,8 @@ [eva] Done for function strtoul [eva] computing for function strtoul <- main. Called from stdlib_h.c:35. -[eva:alarm] stdlib_h.c:35: Warning: - function strtoul: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:35: + function strtoul: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:35: function strtoul: precondition 'separation' got status valid. [eva] stdlib_h.c:35: @@ -102,8 +102,8 @@ [eva] Done for function strtoul [eva] computing for function strtoul <- main. Called from stdlib_h.c:36. -[eva:alarm] stdlib_h.c:36: Warning: - function strtoul: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:36: + function strtoul: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:36: function strtoul: precondition 'separation' got status valid. [eva] stdlib_h.c:36: @@ -123,8 +123,8 @@ [eva] Done for function strtoull [eva] computing for function strtoull <- main. Called from stdlib_h.c:41. -[eva:alarm] stdlib_h.c:41: Warning: - function strtoull: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:41: + function strtoull: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:41: function strtoull: precondition 'separation' got status valid. [eva] stdlib_h.c:41: @@ -134,8 +134,8 @@ [eva] Done for function strtoull [eva] computing for function strtoull <- main. Called from stdlib_h.c:42. -[eva:alarm] stdlib_h.c:42: Warning: - function strtoull: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:42: + function strtoull: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:42: function strtoull: precondition 'separation' got status valid. [eva] stdlib_h.c:42: @@ -153,8 +153,8 @@ [eva] Done for function strtod [eva] computing for function strtod <- main. Called from stdlib_h.c:48. -[eva:alarm] stdlib_h.c:48: Warning: - function strtod: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:48: + function strtod: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:48: function strtod: precondition 'separation' got status valid. [eva] stdlib_h.c:48: @@ -162,8 +162,8 @@ [eva] Done for function strtod [eva] computing for function strtod <- main. Called from stdlib_h.c:49. -[eva:alarm] stdlib_h.c:49: Warning: - function strtod: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:49: + function strtod: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:49: function strtod: precondition 'separation' got status valid. [eva] Done for function strtod @@ -179,8 +179,8 @@ [eva] Done for function strtold [eva] computing for function strtold <- main. Called from stdlib_h.c:54. -[eva:alarm] stdlib_h.c:54: Warning: - function strtold: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:54: + function strtold: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:54: function strtold: precondition 'separation' got status valid. [eva] stdlib_h.c:54: @@ -188,8 +188,8 @@ [eva] Done for function strtold [eva] computing for function strtold <- main. Called from stdlib_h.c:55. -[eva:alarm] stdlib_h.c:55: Warning: - function strtold: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:55: + function strtold: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:55: function strtold: precondition 'separation' got status valid. [eva] Done for function strtold @@ -205,8 +205,8 @@ [eva] Done for function strtof [eva] computing for function strtof <- main. Called from stdlib_h.c:60. -[eva:alarm] stdlib_h.c:60: Warning: - function strtof: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:60: + function strtof: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:60: function strtof: precondition 'separation' got status valid. [eva] stdlib_h.c:60: @@ -214,8 +214,8 @@ [eva] Done for function strtof [eva] computing for function strtof <- main. Called from stdlib_h.c:61. -[eva:alarm] stdlib_h.c:61: Warning: - function strtof: precondition 'valid_nptr' got status unknown. +[eva] stdlib_h.c:61: + function strtof: precondition 'valid_nptr' got status valid. [eva] stdlib_h.c:61: function strtof: precondition 'separation' got status valid. [eva] Done for function strtof -- GitLab