aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation
AgeCommit message (Expand)AuthorFilesLines
2019-11-10Merge branch 'eval-typeof' into nextLuc Van Oostenryck1-0/+10
2019-11-10typeof: examine it at show-timeLuc Van Oostenryck1-1/+0
2019-11-10typeof: add a test for unexamined typeofLuc Van Oostenryck1-0/+11
2019-10-30arch: add an option to specify the desired arch: --arch=<arch>Luc Van Oostenryck4-0/+106
2019-10-09"graph" segfaults on top-level asmLuc Van Oostenryck1-0/+1
2019-10-01make 'directive in argument list' clearerLuc Van Oostenryck1-4/+4
2019-09-30Merge branch 'fix-expand-asm' into tipLuc Van Oostenryck14-33/+228
2019-09-30Merge branch 'relax-constexpr' into tipLuc Van Oostenryck2-4/+10
2019-09-30Merge branch 'fix-bad-linear' into tipLuc Van Oostenryck2-0/+36
2019-09-30fix sign extension in casting enumsDan Carpenter1-1/+0
2019-09-30add test for enum sign extensionLuc Van Oostenryck1-0/+13
2019-09-30do not linearize invalid expressionLuc Van Oostenryck1-1/+0
2019-09-28asm: arrays & functions in non-memory operand degenerate into pointersLuc Van Oostenryck1-1/+0
2019-09-27asm: fix missing expansion of asm statementsLuc Van Oostenryck1-1/+0
2019-09-27asm: linearization of output memory operands is differentLuc Van Oostenryck1-1/+0
2019-09-27asm: missing evaluation of asm statementsLuc Van Oostenryck1-1/+0
2019-09-27asm: check earlier that body & constraints are stringsLuc Van Oostenryck1-3/+3
2019-09-27asm: add test evaluation, expansion & linearization of ASM operandsLuc Van Oostenryck5-0/+174
2019-09-26string: use string_expression() in parse_static_assert()Luc Van Oostenryck1-3/+3
2019-09-26expand: add missing expansion of compound literalsLuc Van Oostenryck2-2/+0
2019-09-26expand: add test for expansion of compound literalsLuc Van Oostenryck1-0/+27
2019-09-26shorter message for non-scalar in conditionalsLuc Van Oostenryck2-9/+9
2019-09-26more consistent type info in error messagesLuc Van Oostenryck6-29/+29
2019-09-02constexpr: relax constexprness of constant conditionalsLuc Van Oostenryck2-4/+10
2019-04-01fix allowing casts of AS pointers to uintptr_tLuc Van Oostenryck4-15/+57
2019-03-30also accept casts of AS pointers to uintptr_tLuc Van Oostenryck1-0/+60
2019-03-05add test for evaluation of invalid assignmentsLuc Van Oostenryck2-0/+37
2019-03-03expand: 'conservative' must not bypass valid simplificationsThomas Weißschuh2-0/+76
2019-02-28display extra info for type errors in compare & conditionalLuc Van Oostenryck1-2/+6
2019-02-18testsuite: fix bad escaping of '[' & ']'Luc Van Oostenryck2-2/+2
2019-02-17Merge branch 'branch-v0.6'Luc Van Oostenryck2-9/+9
2019-02-07redecl: add test for attribute placement in function declaratorsRamsay Jones1-0/+31
2019-02-07validation: Add patterns FAIL, PASS, XPASS and XFAIL to testUwe Kleine-König1-6/+9
2019-02-04target.c: ignore -m64 on archs where int32_t is a longLuc Van Oostenryck18-0/+19
2019-02-04testsuite: remove unneeded -m64 from command-lineLuc Van Oostenryck1-1/+1
2018-12-29explain cause of 'incorrect type in conditional'Luc Van Oostenryck2-9/+9
2018-12-20Merge branch 'show-type'Luc Van Oostenryck12-61/+61
2018-12-19Merge branch 'bitwise-ptr'Luc Van Oostenryck2-0/+39
2018-12-17show-parse: do not display base type's redundant specifiersLuc Van Oostenryck5-37/+37
2018-12-17show-parse: don't display null ident in show_typename()Luc Van Oostenryck9-25/+25
2018-12-17add a flag to warn on casts to/from bitwise pointersLuc Van Oostenryck1-2/+1
2018-12-17Add testcases for bitwise cast on pointerThiebaud Weksteen2-0/+40
2018-12-17Merge branch 'predefs' into tipv0.6.0-rc1Luc Van Oostenryck8-59/+93
2018-12-17add predefined macros for [u]int32_tLuc Van Oostenryck1-0/+2
2018-12-17add predefined macros for [u]int64_tLuc Van Oostenryck1-0/+2
2018-12-17add predefined macros for [u]int{8,16}_tLuc Van Oostenryck1-0/+4
2018-12-17add predefined macros for [u]intmaxLuc Van Oostenryck1-0/+2
2018-12-17add predefined macros for [u]intptrLuc Van Oostenryck1-0/+2
2018-12-17make predefined_type_size() more genericLuc Van Oostenryck2-0/+12
2018-12-16show-parse: strip do_show_type()'s trailing spaceLuc Van Oostenryck1-2/+2
2018-12-14teach sparse about asm inlineLuc Van Oostenryck1-0/+52
2018-12-14fix '__SIZE_TYPE__' for LLP64Luc Van Oostenryck1-1/+0
2018-12-14testsuite: test predef macros on LP32/LP64/LLP64Luc Van Oostenryck7-59/+70
2018-12-12Merge branch 'as-named' into tipLuc Van Oostenryck5-20/+37
2018-12-12as-name: allow ident as address_spaceLuc Van Oostenryck1-0/+17
2018-12-10Merge branch 'fix-non-const-case' into tipLuc Van Oostenryck1-0/+37
2018-12-09as-name: add and use show_as()Luc Van Oostenryck4-20/+20
2018-12-09Merge branch 'dump-macros'Luc Van Oostenryck2-0/+52
2018-12-09don't allow newlines inside string literalsLuc Van Oostenryck2-4/+3
2018-12-08add testcase for missing deliminator ' or "Luc Van Oostenryck1-0/+18
2018-12-01Conditionalize 'warning: non-ANSI function ...'John Levon4-0/+53
2018-12-01Use -Wimplicit-int when warning about missing K&R argument typesLuc Van Oostenryck1-0/+15
2018-12-01fix implicit K&R argument typesLuc Van Oostenryck1-0/+16
2018-11-29Ignore #ident directivesJohn Levon2-0/+24
2018-11-24pre-process: add the -dM option to dump macro definitionsRamsay Jones2-0/+42
2018-11-24pre-process: print variable argument macros correctlyRamsay Jones1-0/+5
2018-11-24pre-process: don't put spaces in macro parameter listRamsay Jones1-1/+1
2018-11-24pre-process: print macros containing # and ## correctlyRamsay Jones1-0/+5
2018-11-23constant: add -Wconstant-suffix warningRamsay Jones2-0/+30
2018-11-22sparsei: add the --[no-]jit optionsRamsay Jones1-1/+1
2018-11-20fix expansion of function designatorLuc Van Oostenryck1-1/+0
2018-11-20add testcase for missing function designator expansionLuc Van Oostenryck1-0/+23
2018-10-05Merge branch 'fix-enum-type' into tipLuc Van Oostenryck14-3/+305
2018-10-05enum: more specific error message for empty enumLuc Van Oostenryck1-1/+1
2018-10-05enum: default to unsignedLuc Van Oostenryck3-4/+3
2018-10-05enum: warn when mixing different restricted typesLuc Van Oostenryck1-0/+20
2018-10-05enum: only warn (once) when mixing bitwisenessLuc Van Oostenryck1-0/+29
2018-10-05enum: use the smallest type that fitLuc Van Oostenryck3-3/+0
2018-10-05enum: fix cast_enum_list()Luc Van Oostenryck1-1/+0
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 Oostenryck1-1/+0
2018-10-05enum: add testcase for UB in oversized shiftLuc Van Oostenryck1-0/+17
2018-09-26print address space number for cast-from-AS warningsVincenzo Frascino2-3/+63
2018-09-10ssa: relax what can be promotedLuc Van Oostenryck1-2/+0
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 Oostenryck1-1/+0
2018-09-08add testcase for non-constant switch-caseLuc Van Oostenryck1-0/+38
2018-09-06Merge branch 'rem-trivial-phi' into tipLuc Van Oostenryck1-0/+14
2018-09-06Merge branches 'missing-return' and 'fix-logical-phi' into tipLuc Van Oostenryck13-90/+281
2018-09-06fix linearization of nested logical exprLuc Van Oostenryck4-93/+90
2018-09-06add tests for nested logical exprLuc Van Oostenryck1-0/+49
2018-09-06fix ordering of phi-node operandLuc Van Oostenryck2-5/+4
2018-09-06add testcases for wrong ordering in phi-nodesLuc Van Oostenryck4-0/+55
2018-09-06return nothing only in void functionsLuc Van Oostenryck1-1/+0
2018-09-06use UNDEF for missing returnsLuc Van Oostenryck5-5/+0
2018-09-06topasm: top-level asm is specialLuc Van Oostenryck1-0/+0
2018-09-05add testcases for missing return in last blockLuc Van Oostenryck6-0/+97
2018-09-01stricter warning for explicit cast to ulongLuc Van Oostenryck1-0/+56
2018-09-01Merge branch 'dead-switch' into tipLuc Van Oostenryck1-0/+19
2018-09-01Merge branch 'has-attribute' into tipLuc Van Oostenryck1-0/+56
2018-09-01trivial-phi: remove more complex trivial phi-nodesLuc Van Oostenryck1-1/+0
2018-09-01trivial-phi: add testcase for unneeded trivial phi-nodesLuc Van Oostenryck1-0/+15
2018-09-01fix linearization of unreachable switch (with reachable label).Luc Van Oostenryck1-1/+0
2018-09-01add tescase for unreachable label in switchLuc Van Oostenryck1-0/+20
2018-09-01has-attr: add support for __has_attribute()Luc Van Oostenryck1-1/+0
2018-09-01has-attr: add testcase for __has_attribute()Luc Van Oostenryck1-0/+57
2018-08-30Merge branch 'volatile-bitfield' and 'mode-pointer' into tipLuc Van Oostenryck2-0/+34
2018-08-25fix: do not optimize away accesses to volatile bitfieldsLuc Van Oostenryck1-1/+0
2018-08-25add testcase for accesses to volatile bitfieldsLuc Van Oostenryck1-0/+17
2018-08-25Merge branch 'ssa' into tipLuc Van Oostenryck32-71/+301
2018-08-25testsuite: remove useless test for loop-linearizationLuc Van Oostenryck1-136/+0
2018-08-25Merge branch 'kill-dead-stores' into tipLuc Van Oostenryck4-0/+128
2018-08-25add a testcase for enum using a modeLuc Van Oostenryck1-0/+18
2018-08-24Merge branches 'optim-trunc-or' and 'optim-mask-shift-or' into tipLuc Van Oostenryck4-4/+0
2018-08-24simplify TRUNC(SHIFT(a | b, S), N)Luc Van Oostenryck2-2/+0
2018-08-24simplify AND(SHIFT(a | b, S), M)Luc Van Oostenryck2-2/+0
2018-08-22simplify TRUNC((x & M') | y, N)Luc Van Oostenryck4-4/+0
2018-08-22Merge branches 'optim-shift-and' and 'optim-bitfield' into tipLuc Van Oostenryck38-0/+628
2018-08-22simplify ((x & M) << S) when (M << S) == (-1 << S)Luc Van Oostenryck1-1/+0
2018-08-22simplify ((x & M) << S) when (M << S) == 0Luc Van Oostenryck1-1/+0
2018-08-22simplify ((x & M) >> S) when (M >> S) == (-1 >> S)Luc Van Oostenryck1-1/+0
2018-08-22simplify ((x & M) >> S) when (M >> S) == 0Luc Van Oostenryck1-1/+0
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 Oostenryck7-7/+0
2018-08-22simplify OP((x | C), K) when (C & M) != CLuc Van Oostenryck1-1/+0
2018-08-22simplify OP((x | C), K) when (C & M) == MLuc Van Oostenryck1-1/+0
2018-08-22simplify OP((x | C), K) when (C & M) == 0Luc Van Oostenryck2-2/+0
2018-08-22simplify OP(((x & M') | y), K) when (M' & M) != M'Luc Van Oostenryck3-3/+0
2018-08-22simplify OP(((x & M') | y), K) when (M' & M) == MLuc Van Oostenryck3-3/+0
2018-08-22allow simplification of OP(((x & y) | (a & M')), K)Luc Van Oostenryck3-3/+0
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-17Merge branches 'optim-shl-lsr' and 'optim-trunc-trunc' into tipLuc Van Oostenryck1-0/+12
2018-08-17simplify TRUNC(TRUNC(x))Luc Van Oostenryck1-1/+0
2018-08-17simplify ((x >> S) << S)Luc Van Oostenryck1-1/+0
2018-08-16add testcase for TRUNC(TRUNC(x)) simplificationLuc Van Oostenryck1-0/+13
2018-08-16add testcase for ((x >> S) << S) simplificationLuc Van Oostenryck1-0/+15
2018-08-16rename testcase for ((x << S) >> S) simplificationLuc Van Oostenryck1-1/+1
2018-08-08Merge branches 'fix-inc-dec-size' and 'optim-mask' into tipLuc Van Oostenryck8-81/+92
2018-08-08simplify (x & M) >> S to (x >> S) & (M >> S)Luc Van Oostenryck1-1/+0
2018-08-08simplify (x << S) >> S into x & (-1 >> S)Luc Van Oostenryck3-11/+3
2018-08-08simplify ((x & M) | y) >> S to (y >> S) when (M >> S) == 0Luc Van Oostenryck1-1/+0
2018-08-08simplify ((x & M') | y ) & M into (y & M) when (M' & M) == 0Luc Van Oostenryck1-1/+0
2018-08-07optim: add a few more testcases for shift & maskLuc Van Oostenryck1-0/+15
2018-08-07fix instruction size & type in linearize_inc_dec()Luc Van Oostenryck2-68/+75
2018-08-06limit the mask used for bitfield insertionLuc Van Oostenryck1-6/+6
2018-08-06cast: fix warning position in cast_pseudo()Luc Van Oostenryck2-4/+4
2018-08-06boolean conversion of boolean value is a no-opLuc Van Oostenryck1-6/+6
2018-08-06simplify AND(SETCC(x,y), M)Luc Van Oostenryck1-1/+0
2018-08-06simplify TRUNC(SETCC(x,y), N)Luc Van Oostenryck1-1/+0
2018-08-06simplify SEXT(SETCC(x,y), N)Luc Van Oostenryck1-1/+0
2018-08-06simplify ZEXT(SETCC(x,y), N)Luc Van Oostenryck3-8/+3
2018-08-06simplify SETNE(TRUNC(x,N),{0,1})Luc Van Oostenryck1-1/+0
2018-08-06simplify SETNE(AND(X,1),0) to AND(X,1)Luc Van Oostenryck1-1/+0
2018-08-06simplify linearize_logical()Luc Van Oostenryck1-92/+68
2018-08-06expand linearize_conditional() into linearize_logical()Luc Van Oostenryck1-127/+111
2018-08-06fix linearize_conditional() for logical opsLuc Van Oostenryck1-1/+0
2018-08-06conditional branches can't accept arbitrary expressionsLuc Van Oostenryck3-29/+29
2018-08-04add testcase for linearize_logical()Luc Van Oostenryck8-0/+418
2018-07-28Merge branch 'optim-setne' into tipLuc Van Oostenryck4-37/+43
2018-07-28simplify 'x != 0' or 'x == 1' to 'x'Luc Van Oostenryck2-37/+19
2018-07-28simplify SET{EQ,NE}(SEXT(x, N),{0,1})Luc Van Oostenryck1-1/+0
2018-07-28simplify SET{EQ,NE}(ZEXT(x, N),{0,1})Luc Van Oostenryck1-1/+0
2018-07-25testcase for SET{EQ,NE}([SZ]EXT(x, N),{0,1})'s simplificationLuc Van Oostenryck2-0/+26
2018-07-25Merge branch 'optim-cast' into tipLuc Van Oostenryck21-0/+379
2018-07-25Merge branch 'optim-shift' into tipLuc Van Oostenryck7-0/+488
2018-07-25shift: simplify ASR(ZEXT(X, N), C)Luc Van Oostenryck1-0/+13
2018-07-25shift: simplify ASR(LSR(x,N),N')Luc Van Oostenryck1-0/+42
2018-07-25shift: simplify LSR(LSR(x,N),N') & friendsLuc Van Oostenryck1-0/+149
2018-07-25testcases: missing evaluation of side effects in typeof(VLA)Luc Van Oostenryck1-0/+26
2018-07-25testcases: add testcase for missing detection of out-of-bound storesLuc Van Oostenryck1-0/+21
2018-07-24use "%Le" to display floatsLuc Van Oostenryck4-22/+22
2018-07-23big-shift: fix warning message for negative or over-sized shiftsLuc Van Oostenryck2-13/+12
2018-07-23big-shift: add testcases for simplification of negative shiftsLuc Van Oostenryck1-0/+18
2018-07-23big-shift: add testcases for simplification of over-sized shiftsLuc Van Oostenryck1-7/+55
2018-07-23cast: simplify SEXT(ZEXT(x,N),N')Luc Van Oostenryck1-1/+0
2018-07-23cast: simplify ZEXT(ZEXT(x,N),N')Luc Van Oostenryck1-1/+0
2018-07-23cast: simplify SEXT(SEXT(x,N),N')Luc Van Oostenryck1-1/+0
2018-07-23cast: simplify AND(ZEXT(x,M),N)Luc Van Oostenryck2-2/+0
2018-07-23cast: simplify [ZS]EXT(AND(x,M),N)Luc Van Oostenryck3-3/+0
2018-07-23cast: preserve the sizes of TRUNC(AND(x,M),N)Luc Van Oostenryck1-1/+0
2018-07-23cast: simplify [SZ]EXT + TRUNC to a smaller/greater sizeLuc Van Oostenryck2-2/+0
2018-07-23cast: simplify [SZ]EXT + TRUNC to original sizeLuc Van Oostenryck1-1/+0
2018-07-23add testcases for casts & bitfield insertion/extractionLuc Van Oostenryck21-0/+391
2018-07-23big-shift: do not truncate the count when checking itLuc Van Oostenryck1-1/+0
2018-07-23big-shift: fix warning message for negative shift countLuc Van Oostenryck1-18/+18
2018-07-23big-shift: use the type width for too big shiftLuc Van Oostenryck1-12/+45
2018-07-23big-shift: simplify over-sized OP_SHLsLuc Van Oostenryck1-0/+7
2018-07-23big-shift: simplify over-sized OP_LSRsLuc Van Oostenryck2-10/+37
2018-07-23big-shift: reuse simplify_asr() for LSR & SHLLuc Van Oostenryck1-0/+8
2018-07-23big-shift: do not simplify over-sized OP_ASR to zeroLuc Van Oostenryck1-0/+2
2018-07-22big-shift: also check shift count of shift-assignmentLuc Van Oostenryck1-0/+48
2018-07-21big-shift: add test for shifts with bad countLuc Van Oostenryck2-0/+95
2018-07-01ssa: phi worklistLuc Van Oostenryck1-1/+0
2018-07-01ssa: activate the new SSA conversionLuc Van Oostenryck10-10/+2
2018-07-01testsuite: remove useless test for loop-linearizationLuc Van Oostenryck1-136/+0
2018-07-01testsuite: improve mem2reg testcasesLuc Van Oostenryck19-18/+178