summaryrefslogtreecommitdiffstatshomepage
AgeCommit message (Expand)AuthorFilesLines
2018-12-26Sparse v0.6.0v0.6.0Luc Van Oostenryck1-1/+1
2018-12-26add TODO list.Luc Van Oostenryck3-52/+99
2018-12-22as-name: document that identifiers are OK for address spacesLuc Van Oostenryck1-3/+4
2018-12-22doc: fix list formattingLuc Van Oostenryck1-2/+3
2018-12-21expression.h: update comment to include other cast typesTycho Andersen1-1/+2
2018-12-21remove self-assignment of base_typeLuc Van Oostenryck1-1/+1
2018-12-21remove -finline-functions from CFLAGSLuc Van Oostenryck1-1/+1
2018-12-21remove unused regno()Luc Van Oostenryck1-8/+0
2018-12-20remove redundant check of _Bool bitsizeLuc Van Oostenryck1-1/+1
2018-12-20Merge branch 'cleanup'Luc Van Oostenryck3-8/+9
2018-12-20Merge branch 'show-type'Luc Van Oostenryck13-63/+69
2018-12-19Merge branch 'bitwise-ptr'Luc Van Oostenryck6-0/+67
2018-12-19allocate BBs after the guardsLuc Van Oostenryck1-1/+3
2018-12-19remove unused arg in add_branch()Luc Van Oostenryck1-4/+4
2018-12-19remove unneeded declarations in "compat.h"Luc Van Oostenryck1-2/+0
2018-12-18build: check if sparse-llvm needs libc++Luc Van Oostenryck1-0/+1
2018-12-18build: only need includedir from llvm-configLuc Van Oostenryck1-1/+1
2018-12-18VERSION=0.6.0-rc1Luc Van Oostenryck1-1/+1
2018-12-17show-parse: remove string_ctype from typenamesLuc Van Oostenryck1-1/+0
2018-12-17show-parse: do not display base type's redundant specifiersLuc Van Oostenryck6-37/+39
2018-12-17show-parse: don't display null ident in show_typename()Luc Van Oostenryck10-26/+27
2018-12-17add a flag to warn on casts to/from bitwise pointersLuc Van Oostenryck5-2/+29
2018-12-17Add testcases for bitwise cast on pointerThiebaud Weksteen2-0/+40
2018-12-17Merge branch 'predefs' into tipv0.6.0-rc1Luc Van Oostenryck16-163/+415
2018-12-17add predefine_min() and use it for __{WCHAR,WINT}_MIN__Luc Van Oostenryck1-2/+17
2018-12-17add predefine for __CHAR_UNSIGNED__Luc Van Oostenryck2-1/+9
2018-12-17fix the size of long doubleLuc Van Oostenryck1-2/+23
2018-12-17add predefined macros for char{16,32}_tLuc Van Oostenryck1-0/+2
2018-12-17add predefined macros for [u]int32_tLuc Van Oostenryck4-0/+25
2018-12-17add predefined macros for [u]int64_tLuc Van Oostenryck4-0/+18
2018-12-17add predefined macros for [u]int{8,16}_tLuc Van Oostenryck2-0/+9
2018-12-17add predefined macros for [u]intmaxLuc Van Oostenryck4-0/+12
2018-12-17add predefined macros for [u]intptrLuc Van Oostenryck2-0/+4
2018-12-17add predefined macros for wint_tLuc Van Oostenryck3-0/+6
2018-12-17use the type for predefined_max()Luc Van Oostenryck1-5/+5
2018-12-17give a type to wcharLuc Van Oostenryck6-9/+37
2018-12-17make predefined_type_size() more genericLuc Van Oostenryck3-23/+50
2018-12-16show-parse: strip do_show_type()'s trailing spaceLuc Van Oostenryck2-2/+6
2018-12-14remove duplicates from gcc-attr-list.hLuc Van Oostenryck1-9/+0
2018-12-14teach sparse about asm inlineLuc Van Oostenryck3-7/+81
2018-12-14add builtin_type_suffix()Luc Van Oostenryck2-31/+43
2018-12-14use bits_mask() for predefined_max()Luc Van Oostenryck1-1/+2
2018-12-14allow optional "_T" suffix to __SIZEOF_XXX__Luc Van Oostenryck1-12/+12
2018-12-14fix '__SIZE_TYPE__' for LLP64Luc Van Oostenryck2-11/+7
2018-12-14testsuite: test predef macros on LP32/LP64/LLP64Luc Van Oostenryck7-59/+70
2018-12-14test endianness with __BYTE_ORDER__Luc Van Oostenryck1-1/+1
2018-12-14Consolidate 'machine detection' into "machine.h"Luc Van Oostenryck2-21/+24
2018-12-14add detection of native platformLuc Van Oostenryck1-0/+54
2018-12-12Merge branch 'as-named' into tipLuc Van Oostenryck11-65/+152
2018-12-12as-named: warn on bad address spaceLuc Van Oostenryck4-14/+17
2018-12-12as-name: check for multiple address spaces at parsing timeLuc Van Oostenryck1-1/+6
2018-12-12as-name: allow ident as address_spaceLuc Van Oostenryck2-8/+43
2018-12-12as-name: use idents for address spacesLuc Van Oostenryck5-42/+70
2018-12-10Merge branch 'fix-non-const-case' into tipLuc Van Oostenryck2-2/+42
2018-12-09as-name: add and use show_as()Luc Van Oostenryck8-26/+38
2018-12-09multi-buffer for identsLuc Van Oostenryck1-1/+5
2018-12-09Merge branch 'maintainer' into tipLuc Van Oostenryck1-2/+15
2018-12-09Merge branch 'dump-macros'Luc Van Oostenryck5-16/+105
2018-12-09don't allow newlines inside string literalsLuc Van Oostenryck3-7/+6
2018-12-08man: update maintainer infoLuc Van Oostenryck1-2/+1
2018-12-08man: add AUTHORS sectionLuc Van Oostenryck1-0/+5
2018-12-08man: add section about reporting bugsLuc Van Oostenryck1-0/+9
2018-12-08add testcase for missing deliminator ' or "Luc Van Oostenryck1-0/+18
2018-12-06cgcc: use 'i386' for the arch instead of 'i86'Luc Van Oostenryck1-2/+2
2018-12-01Conditionalize 'warning: non-ANSI function ...'John Levon7-4/+66
2018-12-01Accept comma-separated list for function declarations.Luc Van Oostenryck1-1/+1
2018-12-01Use -Wimplicit-int when warning about missing K&R argument typesLuc Van Oostenryck4-1/+22
2018-12-01fix implicit K&R argument typesLuc Van Oostenryck2-1/+19
2018-11-29Ignore #ident directivesJohn Levon3-0/+30
2018-11-25dump-macro: simplify processing of whitespaceLuc Van Oostenryck1-6/+3
2018-11-24dump-macro: break the loop at TOKEN_UNTAINTLuc Van Oostenryck1-3/+1
2018-11-24pre-process: add the -dM option to dump macro definitionsRamsay Jones4-9/+75
2018-11-24pre-process: print variable argument macros correctlyRamsay Jones2-1/+15
2018-11-24pre-process: don't put spaces in macro parameter listRamsay Jones2-2/+2
2018-11-24pre-process: print macros containing # and ## correctlyRamsay Jones2-0/+12
2018-11-24cgcc: teach about '-x c'Luc Van Oostenryck1-0/+8
2018-11-24cgcc: teach about '-o <file>'Luc Van Oostenryck1-0/+8
2018-11-24cgcc: add support to ignore argument(s) of optionsLuc Van Oostenryck1-2/+9
2018-11-24teach sparse about '-x <language>'Luc Van Oostenryck1-0/+8
2018-11-24teach sparse about '-o <file>'Luc Van Oostenryck3-0/+17
2018-11-24pre-process: suppress trailing space when dumping macrosRamsay Jones1-0/+2
2018-11-23constant: add -Wconstant-suffix warningRamsay Jones7-2/+47
2018-11-22sparsei: add the --[no-]jit optionsRamsay Jones2-2/+20
2018-11-22sparsec: use a compatible exception model on cygwinRamsay Jones1-1/+11
2018-11-20fix expansion of function designatorLuc Van Oostenryck2-1/+2
2018-11-20add testcase for missing function designator expansionLuc Van Oostenryck1-0/+23
2018-11-02tokenize: check show_string() for NULL pointerBen Dooks1-1/+1
2018-10-30ptrlist: add ptr_list_nth_entry()Luc Van Oostenryck2-0/+23
2018-10-26__attribute__((fallthrough)) can't simply be ignoredLuc Van Oostenryck1-1/+0
2018-10-05Merge branch 'fix-enum-type' into tipLuc Van Oostenryck16-64/+405
2018-10-05enum: more specific error message for empty enumLuc Van Oostenryck2-2/+2
2018-10-05enum: default to unsignedLuc Van Oostenryck4-10/+9
2018-10-05enum: keep enumerators as int if they fitLuc Van Oostenryck1-0/+37
2018-10-05enum: rewrite bound checkingLuc Van Oostenryck1-50/+34
2018-10-05enum: warn on bad enumsLuc Van Oostenryck1-2/+4
2018-10-05enum: warn when mixing different restricted typesLuc Van Oostenryck2-0/+25
2018-10-05enum: only warn (once) when mixing bitwisenessLuc Van Oostenryck2-0/+36
2018-10-05enum: use the values to determine the base typeLuc Van Oostenryck1-14/+1
2018-10-05enum: use the smallest type that fitLuc Van Oostenryck4-5/+0
2018-10-05enum: fix cast_enum_list()Luc Van Oostenryck2-1/+1
2018-10-05enum: add testcase for base & enumerator typeLuc Van Oostenryck8-0/+227
2018-10-05enum: add testcase for type of enum membersLuc Van Oostenryck1-0/+15
2018-10-05enum: fix UB when rshifting by full widthLuc Van Oostenryck2-3/+15
2018-10-05enum: add testcase for UB in oversized shiftLuc Van Oostenryck1-0/+17
2018-10-05doc: is_int_type() returns false for SYM_RESTRICTsLuc Van Oostenryck1-0/+5
2018-09-26print address space number for cast-from-AS warningsVincenzo Frascino3-4/+64
2018-09-10ssa: relax what can be promotedLuc Van Oostenryck2-4/+2
2018-09-10test: make 32-bit version of failed testLuc Van Oostenryck2-2/+31
2018-09-10test: use integers of different sizes, even on 32-bitLuc Van Oostenryck1-2/+2
2018-09-10test: make test Waddress-space-strict succeed on 32-bitLuc Van Oostenryck1-26/+7
2018-09-08fix linearization of non-constant switch-casesLuc Van Oostenryck2-3/+5
2018-09-08add testcase for non-constant switch-caseLuc Van Oostenryck1-0/+38
2018-09-06Merge branch 'rem-trivial-phi' into tipLuc Van Oostenryck3-19/+66
2018-09-06Merge branches 'missing-return' and 'fix-logical-phi' into tipLuc Van Oostenryck17-143/+373
2018-09-06fix linearization of nested logical exprLuc Van Oostenryck5-111/+121
2018-09-06add tests for nested logical exprLuc Van Oostenryck1-0/+49
2018-09-06fix ordering of phi-node operandLuc Van Oostenryck3-7/+6
2018-09-06add testcases for wrong ordering in phi-nodesLuc Van Oostenryck4-0/+55
2018-09-06return nothing only in void functionsLuc Van Oostenryck2-4/+3
2018-09-06use a temp var for the return type/symbolLuc Van Oostenryck1-1/+2
2018-09-06use UNDEF for missing returnsLuc Van Oostenryck6-5/+8
2018-09-06extract add_return() from linearize_return()Luc Van Oostenryck1-11/+16
2018-09-06the return BB is never terminatedLuc Van Oostenryck1-8/+7
2018-09-06there is always an active BB after linearize_fn_statement()Luc Van Oostenryck1-2/+2
2018-09-06specialize linearize_compound_statement()Luc Van Oostenryck1-10/+16
2018-09-06topasm: top-level asm is specialLuc Van Oostenryck3-3/+7
2018-09-05use a temp var for function's upper-level statementLuc Van Oostenryck1-2/+3
2018-09-05add testcases for missing return in last blockLuc Van Oostenryck6-0/+97
2018-09-05add linearization as a passLuc Van Oostenryck2-0/+2
2018-09-01stricter warning for explicit cast to ulongLuc Van Oostenryck5-2/+70
2018-09-01Merge branch 'dead-switch' into tipLuc Van Oostenryck4-8/+83
2018-09-01Merge branch 'has-attribute' into tipLuc Van Oostenryck5-10/+85
2018-09-01trivial-phi: remove more complex trivial phi-nodesLuc Van Oostenryck2-3/+17
2018-09-01trivial-phi: directly return the unique valueLuc Van Oostenryck1-17/+9
2018-09-01trivial-phi: use a temp var for the real sourceLuc Van Oostenryck1-2/+7
2018-09-01trivial-phi: early returnLuc Van Oostenryck1-1/+1
2018-09-01trivial-phi: extract trivial_phi() from clean_up_phi()Luc Van Oostenryck1-3/+22
2018-09-01trivial-phi: make clean_up_phi() more sequentialLuc Van Oostenryck1-4/+5
2018-09-01trivial-phi: add testcase for unneeded trivial phi-nodesLuc Van Oostenryck1-0/+15
2018-09-01move DEF_OPCODE() to header fileLuc Van Oostenryck2-7/+8
2018-09-01fix linearization of unreachable switch (with reachable label).Luc Van Oostenryck2-6/+6
2018-09-01add tescase for unreachable label in switchLuc Van Oostenryck1-0/+20
2018-09-01ir-validate: validate return valueLuc Van Oostenryck1-0/+15
2018-09-01ir-validate: ignore dead phisLuc Van Oostenryck1-0/+3
2018-09-01ir-validate: add validation branch to dead BBLuc Van Oostenryck2-3/+40
2018-09-01has-attr: add support for __has_attribute()Luc Van Oostenryck4-10/+26
2018-09-01has-attr: add __designated_init__ & transparent_unionLuc Van Oostenryck1-0/+2
2018-09-01has-attr: move 'mode' next to '__mode__'Luc Van Oostenryck1-1/+1
2018-09-01has-attr: add testcase for __has_attribute()Luc Van Oostenryck1-0/+57
2018-08-31Merge branch 'opcode' into tipLuc Van Oostenryck10-183/+177
2018-08-30Merge branch 'volatile-bitfield' and 'mode-pointer' into tipLuc Van Oostenryck8-19/+77
2018-08-30fix missing declarationsLuc Van Oostenryck4-1/+8
2018-08-26add a function to remove deadborn instructionsLuc Van Oostenryck2-0/+23
2018-08-26opcode: add OPF_TARGETLuc Van Oostenryck3-84/+88
2018-08-26opcode: add arity infoLuc Van Oostenryck3-84/+86
2018-08-26opcode: centralize opcode definitionLuc Van Oostenryck4-152/+134
2018-08-25fix: do not optimize away accesses to volatile bitfieldsLuc Van Oostenryck2-3/+2
2018-08-25add a flag for volatile memopsLuc Van Oostenryck5-4/+7
2018-08-25split memops from unopsLuc Van Oostenryck1-1/+4
2018-08-25add testcase for accesses to volatile bitfieldsLuc Van Oostenryck1-0/+17
2018-08-25symaddr: s/insn->symbol/insn->src/Luc Van Oostenryck6-31/+14
2018-08-25Merge branch 'ssa' into tipLuc Van Oostenryck53-376/+1439
2018-08-25testsuite: remove useless test for loop-linearizationLuc Van Oostenryck1-136/+0
2018-08-25Merge branch 'kill-dead-stores' into tipLuc Van Oostenryck7-22/+214
2018-08-24remove superfluous newline in 'unknown mode attribute' error messageLuc Van Oostenryck1-1/+1
2018-08-25add a testcase for enum using a modeLuc Van Oostenryck1-0/+18
2018-08-25add support for mode __byte__Luc Van Oostenryck1-0/+2
2018-08-25add support for mode __pointer__Luc Van Oostenryck1-1/+17
2018-08-25mode keywords don't need MOD_{CHAR,LONG,...}Luc Van Oostenryck1-12/+12
2018-08-24Merge branches 'optim-trunc-or' and 'optim-mask-shift-or' into tipLuc Van Oostenryck5-22/+61
2018-08-24simplify TRUNC(SHIFT(a | b, S), N)Luc Van Oostenryck3-2/+6
2018-08-24simplify AND(SHIFT(a | b, S), M)Luc Van Oostenryck3-2/+18
2018-08-23prepare simplification of MASK(SHIFT(a | b, S), M)Luc Van Oostenryck1-4/+22
2018-08-23doc: extend simplification notationLuc Van Oostenryck1-13/+15
2018-08-22simplify TRUNC((x & M') | y, N)Luc Van Oostenryck5-4/+8
2018-08-22Merge branches 'optim-shift-and' and 'optim-bitfield' into tipLuc Van Oostenryck39-45/+723
2018-08-22simplify ((x & M) << S) when (M << S) == (-1 << S)Luc Van Oostenryck2-1/+2
2018-08-22simplify ((x & M) << S) when (M << S) == 0Luc Van Oostenryck2-1/+11
2018-08-22simplify ((x & M) >> S) when (M >> S) == (-1 >> S)Luc Van Oostenryck2-1/+2
2018-08-22simplify ((x & M) >> S) when (M >> S) == 0Luc Van Oostenryck2-2/+5
2018-08-22use an intermediate mask in simplify_shift()Luc Van Oostenryck1-3/+3
2018-08-22add testcases for {LSR,SHL}(AND(x, M), S) with shared AND(x, M)Luc Van Oostenryck4-0/+66
2018-08-22simplify SHL((x & M') | y, S)Luc Van Oostenryck8-7/+4
2018-08-22simplify OP((x | C), K) when (C & M) != CLuc Van Oostenryck2-1/+4
2018-08-22simplify OP((x | C), K) when (C & M) == MLuc Van Oostenryck2-1/+4
2018-08-22simplify OP((x | C), K) when (C & M) == 0Luc Van Oostenryck3-2/+9
2018-08-22simplify OP(((x & M') | y), K) when (M' & M) != M'Luc Van Oostenryck4-3/+5
2018-08-22simplify OP(((x & M') | y), K) when (M' & M) == MLuc Van Oostenryck4-3/+8
2018-08-22move opcode test inside simplify_mask_or_and()Luc Van Oostenryck1-3/+7
2018-08-22allow simplification of OP(((x & y) | (a & M')), K)Luc Van Oostenryck4-5/+5
2018-08-22switch return order in simplify_mask_or_and()Luc Van Oostenryck1-6/+5
2018-08-22document simplify_mask_or() & simplify_mask_or_and()Luc Van Oostenryck1-0/+21
2018-08-22use better names for simplify_mask_or_and() varsLuc Van Oostenryck1-3/+4
2018-08-22add simplify_mask_or()Luc Van Oostenryck1-16/+14
2018-08-22unify simplify_lsr_or() & simplify_and_or_mask()Luc Van Oostenryck1-33/+23
2018-08-22add testcases for bitfield & AND/OR simplificationLuc Van Oostenryck36-0/+625
2018-08-22add testcase for (((x & M') | (y & M'')) & M)Luc Van Oostenryck2-0/+23
2018-08-21doc: add doc for simplification notationLuc Van Oostenryck2-0/+29
2018-08-21doc: reword doc for replace_pseudo()Luc Van Oostenryck1-1/+1
2018-08-21doc: convert existing simplify.c doc into ReST autodocLuc Van Oostenryck1-36/+43