| Age | Commit message (Expand) | Author | Files | Lines |
| 2020-10-09 | flex-array: fix location for nesting of flexible members | Luc Van Oostenryck | 1 | -2/+2 |
| 2020-10-09 | Merge branch 'misc' | Luc Van Oostenryck | 1 | -1/+1 |
| 2020-10-09 | Merge branch 'usual-conv' | Luc Van Oostenryck | 2 | -1/+11 |
| 2020-10-09 | flex-array: allow arrays of unions with flexible members. | Ilya Maximets | 3 | -0/+31 |
| 2020-10-08 | fix usual conversion of integers | Luc Van Oostenryck | 1 | -0/+11 |
| 2020-10-08 | fix evaluation of pointer to bool conversions | Luc Van Oostenryck | 1 | -1/+0 |
| 2020-10-06 | flex-array: remove unneeded test | Luc Van Oostenryck | 1 | -22/+0 |
| 2020-10-01 | testsuite: fix erroneous comment | Luc Van Oostenryck | 1 | -1/+1 |
| 2020-10-01 | flex-array: warn on flexible array in nested aggregate types | Luc Van Oostenryck | 1 | -1/+0 |
| 2020-10-01 | flex-array: warn an arrays containing a flexible array | Luc Van Oostenryck | 1 | -1/+0 |
| 2020-10-01 | flex-array: warn when using sizeof() on a flexible array | Luc Van Oostenryck | 1 | -1/+0 |
| 2020-10-01 | flex-array: warn if flexible array is not last | Luc Van Oostenryck | 1 | -1/+0 |
| 2020-10-01 | flex-array: flexible array members have zero size and alignment is OK | Luc Van Oostenryck | 1 | -1/+0 |
| 2020-10-01 | flex-array: add testcases | Luc Van Oostenryck | 6 | -0/+133 |
| 2020-09-07 | builtin: teach sparse to linearize __builtin_fma() | Luc Van Oostenryck | 1 | -0/+19 |
| 2020-08-18 | Merge branch 'union-cast' into master | Luc Van Oostenryck | 2 | -0/+47 |
| 2020-08-17 | fix evaluate_ptr_add() when sizeof(offset) != sizeof(pointer) | Luc Van Oostenryck | 2 | -0/+173 |
| 2020-08-17 | union-cast: teach sparse about union casts | Luc Van Oostenryck | 2 | -2/+0 |
| 2020-08-15 | union-cast: add some testcases | Luc Van Oostenryck | 2 | -0/+49 |
| 2020-08-12 | Merge branch 'fix-scalar' | Luc Van Oostenryck | 1 | -0/+13 |
| 2020-08-11 | fix is_scalar_type(): fouled types are scalars too | Luc Van Oostenryck | 1 | -0/+13 |
| 2020-08-11 | bug-assign-op0.c: fix test on 32-bit builds | Ramsay Jones | 1 | -5/+5 |
| 2020-08-09 | Merge branch 'empty-char' into next | Luc Van Oostenryck | 2 | -0/+22 |
| 2020-08-08 | Merge branch 'wstring-init' into next | Luc Van Oostenryck | 2 | -0/+42 |
| 2020-08-08 | Merge branch 'sync-cas' into next | Luc Van Oostenryck | 1 | -0/+25 |
| 2020-08-08 | Merge branch 'bad-shift-equal' into next | Luc Van Oostenryck | 8 | -53/+403 |
| 2020-08-08 | Merge branch 'prev-stream' into next | Luc Van Oostenryck | 1 | -0/+11 |
| 2020-08-08 | wstring: extend is_string_type() to also detect wide strings | Luc Van Oostenryck | 1 | -1/+0 |
| 2020-08-08 | wstring: add support for checking size in string initializer | Luc Van Oostenryck | 2 | -0/+43 |
| 2020-08-07 | add builtin support for __sync_{bool,val}_compare_and_swap() | Luc Van Oostenryck | 1 | -1/+0 |
| 2020-08-07 | add testcases for __sync_{bool,val}_compare_and_swap() | Luc Van Oostenryck | 1 | -0/+26 |
| 2020-08-06 | bad-shift: wait dead code elimination to warn about bad shifts | Luc Van Oostenryck | 5 | -50/+29 |
| 2020-08-06 | shift-assign: restrict shift count to unsigned int | Luc Van Oostenryck | 1 | -1/+0 |
| 2020-08-06 | shift-assign: fix linearization of shift-assign | Luc Van Oostenryck | 3 | -10/+8 |
| 2020-08-06 | shift-assign: add more testcases for bogus linearization | Luc Van Oostenryck | 2 | -0/+374 |
| 2020-07-31 | Merge branch 'array-decl' | Luc Van Oostenryck | 3 | -0/+40 |
| 2020-07-30 | fix diagnostic source path from command line | Luc Van Oostenryck | 1 | -0/+11 |
| 2020-07-25 | generic: fix missing inlining of generic expression | Luc Van Oostenryck | 1 | -0/+10 |
| 2020-07-23 | allow [*] in array declarators | Luc Van Oostenryck | 1 | -1/+0 |
| 2020-07-23 | simplify & fix parsing of array declarators | Luc Van Oostenryck | 1 | -1/+0 |
| 2020-07-23 | add testcases for C99 array declarators | Luc Van Oostenryck | 2 | -0/+31 |
| 2020-07-23 | do not accept comma expressions in array declarator | Luc Van Oostenryck | 1 | -1/+0 |
| 2020-07-23 | add testcase for comma in array declarator | Luc Van Oostenryck | 1 | -0/+12 |
| 2020-07-22 | delay 'empty character constant' warning to phase 5 | Luc Van Oostenryck | 2 | -0/+22 |
| 2020-07-19 | prepend diagnostics with source's path and include chain | Luc Van Oostenryck | 1 | -0/+1 |
| 2020-07-18 | Merge branch 'empty-expr' | Luc Van Oostenryck | 3 | -0/+23 |
| 2020-07-14 | Merge branch 'assert-opt-msg' | Luc Van Oostenryck | 1 | -0/+5 |
| 2020-07-14 | Merge branch 'bad-shift-assign' | Luc Van Oostenryck | 1 | -0/+115 |
| 2020-07-14 | warn on empty initializations | Luc Van Oostenryck | 1 | -1/+0 |
| 2020-07-14 | warn on empty assignments | Luc Van Oostenryck | 2 | -1/+1 |
| 2020-07-14 | add testcase for incorrect empty expressions | Luc Van Oostenryck | 2 | -0/+24 |
| 2020-07-13 | fix evaluation error with assignment of qualified arrays | Luc Van Oostenryck | 2 | -2/+0 |
| 2020-07-10 | add testcase for missing warning for assignment to const | Luc Van Oostenryck | 1 | -0/+29 |
| 2020-07-10 | add another testcase with const array/pointer | Luc Van Oostenryck | 1 | -0/+50 |
| 2020-07-09 | add a testcase for assignment to const <type> (*)[] | Luc Van Oostenryck | 1 | -0/+7 |
| 2020-07-08 | c2x: message in _Static_assert() is now optional | Luc Van Oostenryck | 1 | -0/+5 |
| 2020-07-08 | Merge branches 'predef-fix', 'predef-helper' and 'simplify-add-pre-buffer' | Luc Van Oostenryck | 1 | -0/+5 |
| 2020-07-06 | predefine: add testcase for multi-token predefines | Luc Van Oostenryck | 1 | -0/+5 |
| 2020-07-06 | testsuite: add testcase for bogus linearization of >>= & /= | Luc Van Oostenryck | 1 | -0/+115 |
| 2020-07-04 | testsuite: add new flag '-p' to subcommand 'format' | Luc Van Oostenryck | 1 | -0/+4 |
| 2020-07-04 | avoid multiple warnings when inlining undeclared calls | Luc Van Oostenryck | 1 | -0/+19 |
| 2020-06-23 | testsuite: fix 'format help' / validate number of arguments | Luc Van Oostenryck | 1 | -1/+6 |
| 2020-06-23 | teach sparse about __STDC_HOSTED__ | Luc Van Oostenryck | 2 | -0/+22 |
| 2020-06-20 | Merge branch 'fix-gensel' | Luc Van Oostenryck | 2 | -0/+20 |
| 2020-06-20 | gensel: validate the type of the associations | Luc Van Oostenryck | 1 | -0/+4 |
| 2020-06-20 | gensel: controlling expression must be pointer-converted | Luc Van Oostenryck | 1 | -1/+0 |
| 2020-06-19 | gensel: add testcases from DR481 | Luc Van Oostenryck | 1 | -0/+17 |
| 2020-06-18 | Merge branch 'genmacro' | Luc Van Oostenryck | 1 | -0/+20 |
| 2020-06-18 | pre-process: add support for __has_feature() & __has_extension() | Luc Van Oostenryck | 1 | -1/+0 |
| 2020-06-18 | pre-process: add testcases for __has_feature() & __has_extension() | Luc Van Oostenryck | 1 | -0/+21 |
| 2020-06-16 | testsuite: be less paranoid with timeout | Luc Van Oostenryck | 1 | -1/+1 |
| 2020-06-12 | testsuite: plain chars are never compatible with [un]signed chars | Luc Van Oostenryck | 1 | -0/+19 |
| 2020-06-09 | generic: fix crash when nothing match | Luc Van Oostenryck | 1 | -0/+23 |
| 2020-06-03 | univ-init: scalar initializer needs some additional checks | Luc Van Oostenryck | 2 | -0/+35 |
| 2020-05-28 | add support for _Generic | Luc Van Oostenryck | 3 | -0/+240 |
| 2020-05-27 | testsuite: add testcase for duplicated local definitions | Luc Van Oostenryck | 1 | -0/+28 |
| 2020-05-21 | Merge branch 'univ' | Luc Van Oostenryck | 2 | -0/+25 |
| 2020-05-21 | Merge branch 'bad-goto' | Luc Van Oostenryck | 21 | -16/+463 |
| 2020-05-21 | univ-init: conditionally accept { 0 } without warnings | Luc Van Oostenryck | 2 | -0/+25 |
| 2020-05-21 | bad-label: respect attribute((unused)) | Luc Van Oostenryck | 1 | -0/+6 |
| 2020-05-21 | bad-label: check for unused labels | Luc Van Oostenryck | 1 | -1/+0 |
| 2020-05-21 | bad-goto: check declaration of label expressions | Luc Van Oostenryck | 2 | -2/+0 |
| 2020-05-21 | bad-goto: jumping inside a statement expression is an error | Luc Van Oostenryck | 6 | -6/+0 |
| 2020-05-21 | bad-goto: catch labels with reserved names | Luc Van Oostenryck | 1 | -1/+0 |
| 2020-05-21 | bad-goto: reorganize testcases and add some more | Luc Van Oostenryck | 18 | -13/+332 |
| 2020-05-21 | bad-goto: add testcases for linearization of invalid labels | Luc Van Oostenryck | 1 | -0/+19 |
| 2020-05-21 | bad-goto: add testcase for 'jump inside discarded expression statement' | Luc Van Oostenryck | 2 | -0/+57 |
| 2020-05-21 | misc: fix testcase typeof-safe | Luc Van Oostenryck | 1 | -7/+20 |
| 2020-05-19 | testsuite: add a few testcases for nested functions | Luc Van Oostenryck | 1 | -0/+43 |
| 2020-05-19 | attribute: 'externally_visible' is just another 'declaration' modifier | Luc Van Oostenryck | 2 | -2/+0 |
| 2020-05-17 | attribute: sort the table of modifier names | Luc Van Oostenryck | 2 | -4/+4 |
| 2020-04-13 | Merge branch 'fix-atomic-type' | Luc Van Oostenryck | 2 | -22/+38 |
| 2020-03-24 | add support for GCC's __auto_type | Luc Van Oostenryck | 2 | -0/+100 |
| 2020-03-20 | teach sparse to linearize __builtin_unreachable() | Luc Van Oostenryck | 3 | -3/+0 |
| 2020-03-20 | add an implicit __builtin_unreachable() for __noreturn | Luc Van Oostenryck | 1 | -1/+0 |
| 2020-03-20 | add testcases for OP_UNREACH | Luc Van Oostenryck | 4 | -7/+74 |
| 2020-03-16 | cpp: fix redefinition of a macro during its own expansion | Luc Van Oostenryck | 1 | -0/+20 |
| 2020-03-15 | cpp: remove extra newlines during macro expansion | Luc Van Oostenryck | 3 | -9/+16 |
| 2020-03-15 | cpp: silently allow conditional directives within a macro | Luc Van Oostenryck | 2 | -1/+41 |
| 2020-03-15 | make "directive in macro's argument list" a warning | Oleg Nesterov | 1 | -4/+4 |
| 2020-02-09 | do the tree inlining during expansion phase | Luc Van Oostenryck | 1 | -1/+0 |
| 2020-02-09 | inline: add some tests | Luc Van Oostenryck | 4 | -0/+108 |
| 2020-02-06 | fix type compatibility of _Atomic | Luc Van Oostenryck | 2 | -22/+38 |
| 2019-12-17 | Merge branch 'msg-wrong-redecl' into next | Luc Van Oostenryck | 4 | -15/+60 |
| 2019-12-17 | Merge branch 'expand-init' (early part) into next | Luc Van Oostenryck | 15 | -7/+256 |
| 2019-12-17 | Merge branch 'top-level-init' into next | Luc Van Oostenryck | 1 | -2/+8 |
| 2019-12-17 | fix testcase with non-constant initializer | Luc Van Oostenryck | 1 | -2/+8 |
| 2019-12-15 | improve diagnostic message about wrong redeclaration | Luc Van Oostenryck | 4 | -15/+60 |
| 2019-12-15 | testcase: remove trailing ';' in commands | Luc Van Oostenryck | 2 | -2/+2 |
| 2019-12-10 | fix cost of dereference of symbols with complex type | Luc Van Oostenryck | 1 | -1/+0 |
| 2019-12-10 | fix simplify_loads() when doing type punning | Luc Van Oostenryck | 2 | -2/+0 |
| 2019-12-10 | fix expansion of initializer (default) | Luc Van Oostenryck | 1 | -1/+0 |
| 2019-12-10 | fix expansion of initializer (mismatching type) | Luc Van Oostenryck | 2 | -2/+0 |
| 2019-12-10 | fix expansion of initializer (mismatching size) | Luc Van Oostenryck | 1 | -1/+0 |
| 2019-12-10 | degenerated arrays & functions are addressable too | Luc Van Oostenryck | 2 | -1/+15 |
| 2019-12-10 | fix addressability marking in evaluate_addressof() | Luc Van Oostenryck | 1 | -1/+0 |
| 2019-12-10 | add test for constant expansion of complex initializer | Luc Van Oostenryck | 3 | -0/+53 |
| 2019-12-10 | add test for dereference cost of symbol with complex type | Luc Van Oostenryck | 1 | -0/+21 |
| 2019-12-10 | add test for union cast | Luc Van Oostenryck | 1 | -0/+27 |
| 2019-12-10 | add testcase for addressability of 'complex' symbols | Luc Van Oostenryck | 1 | -0/+24 |
| 2019-12-10 | add testcase for addressability of degenerated symbol | Luc Van Oostenryck | 1 | -0/+18 |
| 2019-12-10 | add testcase for expansion of default initializers | Luc Van Oostenryck | 2 | -0/+39 |
| 2019-12-10 | split testcases for type punning & constant initializer expansion | Luc Van Oostenryck | 5 | -5/+66 |
| 2019-12-09 | Merge branch 'premature-examine' into next | Luc Van Oostenryck | 1 | -0/+27 |
| 2019-12-09 | fix premature examination of dereferenced object | Luc Van Oostenryck | 1 | -0/+27 |
| 2019-12-09 | Merge branch 'bitfield-size' | Luc Van Oostenryck | 1 | -0/+30 |
| 2019-11-30 | bitfield: display the bitfield name in error messages | Luc Van Oostenryck | 1 | -5/+5 |
| 2019-11-30 | bitfield: oversized bitfields are errors | Luc Van Oostenryck | 1 | -1/+0 |
| 2019-11-30 | bitfield: add testcases for invalid bitfield width | Luc Van Oostenryck | 1 | -0/+31 |
| 2019-11-28 | testsuite: avoid standard includes in the tests | Luc Van Oostenryck | 2 | -3/+2 |
| 2019-11-28 | Merge branch 'arch-cleanup' into master | Luc Van Oostenryck | 1 | -0/+2 |
| 2019-11-28 | arch: add predefines for INT128 only on supported archs | Luc Van Oostenryck | 1 | -0/+2 |
| 2019-11-27 | Merge branch 'arm-hf' into master | Luc Van Oostenryck | 5 | -0/+40 |
| 2019-11-27 | fp-abi: teach sparse about -m{hard,soft}-float | Luc Van Oostenryck | 1 | -1/+0 |
| 2019-11-27 | fp-abi: teach sparse about -mfloat-abi on ARM | Luc Van Oostenryck | 4 | -4/+0 |
| 2019-11-27 | fp-abi: add tests for ARM's -mfloat-abi=... & -msoft-float | Luc Van Oostenryck | 5 | -0/+45 |
| 2019-11-26 | Merge branch 'arch-cygwin' into master | Luc Van Oostenryck | 4 | -1/+27 |
| 2019-11-26 | Merge branch 'static-forward' into master | Luc Van Oostenryck | 1 | -9/+10 |
| 2019-11-21 | allow 'static' forward declaration | Luc Van Oostenryck | 1 | -9/+10 |
| 2019-11-21 | let function definition inherit prototype attributes | Luc Van Oostenryck | 2 | -5/+1 |
| 2019-11-20 | propagate function modifiers only to functions | Luc Van Oostenryck | 2 | -2/+0 |
| 2019-11-19 | add tests for function attributes | Luc Van Oostenryck | 9 | -10/+134 |
| 2019-11-15 | arch: teach sparse about -fshort-wchar | Luc Van Oostenryck | 1 | -0/+6 |
| 2019-11-15 | function attributes apply to the function declaration | Luc Van Oostenryck | 1 | -0/+19 |
| 2019-11-14 | arch: fix the signedness of plain chars | Luc Van Oostenryck | 3 | -1/+21 |
| 2019-11-10 | Merge branch 'eval-typeof' into next | Luc Van Oostenryck | 1 | -0/+10 |
| 2019-11-10 | typeof: examine it at show-time | Luc Van Oostenryck | 1 | -1/+0 |
| 2019-11-10 | typeof: add a test for unexamined typeof | Luc Van Oostenryck | 1 | -0/+11 |
| 2019-10-30 | arch: add an option to specify the desired arch: --arch=<arch> | Luc Van Oostenryck | 4 | -0/+106 |
| 2019-10-09 | "graph" segfaults on top-level asm | Luc Van Oostenryck | 1 | -0/+1 |
| 2019-10-01 | make 'directive in argument list' clearer | Luc Van Oostenryck | 1 | -4/+4 |
| 2019-09-30 | Merge branch 'fix-expand-asm' into tip | Luc Van Oostenryck | 14 | -33/+228 |
| 2019-09-30 | Merge branch 'relax-constexpr' into tip | Luc Van Oostenryck | 2 | -4/+10 |
| 2019-09-30 | Merge branch 'fix-bad-linear' into tip | Luc Van Oostenryck | 2 | -0/+36 |
| 2019-09-30 | fix sign extension in casting enums | Dan Carpenter | 1 | -1/+0 |
| 2019-09-30 | add test for enum sign extension | Luc Van Oostenryck | 1 | -0/+13 |
| 2019-09-30 | do not linearize invalid expression | Luc Van Oostenryck | 1 | -1/+0 |
| 2019-09-28 | asm: arrays & functions in non-memory operand degenerate into pointers | Luc Van Oostenryck | 1 | -1/+0 |
| 2019-09-27 | asm: fix missing expansion of asm statements | Luc Van Oostenryck | 1 | -1/+0 |
| 2019-09-27 | asm: linearization of output memory operands is different | Luc Van Oostenryck | 1 | -1/+0 |
| 2019-09-27 | asm: missing evaluation of asm statements | Luc Van Oostenryck | 1 | -1/+0 |
| 2019-09-27 | asm: check earlier that body & constraints are strings | Luc Van Oostenryck | 1 | -3/+3 |
| 2019-09-27 | asm: add test evaluation, expansion & linearization of ASM operands | Luc Van Oostenryck | 5 | -0/+174 |
| 2019-09-26 | string: use string_expression() in parse_static_assert() | Luc Van Oostenryck | 1 | -3/+3 |
| 2019-09-26 | expand: add missing expansion of compound literals | Luc Van Oostenryck | 2 | -2/+0 |
| 2019-09-26 | expand: add test for expansion of compound literals | Luc Van Oostenryck | 1 | -0/+27 |
| 2019-09-26 | shorter message for non-scalar in conditionals | Luc Van Oostenryck | 2 | -9/+9 |
| 2019-09-26 | more consistent type info in error messages | Luc Van Oostenryck | 6 | -29/+29 |
| 2019-09-02 | constexpr: relax constexprness of constant conditionals | Luc Van Oostenryck | 2 | -4/+10 |
| 2019-04-01 | fix allowing casts of AS pointers to uintptr_t | Luc Van Oostenryck | 4 | -15/+57 |
| 2019-03-30 | also accept casts of AS pointers to uintptr_t | Luc Van Oostenryck | 1 | -0/+60 |
| 2019-03-05 | add test for evaluation of invalid assignments | Luc Van Oostenryck | 2 | -0/+37 |
| 2019-03-03 | expand: 'conservative' must not bypass valid simplifications | Thomas Weißschuh | 2 | -0/+76 |
| 2019-02-28 | display extra info for type errors in compare & conditional | Luc Van Oostenryck | 1 | -2/+6 |
| 2019-02-18 | testsuite: fix bad escaping of '[' & ']' | Luc Van Oostenryck | 2 | -2/+2 |
| 2019-02-17 | Merge branch 'branch-v0.6' | Luc Van Oostenryck | 2 | -9/+9 |
| 2019-02-07 | redecl: add test for attribute placement in function declarators | Ramsay Jones | 1 | -0/+31 |
| 2019-02-07 | validation: Add patterns FAIL, PASS, XPASS and XFAIL to test | Uwe Kleine-König | 1 | -6/+9 |
| 2019-02-04 | target.c: ignore -m64 on archs where int32_t is a long | Luc Van Oostenryck | 18 | -0/+19 |
| 2019-02-04 | testsuite: remove unneeded -m64 from command-line | Luc Van Oostenryck | 1 | -1/+1 |
| 2018-12-29 | explain cause of 'incorrect type in conditional' | Luc Van Oostenryck | 2 | -9/+9 |
| 2018-12-20 | Merge branch 'show-type' | Luc Van Oostenryck | 12 | -61/+61 |
| 2018-12-19 | Merge branch 'bitwise-ptr' | Luc Van Oostenryck | 2 | -0/+39 |
| 2018-12-17 | show-parse: do not display base type's redundant specifiers | Luc Van Oostenryck | 5 | -37/+37 |
| 2018-12-17 | show-parse: don't display null ident in show_typename() | Luc Van Oostenryck | 9 | -25/+25 |
| 2018-12-17 | add a flag to warn on casts to/from bitwise pointers | Luc Van Oostenryck | 1 | -2/+1 |
| 2018-12-17 | Add testcases for bitwise cast on pointer | Thiebaud Weksteen | 2 | -0/+40 |
| 2018-12-17 | Merge branch 'predefs' into tipv0.6.0-rc1 | Luc Van Oostenryck | 8 | -59/+93 |
| 2018-12-17 | add predefined macros for [u]int32_t | Luc Van Oostenryck | 1 | -0/+2 |
| 2018-12-17 | add predefined macros for [u]int64_t | Luc Van Oostenryck | 1 | -0/+2 |
| 2018-12-17 | add predefined macros for [u]int{8,16}_t | Luc Van Oostenryck | 1 | -0/+4 |
| 2018-12-17 | add predefined macros for [u]intmax | Luc Van Oostenryck | 1 | -0/+2 |
| 2018-12-17 | add predefined macros for [u]intptr | Luc Van Oostenryck | 1 | -0/+2 |
| 2018-12-17 | make predefined_type_size() more generic | Luc Van Oostenryck | 2 | -0/+12 |
| 2018-12-16 | show-parse: strip do_show_type()'s trailing space | Luc Van Oostenryck | 1 | -2/+2 |
| 2018-12-14 | teach sparse about asm inline | Luc Van Oostenryck | 1 | -0/+52 |
| 2018-12-14 | fix '__SIZE_TYPE__' for LLP64 | Luc Van Oostenryck | 1 | -1/+0 |
| 2018-12-14 | testsuite: test predef macros on LP32/LP64/LLP64 | Luc Van Oostenryck | 7 | -59/+70 |
| 2018-12-12 | Merge branch 'as-named' into tip | Luc Van Oostenryck | 5 | -20/+37 |
| 2018-12-12 | as-name: allow ident as address_space | Luc Van Oostenryck | 1 | -0/+17 |