aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/evaluate.c
AgeCommit message (Expand)AuthorFilesLines
2017-12-08fix: add missing degenerate() for logical notLuc Van Oostenryck1-0/+1
2017-11-11Merge branches 'volatile-loads-are-side-effects', 'fix-volatile-simplificatio...Luc Van Oostenryck1-49/+35
2017-11-08define MOD_QUALIFIER for (MOD_CONST | MOD_VOLATILE)Luc Van Oostenryck1-1/+1
2017-09-17use a specific struct for asm operandsLuc Van Oostenryck1-48/+34
2017-08-28Merge remote-tracking branch 'luc/constexpr-v4' into masterChristopher Li1-54/+152
2017-08-04fix: give a type to bad cond expr with known conditionLuc Van Oostenryck1-0/+12
2017-06-15fix: add missing examine in evaluate_dereference()Luc Van Oostenryck1-0/+2
2017-06-14Merge branches 'quiets-bool-cast-restricted-v3', 'error-vs-warnings-v2', 'imp...Luc Van Oostenryck1-1/+2
2017-06-10finer control over error vs. warningsLuc Van Oostenryck1-0/+1
2017-05-19Merge branches 'dump-macros-v2', 'fix-predefined-size', 'fix-bool-context', '...v0.5.1-rc1Luc Van Oostenryck1-1/+1
2017-05-19avoid warning on explicit 'bool <- restricted' castsLuc Van Oostenryck1-3/+10
2017-05-19returns the correct type when evaluating NULLLuc Van Oostenryck1-1/+1
2017-05-11avoid useless warning for 'bool <- restricted type' conversionLuc Van Oostenryck1-0/+6
2017-03-31give default return type in evaluate_call()Luc Van Oostenryck1-1/+1
2017-03-31return an error if too few argsLuc Van Oostenryck1-1/+3
2017-03-31constexpr: treat comparisons between types as integer constexprNicolai Stange1-4/+9
2017-03-31constexpr: support compound literals as address constantsNicolai Stange1-0/+2
2017-03-31constexpr: relax some constant expression rules for pointer expressionsNicolai Stange1-2/+27
2017-03-31constexpr: examine constness of __builtin_offsetof at evaluation onlyNicolai Stange1-2/+6
2017-03-31constexpr: recognize string literals as address constantsNicolai Stange1-0/+1
2017-03-31constexpr: recognize members of static compound objects as address constantsNicolai Stange1-0/+6
2017-03-31constexpr: recognize address constants created through pointer arithmeticNicolai Stange1-0/+7
2017-03-31constexpr: recognize address constants created through castsNicolai Stange1-0/+7
2017-03-31constexpr: recognize static objects as address constantsNicolai Stange1-1/+2
2017-03-31constexpr: check static storage duration objects' intializers' constnessNicolai Stange1-0/+10
2017-03-31constexpr: collect storage modifiers of initializersLuc Van Oostenryck1-6/+7
2017-03-31constexpr: rename handle_simple_initializer() to handle_initializer()Luc Van Oostenryck1-4/+4
2017-03-31constexpr: add support for tagging address constantsNicolai Stange1-1/+18
2017-03-31constexpr: examine constness of conditionals at evaluation onlyNicolai Stange1-6/+2
2017-03-31constexpr: examine constness of preops at evaluation onlyNicolai Stange1-4/+4
2017-03-31constexpr: examine constness of binops and alike at evaluation onlyNicolai Stange1-13/+6
2017-03-31constexpr: examine constness of casts at evaluation onlyNicolai Stange1-8/+29
2017-03-31constexpr: introduce additional expression constness tracking flagsNicolai Stange1-26/+26
2017-03-22fix evaluation of a function or array symbol in conditionalsLuc Van Oostenryck1-0/+1
2017-03-22warn if testing the address of an arrayLuc Van Oostenryck1-0/+3
2017-03-22warn if testing the address of a functionLuc Van Oostenryck1-1/+4
2017-03-04Allow casting to a restricted type if !restricted_valueEdward Cree1-1/+1
2017-02-13validate expression's type in conditionalsLuc Van Oostenryck1-0/+5
2017-02-13fix cast to boolLuc Van Oostenryck1-0/+32
2017-02-13fix typing error in compound assignmentLuc Van Oostenryck1-1/+4
2017-02-13Remove unneeded variable in integer_promotion()Luc Van Oostenryck1-3/+1
2017-02-13cleanup: remove evaluate_arguments()'s unused argumentLuc Van Oostenryck1-2/+2
2017-01-27Fix type checking of variadic functionsLuc Van Oostenryck1-1/+1
2015-03-13Ignore pure attribute in assignementArd Biesheuvel1-1/+1
2014-10-25teach next_designators() use array_element_offset()Christopher Li1-1/+1
2014-10-10sparse: treat function pointers as pointers to const dataArd Biesheuvel1-0/+9
2014-09-18Fix initializers in anonymous structs and unionsLinus Torvalds1-2/+18
2014-07-17round up the array element size to byte alignChristopher Li1-1/+1
2014-04-03Fix error at anoymous unionsLinus Torvalds1-12/+2
2014-04-01Add warning about duplicate initializersLinus Torvalds1-0/+8
2014-04-01Support GCC's transparent unionsJohn Keeping1-1/+27
2014-04-01evaluate: split out implementation of compatible_assignment_typesJohn Keeping1-23/+34
2014-02-27sparse: Allow override of sizeof(bool) warningJoe Perches1-1/+2
2013-11-29sparse: Also check bit_offset when checking implicit castsFranz Schrober1-1/+2
2013-11-29sparse: Relicense under the MIT licenseFranz Schrober1-1/+17
2013-11-29Revert "Fix mistaken comparison that becomes a no-op."Franz Schrober1-1/+1
2013-05-27Fix expression type for floating point negation ('!')Xi Wang1-1/+1
2013-05-27Fix result type of relational and logical operatorsXi Wang1-6/+9
2013-04-26Allow forced attribute in function argumentv0.4.5-rc1Christopher Li1-1/+1
2013-04-19Warn about initialization of a char array with a too long constant C string.Masatake YAMATO1-4/+8
2013-02-13Merge git://git.kernel.org/pub/scm/linux/kernel/git/viro/sparse into margeChristopher Li1-9/+17
2013-02-12Gentler handling of bitwise warnings in unary operationsAl Viro1-9/+17
2012-06-04check missing or duplicate goto labelsXi Wang1-1/+11
2011-08-23Fix parsing empty asm clobberChristopher Li1-1/+1
2011-05-31Remove set but not used variableChristopher Li1-8/+2
2011-05-07evaluate: Allow sizeof(_Bool) to succeed.Ben Pfaff1-0/+5
2010-06-17parser: add support for asm gotoJiri Slaby1-0/+8
2010-03-29evaluate: check for NULL type inside typeofChristopher1-1/+3
2010-03-28New attribute designated_init: mark a struct as requiring designated initJosh Triplett1-0/+10
2009-08-01Add support for TImode type (__int128_t)Blue Swirl1-3/+3
2009-07-19move extern inline function to file scopeChristopher Li1-5/+0
2009-07-18Add missing checks for Waddress-spaceMartin Nagy1-4/+4
2009-07-17Fix implicit cast to floatThomas Schmid1-31/+0
2009-07-17fun with declarations and definitionsAl Viro1-0/+7
2008-12-28Also warn about sizeof(function)Alexey Zaytsev1-0/+6
2008-12-28Warn about explicit usage of sizeof(void)Christopher Li1-1/+14
2008-12-25Teach classify_type to handle typeofChristopher Li1-0/+5
2008-12-18Expand "dubious !x & y" handling to other combinations of !, &, and |.Josh Triplett1-3/+10
2008-12-17Unhardcode byte size being 8 bits.David Given1-13/+13
2008-12-15Evaluate iterator symbolsChristopher Li1-0/+1
2008-04-05Fix type mismatches with incomplete typesGeoff Johnstone1-0/+4
2008-04-03catch !x & y brainosAl Viro1-0/+3
2008-04-03fix show_typename()Al Viro1-2/+2
2008-04-03saner warnings for restricted typesAl Viro1-13/+20
2007-08-31Rename Wcast_to_address_space to Wcast_to_as to match the command-line argumentJosh Triplett1-1/+1
2007-07-29[PATCH] saner -WtypesignAl Viro1-22/+25
2007-07-29[PATCH] sanitize evaluate_postop()Al Viro1-19/+19
2007-07-29[PATCH] fix evaluate_compare()Al Viro1-2/+2
2007-07-29[PATCH] sanitize evaluate_ptr_add(), start checking for pointers to functionsAl Viro1-16/+25
2007-07-29[PATCH] ...,array should degenerateAl Viro1-1/+3
2007-07-28[PATCH] handling of typeof in evaluate_member_dereference()Al Viro1-1/+1
2007-07-28[PATCH] new helper: unfoul()Al Viro1-8/+14
2007-07-28[PATCH] no such thing as array of functionsAl Viro1-6/+12
2007-07-14[PATCH] deal correctly with qualifiers on arraysAl Viro1-34/+37
2007-07-14[PATCH] rewrite type_difference()Al Viro1-120/+152
2007-07-14[PATCH] fix the sanity check in evaluate_ptr_sub()Al Viro1-6/+7
2007-07-14[PATCH] get compatible_assignment_types() deal with all casesAl Viro1-14/+43
2007-07-14[PATCH] start cleaning type_difference()Al Viro1-25/+9
2007-07-14[PATCH] integer_promotions() can't get SYM_NODE or SYM_ENUMAl Viro1-7/+2
2007-07-14[PATCH] clean up evaluate_sign()Al Viro1-6/+8
2007-07-10fix handling of pointers in ?:Al Viro1-33/+49
2007-07-10fix handling of address_space in casts and assignmentsAl Viro1-54/+37
2007-07-08first pass at null pointer constantsAl Viro1-71/+145
2007-07-08fix the comma handling in integer constant expressionsAl Viro1-0/+6
2007-06-26[PATCH] fix handling of integer constant expressionsAl Viro1-0/+43
2007-06-26[PATCH] implement __builtin_offsetof()Al Viro1-0/+84
2007-06-25[PATCH] warn on return <void expression>;Al Viro1-0/+2
2007-06-25[PATCH] in case of compound literal we want to delay examining typeAl Viro1-5/+6
2007-06-25[PATCH] move degenerate() down into compatible_assignment_types()Al Viro1-17/+13
2007-06-25[PATCH] fix default argument promotionAl Viro1-5/+14
2007-06-25[PATCH] fix index conversions in evaluate_ptr_add()Al Viro1-42/+50
2007-06-25[PATCH] clean up usual_conversions(), kill evaluate_shift()Al Viro1-44/+34
2007-06-25[PATCH] clean up the typechecking in arithmeticsAl Viro1-98/+73
2007-06-25[PATCH] cleanup of evaluate_assign_op()Al Viro1-14/+16
2007-06-25[PATCH] remove useless argument in evaluate_ptr_sub()Al Viro1-4/+4
2007-06-25[PATCH] remove long-dead variable in evaluate_ptr_add()Al Viro1-4/+1
2007-06-25[PATCH] null pointer constants have no special meaning for pointer subtractionAl Viro1-17/+2
2007-06-25[PATCH] mechanically split compatible_assignment_types()Al Viro1-16/+47
2007-06-25[PATCH] take cast_to() out of usual_conversions(), do it in callersAl Viro1-14/+16
2007-06-25[PATCH] missing NULL checks in initializer handlingAl Viro1-2/+13
2007-06-18[PATCH] rewrite of initializer handlingAl Viro1-175/+394
2007-06-09Improve error message if using a member of an incomplete struct or unionPavel Roskin1-2/+7
2007-05-26better recovery from bad operations on bitwiseAl Viro1-9/+20
2007-05-22Add -Wno-non-pointer-null to turn off warning about using a plain integer as ...Josh Triplett1-1/+1
2007-05-01Fix most -Wshadow warnings in Sparse.0.3Josh Triplett1-4/+4
2007-03-09Fix typos in commentsJosh Triplett1-6/+6
2007-03-02Add annotation for inline function call.Christopher Li1-1/+1
2007-02-27Introduce expression_errorChristopher Li1-41/+41
2007-02-13Bug fix in pointer modifier inheritance at function degeneration.Christopher Li1-5/+3
2007-01-27Fix mistaken comparison that becomes a no-op.James Westby1-1/+1
2007-01-27Marking anonymous string.Christopher Li1-0/+1
2006-11-06Typo fixesPavel Roskin1-1/+1
2006-10-17Add type information to enum mismatch warningAdam DiCarlo1-1/+4
2006-10-01[PATCH] handle fouled-bitwiseAl Viro1-15/+62
2006-10-01[PATCH] saner recovery from endianness errors, part 1.Al Viro1-9/+17
2006-10-01[PATCH] merged compatible_..._binop() into single functionAl Viro1-79/+61
2006-10-01[PATCH] beginning of SYM_RESTRICT rewrite: restricted_binop_type()Al Viro1-42/+62
2006-10-01[PATCH] evaluate_compare() can just use evaluate_arith() for non-pointer casesAl Viro1-16/+1
2006-10-01[PATCH] introduce classify_type(), use it in obvious placesAl Viro1-49/+58
2006-10-01[PATCH] casting null pointer constant to non-zero address space is always OKAl Viro1-1/+12
2006-09-30[PATCH] add support for __builtin_choose_expr()Al Viro1-11/+23
2006-09-30[PATCH] fix for switch(bad_type) {...} segfaultAl Viro1-8/+8
2006-08-29[PATCH] Add -Wno-enum-mismatchJosh Triplett1-0/+2
2006-08-29[PATCH] Add -Wno-address-spaceJosh Triplett1-1/+1
2006-07-13[PATCH] Fix -WtypesignPavel Roskin1-1/+1
2006-06-10Fix NULL ptr dereference with bad typeLinus Torvalds1-1/+1
2006-03-28[PATCH] Warning for mixing enums of different typesMorten Welinder1-7/+47
2006-01-08Fix incorrect cast simplification around '~' operationLinus Torvalds1-0/+2
2005-12-31Make local declarations be statements of their ownLinus Torvalds1-5/+9
2005-11-27[PATCH] Fix member offset calculationLuc Van Oostenryck1-0/+1
2005-11-22[PATCH] noderef is a qualifierAl Viro1-1/+1
2005-11-22[PATCH] new flag - -WdeclAl Viro1-0/+2
2005-11-22When taking the address of a symbol, fix up the pointer typeLinus Torvalds1-2/+4
2005-11-19Evaluate expressions fully when doing type comparisons on case statementsLinus Torvalds1-6/+8
2005-11-16Re-name "error()" function to "sparse_error()"Linus Torvalds1-47/+47
2005-11-16[PATCH] skip already evaluated symbolsMitesh Shah1-0/+3
2005-11-16Integer promotion: leave sufficiently large integer types as themselvesLinus Torvalds1-4/+13
2005-11-03Make switch/case statements check type compatibilityLinus Torvalds1-5/+41
2005-09-30Make sure to be more careful about marking symbols assignedLinus Torvalds1-2/+35
2005-09-22Turn the "incorrect type" error back into a warningLinus Torvalds1-1/+1
2005-09-22[PATCH] replaced warnings with errors.Mitesh Shah1-44/+44
2005-09-09[PATCH] More address space checkingviro@ZenIV.linux.org.uk1-29/+48
2005-07-11Don't warn about "nocast" warnings that only change "const"ness.Linus Torvalds1-4/+20
2005-06-16Fix up a few missing base type evaluationsLinus Torvalds1-3/+3
2005-06-16Fix up type examination.Linus Torvalds1-9/+11
2005-05-19Don't warn about undeclared "main()" function.Linus Torvalds1-0/+2
2005-05-17[PATCH] avoid a crash on bad asm statementLuc Van Oostenryck1-2/+2
2005-04-07[PATCH] static declearChristopher Li1-1/+1
2005-04-07Make enum symbols be regular symbols with constant initializers.Linus Torvalds1-30/+11
2005-04-07Warn about implicit casts to/from "nocast" typesLinus Torvalds1-6/+18
2005-04-07Don't warn about zero-sized "sizeof"Linus Torvalds1-1/+1
2005-04-07Warn about undeclared identifiers.Linus Torvalds1-0/+10
2005-04-07Warn about sizeof of zero size.Linus Torvalds1-1/+1
2005-04-07Be more careful about removing implicit casts.Linus Torvalds1-16/+32
2005-04-07Remove old stale pointer dereference type mess, thatLinus Torvalds1-14/+1
2005-04-07Export "is_ptr_type()" helper function to others.Linus Torvalds1-1/+1
2005-04-07Don't drop modifier bits from a member dereference.Linus Torvalds1-0/+2
2005-04-07Add compile-time "range-check" infrastructure to sparseLinus Torvalds1-1/+6
2005-04-07Make sure we evaluate pointer comparisons as unsigned.Linus Torvalds1-1/+5
2005-04-07Don't optimize away casts too early.Linus Torvalds1-23/+24
2005-04-07Evaluate asm outputs as assignments.Linus Torvalds1-0/+1
2005-04-07We didn't mark symbols with their address taken as beingLinus Torvalds1-0/+5
2005-04-07Add option "-Wptr-subtraction-blows" to warn about expensiveLinus Torvalds1-1/+7
2005-04-07Don't do the pointer offset update for a pointer additionLinus Torvalds1-11/+17
2005-04-07Verify that output/input asm constraints really look like outputs/inputs.Linus Torvalds1-0/+12
2005-04-07Save off the asm parameter name too.Linus Torvalds1-25/+55
2005-04-07Add "stream_name()" helper function, and use it.Linus Torvalds1-1/+1
2005-04-07Evaluate asm statement inputs/outputs and verify them.Linus Torvalds1-2/+60
2005-04-07Split out the blob allocator from lib.c into allocate.c.Linus Torvalds1-0/+1
2005-04-07Make expression tree have an "op value" for the inc/dec operations.Linus Torvalds1-6/+14
2005-04-07Fix subtle problem with fn array argumentsLinus Torvalds1-0/+1
2005-04-07Do early CSE before even doing the symbol simplification.Linus Torvalds1-1/+0
2005-04-07Update copyright notices a bit.Linus Torvalds1-1/+1
2005-04-07Duh. Fix sense of restricted assignment check.Linus Torvalds1-1/+1
2005-04-07Make "translation_unit()" do symbol evaluation too.Linus Torvalds1-3/+14
2005-04-07Fix up restricted type assignment checking.Linus Torvalds1-6/+16
2005-04-07Remove EXPR_BITFIELD entirely.Linus Torvalds1-14/+4
2005-04-07If two implied casts end up undoing each other, just remove them.Linus Torvalds1-0/+8
2005-04-07Separate explicit and implied casts.Linus Torvalds1-2/+3
2005-04-07Simplify implied casts.Linus Torvalds1-1/+36