aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation
AgeCommit message (Expand)AuthorFilesLines
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
2018-07-01testsuite: add a few more tests catching quadratic behaviourLuc Van Oostenryck3-0/+69
2018-07-01testsuite: reorganize tests for compound literalsLuc Van Oostenryck3-9/+19
2018-06-30kds: fix recursion in kill_dead_stores_bb()Luc Van Oostenryck1-1/+0
2018-06-30kds: kill dead stores after memops simplificationLuc Van Oostenryck2-2/+0
2018-06-30kds: add testcases for kill_dead_stores()Luc Van Oostenryck4-0/+131
2018-06-30Merge branch 'cse-cast' into tipLuc Van Oostenryck1-0/+15
2018-06-30fix killing OP_SWITCHLuc Van Oostenryck1-0/+17
2018-06-30Merge branch 'cast-optim' into tipLuc Van Oostenryck4-61/+38
2018-06-29cast: optimize away casts to/from pointersLuc Van Oostenryck2-16/+26
2018-06-29cast: reorganize testcases for cast optimizationLuc Van Oostenryck3-45/+12
2018-06-28bool: generate plain OP_{AND,OR} instead of OP_{AND,OR}_BOOLLuc Van Oostenryck3-28/+53
2018-06-28bool: fix missing boolean context for floatsLuc Van Oostenryck1-0/+48
2018-06-28bool: simplify ZEXT in bool -> int -> boolLuc Van Oostenryck2-33/+29
2018-06-28bool: add testcase for bool simplificationLuc Van Oostenryck1-0/+247
2018-06-28simplify 'x ^ ~0' to '~x'Luc Van Oostenryck1-0/+8
2018-06-28simplify 'x & ~0' to 'x'Luc Van Oostenryck1-0/+7
2018-06-28simplify 'x | ~0' to '~0'Luc Van Oostenryck1-0/+15
2018-06-26add simple testcases for internal infinite loopsLuc Van Oostenryck1-0/+54
2018-06-26cast: simplify TRUNC + ZEXT to ANDLuc Van Oostenryck2-10/+8
2018-06-26cse: move to next comparable instructionLuc Van Oostenryck1-1/+0
2018-06-23cast: keep instruction sizes consistentLuc Van Oostenryck2-11/+189
2018-06-23cse: add testcase for missed opportunityLuc Van Oostenryck1-0/+16
2018-06-23cast: specialize integer castsLuc Van Oostenryck14-156/+151
2018-06-23cast: make casts from pointer always size preservingLuc Van Oostenryck2-86/+86
2018-06-23cast: add support for -Wpointer-to-int-castLuc Van Oostenryck2-2/+2
2018-06-23cast: specialize cast from pointersLuc Van Oostenryck5-4/+43
2018-06-23cast: make pointer casts always size preservingLuc Van Oostenryck2-38/+42
2018-06-23cast: specialize casts from unsigned to pointersLuc Van Oostenryck5-6/+58
2018-06-23cast: specialize floats to integer conversionLuc Van Oostenryck5-12/+12
2018-06-23cast: handle NO-OP castsLuc Van Oostenryck1-0/+15
2018-06-23cast: specialize FPCAST into [USF]CVTFLuc Van Oostenryck2-11/+11
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-21fix bad fpcast simplificationLuc Van Oostenryck1-1/+0
2018-06-21add testcase for bad fpcast simplificationLuc Van Oostenryck1-0/+14
2018-06-16testsuite: allow extra/default options to test commandsLuc Van Oostenryck1-0/+4
2018-06-16testsuite: fix missing returnLuc Van Oostenryck2-8/+9
2018-06-16add support for -fdiagnostic-prefix[=prefix]Luc Van Oostenryck1-0/+11
2018-06-12Merge branches 'has-builtin' and 'builtin-predef' into tipLuc Van Oostenryck8-0/+377
2018-06-08builtin: add support for __has_builtin()Luc Van Oostenryck1-0/+43
2018-06-08builtin: add support for __builtin_{add,sub,mul}_overflow(), ...Luc Van Oostenryck1-0/+246
2018-06-08builtin: add testcase for builtin macro expansionLuc Van Oostenryck1-0/+17
2018-06-04dyn-macro: add real support for __BASE_FILE__Luc Van Oostenryck3-0/+23
2018-06-04dyn-macro: add support for __INCLUDE_LEVEL__Luc Van Oostenryck3-0/+19
2018-06-04dyn-macro: use a table to expand __DATE__, __FILE__, ...Luc Van Oostenryck1-1/+0
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 Oostenryck13-2/+436
2018-06-04add test for integer-const-expr-nessLuc Van Oostenryck1-0/+85
2018-06-01give a position to end-of-inputLuc Van Oostenryck2-2/+12
2018-06-01fix crash on 'goto <reserved word>'Luc Van Oostenryck1-0/+12
2018-06-01fix typing of __builtin_expect()Luc Van Oostenryck1-0/+101
2018-05-27Merge branch 'vla-sizeof' into tipLuc Van Oostenryck6-0/+124
2018-05-27vla-sizeof: add support for sizeof of VLAsLuc Van Oostenryck5-5/+0
2018-05-27vla-sizeof: add test casesLuc Van Oostenryck6-0/+129
2018-05-26label: avoid multiple definitionsLuc Van Oostenryck1-1/+0
2018-05-26label: add testcase for label redefinitionLuc Van Oostenryck1-0/+18
2018-05-26context: extra warning for __context__() & friendsLuc Van Oostenryck1-0/+17
2018-05-26context: stricter syntax for __context__ statementLuc Van Oostenryck1-3/+22
2018-05-26context: fix crashes while parsing '__context__;' or '__context__(;'Luc Van Oostenryck1-0/+7
2018-05-26context: __context__(...) expect a constant expressionLuc Van Oostenryck1-0/+19
2018-05-26context: fix parsing of attribute 'context'Luc Van Oostenryck1-0/+40
2018-05-21Merge branch 'doc-sphinx' into tipLuc Van Oostenryck2-1/+178