aboutsummaryrefslogtreecommitdiffstatshomepage
AgeCommit message (Expand)AuthorFilesLines
2018-07-23big-shift: fix evaluation of shift-assignLuc Van Oostenryck1-0/+5
2018-07-23big-shift: fix warning message for negative shift countLuc Van Oostenryck2-19/+23
2018-07-23big-shift: use the type width for too big shiftLuc Van Oostenryck2-14/+47
2018-07-23big-shift: simplify over-sized OP_SHLsLuc Van Oostenryck2-0/+9
2018-07-23big-shift: simplify over-sized OP_LSRsLuc Van Oostenryck3-10/+45
2018-07-23big-shift: reuse simplify_asr() for LSR & SHLLuc Van Oostenryck2-4/+12
2018-07-23big-shift: reorder the tests in simplify_asr()Luc Van Oostenryck1-3/+5
2018-07-23big-shift: do not simplify over-sized OP_ASR to zeroLuc Van Oostenryck2-1/+2
2018-07-22big-shift: also check shift count of shift-assignmentLuc Van Oostenryck2-1/+68
2018-07-22big-shift: use the base type for shift-too-big warningLuc Van Oostenryck1-0/+2
2018-07-22big-shift: move the check into check_shift_count()Luc Van Oostenryck1-5/+5
2018-07-21big-shift: don't take the modulo at expand timeLuc Van Oostenryck1-5/+2
2018-07-21big-shift: do not evaluate negative or over-sized shiftsLuc Van Oostenryck1-0/+6
2018-07-21big-shift: mark out-of-range OP_{ASR,LSR,SHL} as taintedLuc Van Oostenryck2-1/+21
2018-07-21big-shift: add test for shifts with bad countLuc Van Oostenryck2-0/+95
2018-06-30Merge branch 'cse-cast' into tipLuc Van Oostenryck2-12/+33
2018-06-30fix: remove dead OP_{SETVAL,SETFVAL,SLICE}Luc Van Oostenryck1-0/+9
2018-06-30fix killing OP_SWITCHLuc Van Oostenryck2-0/+18
2018-06-30Merge branch 'cast-optim' into tipLuc Van Oostenryck6-63/+45
2018-06-30cse: let equivalent casts hash & compare identicallyLuc Van Oostenryck1-12/+16
2018-06-29cast: optimize away casts to/from pointersLuc Van Oostenryck4-18/+33
2018-06-29cast: reorganize testcases for cast optimizationLuc Van Oostenryck3-45/+12
2018-06-28bool: remove OP_{AND,OR}_BOOL instructionsLuc Van Oostenryck7-66/+2
2018-06-28bool: generate plain OP_{AND,OR} instead of OP_{AND,OR}_BOOLLuc Van Oostenryck4-29/+54
2018-06-28bool: fix missing boolean context for floatsLuc Van Oostenryck2-2/+55
2018-06-28bool: simplify ZEXT in bool -> int -> boolLuc Van Oostenryck3-35/+41
2018-06-28bool: fix add missing check in simplify_seteq_setne()Luc Van Oostenryck1-1/+4
2018-06-28bool: add testcase for bool simplificationLuc Van Oostenryck1-0/+247
2018-06-28simplify 'x ^ ~0' to '~x'Luc Van Oostenryck2-1/+15
2018-06-28simplify 'x & ~0' to 'x'Luc Van Oostenryck2-0/+9
2018-06-28simplify 'x | ~0' to '~0'Luc Van Oostenryck2-1/+23
2018-06-26add simple testcases for internal infinite loopsLuc Van Oostenryck1-0/+54
2018-06-26cast: simplify TRUNC + ZEXT to ANDLuc Van Oostenryck3-10/+17
2018-06-26cse: move to next comparable instructionLuc Van Oostenryck2-1/+2
2018-06-23cast: keep instruction sizes consistentLuc Van Oostenryck3-12/+200
2018-06-23cast: prepare for more cast simplificationsLuc Van Oostenryck1-7/+10
2018-06-23cast: merge simplification of constant casts with constant unopsLuc Van Oostenryck1-23/+12
2018-06-23cast: simplify simplify_cast()Luc Van Oostenryck1-23/+4
2018-06-23new helper: def_opcode()Luc Van Oostenryck1-0/+7
2018-06-23cse: add testcase for missed opportunityLuc Van Oostenryck1-0/+16
2018-06-23cast: do not try to linearize illegal castsLuc Van Oostenryck1-0/+2
2018-06-23cast: accept null castsLuc Van Oostenryck1-0/+6
2018-06-23cast: specialize integer castsLuc Van Oostenryck22-198/+208
2018-06-23cast: make casts from pointer always size preservingLuc Van Oostenryck5-88/+89
2018-06-23cast: add support for -Wpointer-to-int-castLuc Van Oostenryck5-2/+10
2018-06-23cast: specialize cast from pointersLuc Van Oostenryck13-14/+84
2018-06-23cast: temporary simplify handling cast to/from void*Luc Van Oostenryck1-4/+15
2018-06-23cast: make pointer casts always size preservingLuc Van Oostenryck4-39/+45
2018-06-23cast: make [u]intptr_ctype alias of [s]size_t_ctypeLuc Van Oostenryck1-0/+3
2018-06-23cast: specialize casts from unsigned to pointersLuc Van Oostenryck14-7/+92
2018-06-23cast: specialize floats to integer conversionLuc Van Oostenryck11-13/+35
2018-06-23cast: handle NO-OP castsLuc Van Oostenryck2-0/+23
2018-06-23cast: specialize FPCAST into [USF]CVTFLuc Van Oostenryck8-26/+58
2018-06-23cast: prepare finer grained cast instructionsLuc Van Oostenryck1-15/+63
2018-06-23cast: force_cast are OK on non-scalar valuesLuc Van Oostenryck1-6/+6
2018-06-23cast: rename evaluate_cast()'s vars with slightly more meaningful namesLuc Van Oostenryck1-48/+48
2018-06-23cast: add tests for warnings issued by sparse -vLuc Van Oostenryck1-0/+27
2018-06-23cast: add testcase for cast to bad typeofLuc Van Oostenryck1-0/+13
2018-06-23cast: add testcase for bad implicit casts to struct/unionLuc Van Oostenryck1-0/+47
2018-06-23cast: reorg testcases related to castsLuc Van Oostenryck9-47/+32
2018-06-23Merge branches 'bug-fpcast-constant', 'case-unop', 'replace-pseudo' and 'add-...Luc Van Oostenryck5-50/+41
2018-06-23ir: case OP_UNOP ... OP_UNOP_ENDLuc Van Oostenryck3-25/+4
2018-06-23ir: define an OP_... range for unopsLuc Van Oostenryck1-5/+9
2018-06-23add missing entry for OP_FNEG in kill_insn() & validate_insn()Luc Van Oostenryck2-2/+2
2018-06-22rename add_uniop() to add_unop()Luc Van Oostenryck1-3/+3
2018-06-22add_uniop() should take a type, not an expressionLuc Van Oostenryck1-5/+6
2018-06-22remove unused arg in simplify_cond_branch()Luc Van Oostenryck1-3/+3
2018-06-22new helper: replace_pseudo()Luc Van Oostenryck1-12/+19
2018-06-22avoid useless deref in simplify_cond_branch()Luc Van Oostenryck1-4/+4
2018-06-21fix bad fpcast simplificationLuc Van Oostenryck2-3/+2
2018-06-21add testcase for bad fpcast simplificationLuc Van Oostenryck1-0/+14
2018-06-21Merge branch 'ptrlist-cleanup' into tipLuc Van Oostenryck19-288/+311
2018-06-21ptrlist: add missing doc for some functionsLuc Van Oostenryck1-1/+7
2018-06-21ptrlist: move DO_SPLIT() into DO_INSERT_CURRENT()Luc Van Oostenryck1-10/+7
2018-06-21ptrlist: make clear what is API and what is implementation.Luc Van Oostenryck1-57/+69
2018-06-21ptrlist: keep declaration of head-list-nr togetherLuc Van Oostenryck1-2/+4
2018-06-21ptrlist: use VRFY_PTR_LIST() for sanity checkLuc Van Oostenryck1-1/+1
2018-06-21ptrlist: move semi-private prototypes close to their userLuc Van Oostenryck1-3/+4
2018-06-21ptrlist: make {first,last}_ptr_list() out-of-line functionsLuc Van Oostenryck2-29/+40
2018-06-21ptrlist: remove ptr_list_empty()Luc Van Oostenryck2-2/+1
2018-06-21ptrlist: shorter continuated linesLuc Van Oostenryck1-113/+115
2018-06-21ptrlist: simplify PREPARE/NEXTLuc Van Oostenryck1-19/+17
2018-06-21ptrlist: simplify DO_NEXTLuc Van Oostenryck1-11/+7
2018-06-21ptrlist: simplify loop nestingLuc Van Oostenryck1-17/+7
2018-06-21ptrlist: remove extra ident levelLuc Van Oostenryck1-34/+31
2018-06-21ptrlist: remove some unneeded arg from internal macros.Luc Van Oostenryck1-6/+6
2018-06-21ptrlist: make free_ptr_list() more readableLuc Van Oostenryck1-2/+4
2018-06-21ptrlist: make add_ptr_list() more readableLuc Van Oostenryck1-11/+10
2018-06-21ptrlist: remove now unneeded CHECK_TYPE()Luc Van Oostenryck1-3/+0
2018-06-21ptrlist: when possible use the real type of the listLuc Van Oostenryck1-14/+14
2018-06-21ptrlist: let all pointer lists have the same parametrized structureLuc Van Oostenryck1-8/+10
2018-06-21ptrlist: let sort_list() use the raw pointerLuc Van Oostenryck1-3/+3
2018-06-21ptrlist: let {first,last}_ptr_list() return the raw pointerLuc Van Oostenryck1-2/+2
2018-06-21ptrlist: remove the now unneeded FOR_EACH_PTR_NOTAG()Luc Van Oostenryck16-41/+35
2018-06-21Merge branch 'ir-validate' into tipLuc Van Oostenryck6-6/+189
2018-06-21add predefines for __INT_WIDTH__ & friendsLuc Van Oostenryck1-0/+15
2018-06-21sparsec: simplify & portable use of mktempLuc Van Oostenryck1-6/+3
2018-06-16ir-validate: add more validation pointsLuc Van Oostenryck1-0/+7
2018-06-16ir-validate: add validation of (nbr of) phi operandsLuc Van Oostenryck1-0/+52
2018-06-16ir-validate: validate pseudo's defining instructionLuc Van Oostenryck1-0/+69
2018-06-16ir-validate: add framework for IR validationLuc Van Oostenryck6-0/+55
2018-06-16testsuite: allow extra/default options to test commandsLuc Van Oostenryck1-0/+4
2018-06-16keep the debug flags alphabetically sortedLuc Van Oostenryck2-6/+6
2018-06-16testsuite: fix missing returnLuc Van Oostenryck2-8/+9
2018-06-16doc: add doc for the -vcompound flagLuc Van Oostenryck1-0/+4
2018-06-16add support for -fdiagnostic-prefix[=prefix]Luc Van Oostenryck4-4/+37
2018-06-15utils: add xasprintf() & xvasprintf()Luc Van Oostenryck2-0/+48
2018-06-13ptrlist: let FOR_EACH_PTR() ignore tagsLuc Van Oostenryck1-2/+2
2018-06-13ptrlist: make explicit when tagged pointers are used.Luc Van Oostenryck2-8/+14
2018-06-13ptrlist: rename PTR_ENTRY() to PTR_ENTRY_UNTAG()Luc Van Oostenryck2-12/+12
2018-06-13ptrlist: add helper PTR_UNTAG()Luc Van Oostenryck1-1/+2
2018-06-13ptrlist: remove now unneeded add_ptr_list_notag()Luc Van Oostenryck2-3/+1
2018-06-13ptrlist: specialize __add_ptr_list() for tag/notagLuc Van Oostenryck2-18/+31
2018-06-13teach sparse about -m16Luc Van Oostenryck1-1/+1
2018-06-12Merge branches 'has-builtin' and 'builtin-predef' into tipLuc Van Oostenryck20-172/+820
2018-06-12builtin: merge declare_builtin_function() with declare_builtins()Luc Van Oostenryck2-19/+5
2018-06-12builtin: switch calling order of predefined_macros() & friendsLuc Van Oostenryck1-2/+2
2018-06-11Merge branch 'doc-sphinx-ir'Luc Van Oostenryck6-357/+492
2018-06-11doc: API before IRLuc Van Oostenryck1-1/+1
2018-06-08builtin: consolidate predefined_macros()Luc Van Oostenryck1-56/+56
2018-06-08builtin: directly predefine builtin macrosLuc Van Oostenryck1-38/+45
2018-06-08builtin: add predefine()Luc Van Oostenryck2-0/+39
2018-06-08builtin: add support for __has_builtin()Luc Van Oostenryck6-0/+85
2018-06-08extract replace_with_bool() from replace_with_defined()Luc Van Oostenryck1-3/+7
2018-06-08builtin: add support for __builtin_{add,sub,mul}_overflow(), ...Luc Van Oostenryck2-0/+317
2018-06-08builtin: rename arguments_choose() to args_triadic()Luc Van Oostenryck1-2/+2
2018-06-08builtin: declare __builtin_[us]{add,sub,mul}{,l,ll}_overflow()Luc Van Oostenryck1-0/+18
2018-06-08builtin: add builtin types {u,}{int,long,long}_ptr_ctypeLuc Van Oostenryck2-0/+12
2018-06-08builtin: extract do_define() from do_handle_define()Luc Van Oostenryck1-30/+37
2018-06-08builtin: add testcase for builtin macro expansionLuc Van Oostenryck1-0/+17
2018-06-08utils: convert alloc + copy to {mem,str}dup_alloc()Luc Van Oostenryck2-14/+5
2018-06-08utils: add xmemdup() & xstrdup()Luc Van Oostenryck5-0/+45
2018-06-04dyn-macro: add real support for __BASE_FILE__Luc Van Oostenryck6-3/+34
2018-06-04dyn-macro: add support for __INCLUDE_LEVEL__Luc Van Oostenryck4-0/+28
2018-06-04dyn-macro: use a table to expand __DATE__, __FILE__, ...Luc Van Oostenryck4-27/+58
2018-06-04dyn-macro: add testcase for __LINE__ & friendsLuc Van Oostenryck1-0/+30
2018-06-04Merge branches 'label-redef', 'goto-reserved', 'errmsg-builtin-pos', 'fix-bui...Luc Van Oostenryck21-57/+523
2018-06-04add test for integer-const-expr-nessLuc Van Oostenryck1-0/+85
2018-06-01avoid multiple error message after parsing errorLuc Van Oostenryck2-1/+9
2018-06-01give a position to end-of-inputLuc Van Oostenryck3-2/+13
2018-06-01fix crash on 'goto <reserved word>'Luc Van Oostenryck2-1/+13
2018-06-01fix typing of __builtin_expect()Luc Van Oostenryck2-8/+102
2018-05-27Merge branch 'vla-sizeof' into tipLuc Van Oostenryck7-0/+156
2018-05-27vla-sizeof: add support for sizeof of VLAsLuc Van Oostenryck6-5/+32
2018-05-27vla-sizeof: add test casesLuc Van Oostenryck6-0/+129
2018-05-26label: avoid multiple definitionsLuc Van Oostenryck2-4/+6
2018-05-26label: add testcase for label redefinitionLuc Van Oostenryck1-0/+18
2018-05-26context: extra warning for __context__() & friendsLuc Van Oostenryck2-0/+21
2018-05-26context: stricter syntax for __context__ statementLuc Van Oostenryck2-13/+30
2018-05-26context: fix crashes while parsing '__context__;' or '__context__(;'Luc Van Oostenryck2-1/+10
2018-05-26context: __context__(...) expect a constant expressionLuc Van Oostenryck2-5/+20
2018-05-26context: fix parsing of attribute 'context'Luc Van Oostenryck2-32/+53
2018-05-26add helper for new parsing errors: unexpected()Luc Van Oostenryck2-1/+18
2018-05-21doc: add sphinx domain for IR instruction indexationLuc Van Oostenryck4-74/+160
2018-05-21Merge branch 'doc-sphinx' into tipLuc Van Oostenryck27-258/+1387
2018-05-21doc: convert IR.md to reSTLuc Van Oostenryck2-356/+405
2018-05-21autodoc: add autodoc tests in the testsuiteLuc Van Oostenryck2-1/+178
2018-05-21autodoc: document a few more APIs to test multilineLuc Van Oostenryck3-2/+41
2018-05-21autodoc: support muti-line param & return descriptionsLuc Van Oostenryck1-3/+17
2018-05-21autodoc: add a small cheatsheet for reST markupLuc Van Oostenryck1-0/+119
2018-05-21autodoc: by default disable syntax highlightingLuc Van Oostenryck1-0/+2
2018-05-21autodoc: doc the docLuc Van Oostenryck2-0/+33
2018-05-21autodoc: add markup to argument's referencesLuc Van Oostenryck1-0/+7
2018-05-21autodoc: add doc from ptrlist.cLuc Van Oostenryck2-0/+12
2018-05-21autodoc: add a sphinx c:autodoc directive for the extracted docLuc Van Oostenryck2-3/+56
2018-05-21autodoc: convert extracted doc to reSTLuc Van Oostenryck1-13/+59
2018-05-21autodoc: extract doc from the C filesLuc Van Oostenryck2-0/+198
2018-05-21doc: add structured doc to ptrlist.cLuc Van Oostenryck1-18/+79
2018-05-21api: move evaluate interface to its own header fileLuc Van Oostenryck8-4/+19
2018-05-21doc: use reST for manpagesLuc Van Oostenryck3-43/+46
2018-05-21doc: format dev-options.md as a man pageLuc Van Oostenryck4-8/+22
2018-05-21doc: the testsuite doc in reSTLuc Van Oostenryck3-151/+170
2018-05-21doc: move sparse.txt to markdown and rename itLuc Van Oostenryck3-45/+48
2018-05-21doc: allow .md with py3-sphinxLuc Van Oostenryck1-3/+10
2018-05-21doc: set primary domain to CLuc Van Oostenryck1-0/+3
2018-05-21doc: automatically get the versionLuc Van Oostenryck1-3/+3
2018-05-21doc: automatically set the copyright dateLuc Van Oostenryck1-1/+2
2018-05-21doc: add logoLuc Van Oostenryck2-1/+95
2018-05-21doc: add minimal support for sphinx-docLuc Van Oostenryck4-0/+210
2018-05-21doc: fix headingsLuc Van Oostenryck1-3/+2
2018-05-21doc: fix markdown syntaxLuc Van Oostenryck1-11/+11
2018-05-19increment the version number suffix it with -devLuc Van Oostenryck1-1/+1
2018-05-19Merge branch 'next' into officialLuc Van Oostenryck270-1931/+8106
2018-05-06Merge branches 'unop', 'describe-dirty', 'range-syntax', 'old-testcases', 'fi...Luc Van Oostenryck22-27/+225
2018-05-06use function-like syntax for __range__Luc Van Oostenryck3-1/+58
2018-05-06OP_SYMADDR is simply an unopLuc Van Oostenryck1-1/+3
2018-05-06fix: remove usage when killing symaddr (part 2)Luc Van Oostenryck1-1/+1
2018-05-06fix: remove usage when killing symaddr (part 1)Luc Van Oostenryck1-0/+1
2018-05-06fix comment about PSEUDO_SYM usageLuc Van Oostenryck1-1/+1
2018-05-06fix missing checks for deleted instructionsLuc Van Oostenryck2-0/+4
2018-05-06fix: don't dump pointer value in error messageLuc Van Oostenryck1-1/+1
2018-05-06alloc: check if size is too bigLuc Van Oostenryck1-0/+2
2018-05-06add test case bug expand unionLuc Van Oostenryck2-0/+41
2018-05-05Merge branches 'no-path-max', 'vcompound' and 'build-x32' into tipLuc Van Oostenryck12-17/+240
2018-05-04teach sparse about _Floatn and _FloatnxLuc Van Oostenryck3-0/+22
2018-05-04testsuite: add check-assertLuc Van Oostenryck2-0/+16
2018-05-04sparse: option to print compound global data symbol infoRandy Dunlap4-0/+124
2018-05-04testsuite: add check-cp-ifLuc Van Oostenryck2-0/+18
2018-05-04fix build on Hurd which doesn't define PATH_MAXLuc Van Oostenryck1-0/+4
2018-05-01build: use --dirty with 'git describe'Luc Van Oostenryck1-1/+1