Just tried to build this with the latest Checked C on MacOS 10.14.5 (and Xcode 10.2.1) and it doesn't succeed. Very long transcript follows.
[ checkedc-parson ]> make CC=~/research/projects/checkedc/llvm.obj/bin/clang compile
/Users/mwhicks/research/projects/checkedc/llvm.obj/bin/clang -O0 -g -Wall -Wextra -std=c99 -pedantic-errors -o test tests.c parson.c
tests.c:638:25: warning: cannot prove declared bounds for 'file_contents' are
valid after initialization [-Wcheck-bounds-decls-checked-scope]
...file_contents : count(file_size * (size_t)1) = (_Nt_array_ptr<char>) malloc<char>((file_size + 1) * sizeof(char));
^~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tests.c:638:25: note: (expanded) declared bounds are 'bounds(file_contents,
file_contents + file_size * (size_t)1)'
_Nt_array_ptr<char> file_contents : count(file_size * (size_t)1) = (...
^~~~~~~~~~~~~
tests.c:638:72: note: (expanded) inferred bounds are
'bounds((_Array_ptr<char>)value of malloc((file_size + 1) * sizeof(char)),
(_Array_ptr<char>)value of malloc((file_size + 1) * sizeof(char)) +
(file_size + 1) * sizeof(char))'
...= (_Nt_array_ptr<char>) malloc<char>((file_size + 1) * sizeof(char));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
In file included from parson.c:40:
/Users/mwhicks/research/projects/checkedc/llvm.obj/lib/clang/8.0.0/include/errno_checked.h:27:55: error:
expected function body after function declarator
extern int* __errno_location(void) : itype(_Ptr<int>) __THROW __attribut...
^
parson.c:168:28: warning: cannot prove argument meets declared bounds for 2nd
parameter [-Wcheck-bounds-decls-checked-scope]
strncpy(output_string, string, n);
^~~~~~
/usr/include/secure/_string.h:124:34: note: expanded from macro 'strncpy'
__builtin___strncpy_chk (dest, __VA_ARGS__, __darwin_obs...
^~~~~~~~~~~
parson.c:168:28: note: (expanded) expected argument bounds are 'bounds((const
char *)string, (const char *)string + n)'
parson.c:168:28: note: (expanded) inferred bounds are 'bounds(string, string +
0)'
strncpy(output_string, string, n);
^~~~~~
/usr/include/secure/_string.h:124:34: note: expanded from macro 'strncpy'
__builtin___strncpy_chk (dest, __VA_ARGS__, __darwin_obs...
^~~~~~~~~~~
parson.c:510:9: error: return used in a checked scope must have a checked type
or a bounds-safe interface
memcpy<_Ptr<JSON_Value>>(_Dynamic_bounds_cast<_Array_ptr<_Ptr<JS...
^
/usr/include/string.h:72:1: note: return declared here
void *memcpy(void *__dst, const void *__src, size_t __n);
^
parson.c:668:5: error: return used in a checked scope must have a checked type
or a bounds-safe interface
memcpy<char>(resized_output, tmp_rebounded_output, final_size);
^
/usr/include/string.h:72:1: note: return declared here
void *memcpy(void *__dst, const void *__src, size_t __n);
^
parson.c:941:54: warning: cannot prove argument meets declared bounds for 2nd
parameter [-Wcheck-bounds-decls-checked-scope]
written = json_serialize_string(key, buf, buf_start, buf_len);
^~~
parson.c:941:54: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (unsigned int)buf_len)'
parson.c:941:54: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
written = json_serialize_string(key, buf, buf_start, buf_len);
^~~
parson.c:979:53: warning: cannot prove argument meets declared bounds for 2nd
parameter [-Wcheck-bounds-decls-checked-scope]
written = json_serialize_string(string, buf, buf_start, buf_len);
^~~
parson.c:979:53: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (unsigned int)buf_len)'
parson.c:979:53: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
written = json_serialize_string(string, buf, buf_start, buf_len);
^~~
parson.c:998:25: warning: cannot prove declared bounds for num_buf are valid
after assignment [-Wcheck-bounds-decls-checked-scope]
num_buf = buf;
~~~~~~~ ^ ~~~
parson.c:998:17: note: (expanded) declared bounds are 'bounds(num_buf, num_buf +
0)'
num_buf = buf;
^
parson.c:998:27: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
num_buf = buf;
^~~
parson.c:1032:5: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
APPEND_STRING("\"");
^~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1032:5: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1032:5: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
APPEND_STRING("\"");
^~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1085:5: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
APPEND_STRING("\"");
^~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1085:5: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1085:5: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
APPEND_STRING("\"");
^~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1036:24: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\"': APPEND_STRING("\\\""); break;
^~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1036:24: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1036:24: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\"': APPEND_STRING("\\\""); break;
^~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1037:24: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\\': APPEND_STRING("\\\\"); break;
^~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1037:24: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1037:24: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\\': APPEND_STRING("\\\\"); break;
^~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1038:24: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '/': APPEND_STRING("\\/"); break; /* to make json embe...
^~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1038:24: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1038:24: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '/': APPEND_STRING("\\/"); break; /* to make json embe...
^~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1039:24: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\b': APPEND_STRING("\\b"); break;
^~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1039:24: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1039:24: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\b': APPEND_STRING("\\b"); break;
^~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1040:24: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\f': APPEND_STRING("\\f"); break;
^~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1040:24: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1040:24: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\f': APPEND_STRING("\\f"); break;
^~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1041:24: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\n': APPEND_STRING("\\n"); break;
^~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1041:24: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1041:24: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\n': APPEND_STRING("\\n"); break;
^~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1042:24: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\r': APPEND_STRING("\\r"); break;
^~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1042:24: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1042:24: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\r': APPEND_STRING("\\r"); break;
^~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1043:24: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\t': APPEND_STRING("\\t"); break;
^~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1043:24: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1043:24: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\t': APPEND_STRING("\\t"); break;
^~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1044:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x00': APPEND_STRING("\\u0000"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1044:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1044:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x00': APPEND_STRING("\\u0000"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1045:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x01': APPEND_STRING("\\u0001"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1045:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1045:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x01': APPEND_STRING("\\u0001"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1046:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x02': APPEND_STRING("\\u0002"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1046:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1046:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x02': APPEND_STRING("\\u0002"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1047:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x03': APPEND_STRING("\\u0003"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1047:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1047:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x03': APPEND_STRING("\\u0003"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1048:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x04': APPEND_STRING("\\u0004"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1048:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1048:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x04': APPEND_STRING("\\u0004"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1049:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x05': APPEND_STRING("\\u0005"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1049:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1049:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x05': APPEND_STRING("\\u0005"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1050:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x06': APPEND_STRING("\\u0006"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1050:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1050:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x06': APPEND_STRING("\\u0006"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1051:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x07': APPEND_STRING("\\u0007"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1051:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1051:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x07': APPEND_STRING("\\u0007"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1055:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x0b': APPEND_STRING("\\u000b"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1055:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1055:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x0b': APPEND_STRING("\\u000b"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1058:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x0e': APPEND_STRING("\\u000e"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1058:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1058:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x0e': APPEND_STRING("\\u000e"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1059:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x0f': APPEND_STRING("\\u000f"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1059:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1059:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x0f': APPEND_STRING("\\u000f"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1060:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x10': APPEND_STRING("\\u0010"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1060:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1060:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x10': APPEND_STRING("\\u0010"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1061:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x11': APPEND_STRING("\\u0011"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1061:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1061:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x11': APPEND_STRING("\\u0011"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1062:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x12': APPEND_STRING("\\u0012"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1062:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1062:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x12': APPEND_STRING("\\u0012"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1063:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x13': APPEND_STRING("\\u0013"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1063:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1063:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x13': APPEND_STRING("\\u0013"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1064:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x14': APPEND_STRING("\\u0014"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1064:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1064:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x14': APPEND_STRING("\\u0014"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1065:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x15': APPEND_STRING("\\u0015"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1065:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1065:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x15': APPEND_STRING("\\u0015"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1066:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x16': APPEND_STRING("\\u0016"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1066:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1066:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x16': APPEND_STRING("\\u0016"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1067:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x17': APPEND_STRING("\\u0017"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1067:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1067:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x17': APPEND_STRING("\\u0017"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1068:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x18': APPEND_STRING("\\u0018"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1068:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1068:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x18': APPEND_STRING("\\u0018"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1069:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x19': APPEND_STRING("\\u0019"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1069:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1069:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x19': APPEND_STRING("\\u0019"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1070:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x1a': APPEND_STRING("\\u001a"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1070:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1070:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x1a': APPEND_STRING("\\u001a"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1071:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x1b': APPEND_STRING("\\u001b"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1071:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1071:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x1b': APPEND_STRING("\\u001b"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1072:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x1c': APPEND_STRING("\\u001c"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1072:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1072:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x1c': APPEND_STRING("\\u001c"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1073:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x1d': APPEND_STRING("\\u001d"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1073:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1073:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x1d': APPEND_STRING("\\u001d"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1074:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x1e': APPEND_STRING("\\u001e"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1074:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1074:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x1e': APPEND_STRING("\\u001e"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1075:26: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
case '\x1f': APPEND_STRING("\\u001f"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1075:26: note: (expanded) expected argument bounds are
'bounds(buf_start, buf_start + (size_t)buf_len)'
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^
parson.c:1075:26: note: (expanded) inferred bounds are 'bounds(buf_start,
buf_start + buf_len)'
case '\x1f': APPEND_STRING("\\u001f"); break;
^~~~~~~~~~~~~~~~~~~~~~~~
parson.c:870:29: note: expanded from macro 'APPEND_STRING'
written = append_string(buf, (str), buf_start, buf_len);\
^~~
parson.c:1099:52: error: function redeclaration has conflicting parameter bounds
static int append_string(_Nt_array_ptr<char> buf : bounds(buf_start, buf...
^
parson.c:159:55: note: previous bounds declaration is here
static int append_string(_Nt_array_ptr<char> buf : bounds(buf_start, ...
^
parson.c:1099:12: error: conflicting types for 'append_string'
static int append_string(_Nt_array_ptr<char> buf : bounds(buf_start, buf...
^
parson.c:159:15: note: previous declaration is here
static int append_string(_Nt_array_ptr<char> buf : bounds(buf_start, ...
^
parson.c:1109:5: error: return used in a checked scope must have a checked type
or a bounds-safe interface
memcpy<char>(buf, string, len);
^
/usr/include/string.h:72:1: note: return declared here
void *memcpy(void *__dst, const void *__src, size_t __n);
^
parson.c:1408:27: warning: cannot prove argument meets declared bounds for 1st
parameter [-Wcheck-bounds-decls-checked-scope]
copy = parson_strndup(tmp, string_len);
^~~
parson.c:1408:27: note: (expanded) expected argument bounds are
'bounds(tmp, tmp + 0)'
parson.c:1408:27: note: (expanded) inferred bounds are 'bounds(tmp, tmp +
string_len)'
copy = parson_strndup(tmp, string_len);
^~~
parson.c:1546:66: warning: cannot prove argument meets declared bounds for 6th
parameter [-Wcheck-bounds-decls-checked-scope]
written = json_serialize_to_buffer_r(value, buf, 0, 0, NULL, buf, buf_si...
^~~
parson.c:1546:66: note: (expanded) expected argument bounds are
'bounds(buf, buf + 0)'
parson.c:1546:66: note: (expanded) inferred bounds are
'bounds((_Array_ptr<char>)buf, (_Array_ptr<char>)buf + buf_size_in_bytes)'
written = json_serialize_to_buffer_r(value, buf, 0, 0, NULL, buf, buf_si...
^~~
parson.c:1607:66: warning: cannot prove argument meets declared bounds for 6th
parameter [-Wcheck-bounds-decls-checked-scope]
written = json_serialize_to_buffer_r(value, buf, 0, 1, NULL, buf, buf_si...
^~~
parson.c:1607:66: note: (expanded) expected argument bounds are
'bounds(buf, buf + 0)'
parson.c:1607:66: note: (expanded) inferred bounds are
'bounds((_Array_ptr<char>)buf, (_Array_ptr<char>)buf + buf_size_in_bytes)'
written = json_serialize_to_buffer_r(value, buf, 0, 1, NULL, buf, buf_si...
^~~
parson.c:1666:5: error: return used in a checked scope must have a checked type
or a bounds-safe interface
memmove<_Ptr<JSON_Value>>(_Dynamic_bounds_cast<_Array_ptr<_Ptr<JSON_...
^
/usr/include/string.h:73:1: note: return declared here
void *memmove(void *__dst, const void *__src, size_t __len);
^
44 warnings and 7 errors generated.
make: *** [compile] Error 1
[ checkedc-parson ]>